TransactionCallbackInvoker 是在 SurfaceFlinger 保存 ITransactionCompletedListener 和 CallbackId 的数据结构。
class TransactionCallbackInvoker {
private:
std::unordered_set<ListenerCallbacks, ListenerCallbacksHash> mRegisteringTransactions
GUARDED_BY(mMutex);
std::unordered_map<
sp<IBinder>,
std::unordered_map<std::vector<CallbackId>, uint32_t /*count*/, CallbackIdsHash>,
IListenerHash>
mPendingTransactions GUARDED_BY(mMutex);
std::unordered_map<sp<IBinder>, std::deque<TransactionStats>, IListenerHash>
mCompletedTransactions GUARDED_BY(mMutex);
}
mRegisteringTransactions
和 mCompletedTransactions
。mRegisteringTransactions
移除。mCompletedTransactions
的 value 类型是 TransactionStats。