1 /******************************************************************************
2  *
3  *  Copyright 2023 NXP
4  *
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *  http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  ******************************************************************************/
18 #include "Weaver.h"
19 #include <android-base/logging.h>
20 #include <android/binder_manager.h>
21 #include <android/binder_process.h>
22 #include <log/log.h>
23 
24 using ::aidl::android::hardware::weaver::Weaver;
25 
main()26 int main() {
27   try {
28     ABinderProcess_setThreadPoolMaxThreadCount(0);
29     std::shared_ptr<Weaver> weaver = ndk::SharedRefBase::make<Weaver>();
30 
31     const std::string instance =
32         std::string() + Weaver::descriptor + "/default";
33     binder_status_t status =
34         AServiceManager_addService(weaver->asBinder().get(), instance.c_str());
35     CHECK(status == STATUS_OK);
36 
37     ABinderProcess_joinThreadPool();
38   } catch (std::__1::ios_base::failure &e) {
39     ALOGE("ios failure Exception occurred = %s ", e.what());
40   } catch (std::__1::system_error &e) {
41     ALOGE("system error Exception occurred = %s ", e.what());
42   }
43   return -1; // Should never be reached
44 }
45