xref: /aosp_15_r20/system/libhidl/transport/manager/1.2/IClientCallback.hal (revision 8222fbe171c3d6fadfe95119c180cf3010c392a8)
1*8222fbe1SAndroid Build Coastguard Worker/*
2*8222fbe1SAndroid Build Coastguard Worker * Copyright (C) 2018 The Android Open Source Project
3*8222fbe1SAndroid Build Coastguard Worker *
4*8222fbe1SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*8222fbe1SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*8222fbe1SAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*8222fbe1SAndroid Build Coastguard Worker *
8*8222fbe1SAndroid Build Coastguard Worker *      http://www.apache.org/licenses/LICENSE-2.0
9*8222fbe1SAndroid Build Coastguard Worker *
10*8222fbe1SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*8222fbe1SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*8222fbe1SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*8222fbe1SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*8222fbe1SAndroid Build Coastguard Worker * limitations under the License.
15*8222fbe1SAndroid Build Coastguard Worker */
16*8222fbe1SAndroid Build Coastguard Worker
17*8222fbe1SAndroid Build Coastguard Workerpackage [email protected];
18*8222fbe1SAndroid Build Coastguard Worker
19*8222fbe1SAndroid Build Coastguard Workerinterface IClientCallback {
20*8222fbe1SAndroid Build Coastguard Worker    /**
21*8222fbe1SAndroid Build Coastguard Worker     * This is called when there is a transition between having >= 1 clients and having 0 clients
22*8222fbe1SAndroid Build Coastguard Worker     * (or vice versa).
23*8222fbe1SAndroid Build Coastguard Worker     *
24*8222fbe1SAndroid Build Coastguard Worker     * Upon receiving hasClients false, if the process decides to exit, it is recommended to try to
25*8222fbe1SAndroid Build Coastguard Worker     * unregister using @1.2::IServiceManager's tryUnregister before quiting in case another client
26*8222fbe1SAndroid Build Coastguard Worker     * associates.
27*8222fbe1SAndroid Build Coastguard Worker     *
28*8222fbe1SAndroid Build Coastguard Worker     * @param registered binder 'server' registered with IServiceManager's registerClientCallback
29*8222fbe1SAndroid Build Coastguard Worker     * @param hasClients whether there are currently clients
30*8222fbe1SAndroid Build Coastguard Worker     *     true - when there are >= 1 clients. This must be called as soon as IServiceManager::get
31*8222fbe1SAndroid Build Coastguard Worker     *         is called (no race).
32*8222fbe1SAndroid Build Coastguard Worker     *     false - when there are 0 clients. This may be delayed if it is thought that another
33*8222fbe1SAndroid Build Coastguard Worker     *         may be used again soon.
34*8222fbe1SAndroid Build Coastguard Worker     */
35*8222fbe1SAndroid Build Coastguard Worker    oneway onClients(interface registered, bool hasClients);
36*8222fbe1SAndroid Build Coastguard Worker};
37