TransactionCallbackInvoker 是在 SurfaceFlinger 保存 ITransactionCompletedListenerCallbackId 的数据结构。

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);
}