文章目录
ContextObject的设置
openharmony/foundation/systemabilitymgr/samgr/services/samgr/native/source/main.cpp
int main(int argc, char *argv[])
{
HILOGI("%{public}s called, enter System Ability Manager ", __func__);
Samgr::MemoryGuard cacheGuard;
OHOS::sptr<OHOS::SystemAbilityManager> manager = OHOS::SystemAbilityManager::GetInstance();
manager->Init();
OHOS::sptr<OHOS::IRemoteObject> serv = manager->AsObject();
if (!IPCSkeleton::SetContextObject(serv)) {
HILOGE("set context fail!"); // add log for dfx
}
manager->AddSamgrToAbilityMap();
int result = SetParameter("bootevent.samgr.ready", "true");
HILOGI("set samgr ready ret : %{public}s", result == 0 ? "succeed" : "failed");
manager->StartDfxTimer();
OHOS::IPCSkeleton::JoinWorkThread();
return -1;
}
openharmony/foundation/communication/ipc/ipc/native/src/core/source/ipc_skeleton.cpp
bool IPCSkeleton::SetContextObject(sptr<IRemoteObject> &object)
{
IPCProcessSkeleton *current = IPCProcessSkeleton::GetCurrent();
if (current != nullptr)