void TransactionCompletedListener::addSurfaceControlToCallbacks(
const sp<SurfaceControl>& surfaceControl,
const std::unordered_set<CallbackId, CallbackIdHash>& callbackIds) {
std::lock_guard<std::mutex> lock(mMutex);
for (auto callbackId : callbackIds) {
mCallbacks[callbackId].surfaceControls.emplace(std::piecewise_construct,
std::forward_as_tuple(
surfaceControl->getHandle()),
std::forward_as_tuple(surfaceControl));
}
}
callbackIds
,从 TransactionCompletedListener::mCallbacks 中获取 TransactionCompletedListener::CallbackTranslation,存放 surfaceControl
。该函数主要作用是,已经调用 Transaction::addTransactionCallback() 分配了 CallbackId,这时有新的 SurfaceControl,所以遍历 callbackIds
,更新 mCallbacks
中 SurfaceControl。