class ListenerStats : public Parcelable {
public:
    status_t writeToParcel(Parcel* output) const override;
    status_t readFromParcel(const Parcel* input) override;

    static ListenerStats createEmpty(
            const sp<IBinder>& listener,
            const std::unordered_set<CallbackId, CallbackIdHash>& callbackIds);

    sp<IBinder> listener;
    std::vector<TransactionStats> transactionStats;
};

ListenerStats 有成员 TransactionStats 向量,TransactionStats 有成员 SurfaceStats 向量。

ListenerStats 是 ITransactionCompletedListeneronTransactionCompleted() 函数的参数。

classDiagram
class ListenerStats {
  +listener : sp~IBinder~
  +transactionStats : std::vector~TransactionStats~ 
}

class TransactionStats {
  +callbackIds : std::vector~CallbackId~
  +surfaceStats : std::vector~SurfaceStats~
}

class SurfaceStats {
  +surfaceControl : sp~IBinder~
  +previousReleaseCallbackId : ReleaseCallbackId
}

ListenerStats *-- TransactionStats
TransactionStats *-- SurfaceStats