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。