xref: /aosp_15_r20/system/chre/host/tinysys/hal/tinysys_context_hub.cc (revision 84e339476a462649f82315436d70fd732297a399)
1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include "tinysys_context_hub.h"
18 
19 namespace aidl::android::hardware::contexthub {
TinysysContextHub()20 TinysysContextHub::TinysysContextHub() {
21   mConnection = std::make_unique<TinysysChreConnection>(this);
22   mHalClientManager = std::make_unique<HalClientManager>(
23       mDeadClientUnlinker, kClientIdMappingFilePath);
24   mPreloadedNanoappLoader = std::make_unique<PreloadedNanoappLoader>(
25       mConnection.get(), mEventLogger, /* metricsReporter= */ nullptr,
26       kPreloadedNanoappsConfigPath, &mLogger);
27   if (mConnection->init()) {
28     mPreloadedNanoappLoader->loadPreloadedNanoapps();
29   } else {
30     LOGE("Failed to initialize the connection to CHRE. Restart.");
31     exit(-1);
32   }
33 }
34 
onChreRestarted()35 void TinysysContextHub::onChreRestarted() {
36   mLogger.resetNanoappDetokenizerState();
37   mPreloadedNanoappLoader->loadPreloadedNanoapps();
38   MultiClientContextHubBase::onChreRestarted();
39 }
40 }  // namespace aidl::android::hardware::contexthub