blob: 5afb9a6977c87d72eac74e4913dfe4ecaa9325af [file] [log] [blame]
Martijn Coenen12f04d92016-12-07 17:29:41 +01001/*
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#ifndef ANDROID_HIDL_TRANSPORT_UTILS_H
18#define ANDROID_HIDL_TRANSPORT_UTILS_H
19
20#include <android/hidl/base/1.0/IBase.h>
21
22namespace android {
23namespace hardware {
Yifan Hong2ac326f2017-02-22 18:13:06 -080024namespace details {
Martijn Coenen12f04d92016-12-07 17:29:41 +010025
26/*
27 * Verifies the interface chain of 'interface' contains 'castTo'
Yifan Honga7b2bb72017-03-29 03:36:07 -070028 * @param emitError if emitError is false, return Return<bool>{false} on error; if emitError
29 * is true, the Return<bool> object contains the actual error.
Martijn Coenen12f04d92016-12-07 17:29:41 +010030 */
Steven Moreland108d09d2017-05-05 16:15:38 -070031Return<bool> canCastInterface(::android::hidl::base::V1_0::IBase* interface,
32 const char* castTo, bool emitError = false);
Martijn Coenen12f04d92016-12-07 17:29:41 +010033
Steven Moreland108d09d2017-05-05 16:15:38 -070034std::string getDescriptor(::android::hidl::base::V1_0::IBase* interface);
Martijn Coenen12f04d92016-12-07 17:29:41 +010035
Yifan Hong2ac326f2017-02-22 18:13:06 -080036} // namespace details
Martijn Coenen12f04d92016-12-07 17:29:41 +010037} // namespace hardware
38} // namespace android
39
40#endif //ANDROID_HIDL_TRANSPORT_UTILS_H