Static.h revision 6bf733ec867a5d46ea05ae5c280a27b051f5018c
1/* 2 * Copyright (C) 2016 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// All static variables go here, to control initialization and 18// destruction order in the library. 19 20#include <android/hidl/base/1.0/IBase.h> 21#include <android/hidl/manager/1.0/IServiceManager.h> 22#include <hwbinder/IBinder.h> 23#include <utils/threads.h> 24 25namespace android { 26namespace hardware { 27 28// For ServiceManagement.cpp 29extern Mutex gDefaultServiceManagerLock; 30extern sp<android::hidl::manager::V1_0::IServiceManager> gDefaultServiceManager; 31 32// For HidlBinderSupport 33// value function receives reinterpret_cast<void *>(static_cast<IFoo *>(foo)), 34// returns sp<IBinder> 35extern std::map<std::string, std::function<sp<IBinder>(void *)>> 36 gBnConstructorMap; 37 38// For HidlPassthroughSupport 39// value function receives reinterpret_cast<void *>(static_cast<IFoo *>(foo)), 40// returns sp<IBase> 41extern std::map<std::string, std::function<sp<::android::hidl::base::V1_0::IBase>(void *)>> 42 gBsConstructorMap; 43 44} // namespace hardware 45} // namespace android 46