xref: /aosp_15_r20/frameworks/base/libs/storage/IMountShutdownObserver.cpp (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Worker /*
2*d57664e9SAndroid Build Coastguard Worker  * Copyright (C) 2010 The Android Open Source Project
3*d57664e9SAndroid Build Coastguard Worker  *
4*d57664e9SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*d57664e9SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*d57664e9SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*d57664e9SAndroid Build Coastguard Worker  *
8*d57664e9SAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*d57664e9SAndroid Build Coastguard Worker  *
10*d57664e9SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*d57664e9SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*d57664e9SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*d57664e9SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*d57664e9SAndroid Build Coastguard Worker  * limitations under the License.
15*d57664e9SAndroid Build Coastguard Worker  */
16*d57664e9SAndroid Build Coastguard Worker 
17*d57664e9SAndroid Build Coastguard Worker #include <storage/IMountShutdownObserver.h>
18*d57664e9SAndroid Build Coastguard Worker #include <binder/Parcel.h>
19*d57664e9SAndroid Build Coastguard Worker 
20*d57664e9SAndroid Build Coastguard Worker namespace android {
21*d57664e9SAndroid Build Coastguard Worker 
22*d57664e9SAndroid Build Coastguard Worker enum {
23*d57664e9SAndroid Build Coastguard Worker     TRANSACTION_onShutDownComplete = IBinder::FIRST_CALL_TRANSACTION,
24*d57664e9SAndroid Build Coastguard Worker };
25*d57664e9SAndroid Build Coastguard Worker 
26*d57664e9SAndroid Build Coastguard Worker class BpMountShutdownObserver: public BpInterface<IMountShutdownObserver> {
27*d57664e9SAndroid Build Coastguard Worker public:
BpMountShutdownObserver(const sp<IBinder> & impl)28*d57664e9SAndroid Build Coastguard Worker     explicit BpMountShutdownObserver(const sp<IBinder>& impl)
29*d57664e9SAndroid Build Coastguard Worker             : BpInterface<IMountShutdownObserver>(impl) { }
30*d57664e9SAndroid Build Coastguard Worker 
onShutDownComplete(const int32_t)31*d57664e9SAndroid Build Coastguard Worker     virtual void onShutDownComplete(const int32_t /* statusCode */) {}
32*d57664e9SAndroid Build Coastguard Worker };
33*d57664e9SAndroid Build Coastguard Worker 
34*d57664e9SAndroid Build Coastguard Worker IMPLEMENT_META_INTERFACE(MountShutdownObserver, "android.os.storage.IStorageShutdownObserver")
35*d57664e9SAndroid Build Coastguard Worker 
onTransact(uint32_t code,const Parcel & data,Parcel * reply,uint32_t flags)36*d57664e9SAndroid Build Coastguard Worker status_t BnMountShutdownObserver::onTransact(
37*d57664e9SAndroid Build Coastguard Worker     uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags)
38*d57664e9SAndroid Build Coastguard Worker {
39*d57664e9SAndroid Build Coastguard Worker     switch(code) {
40*d57664e9SAndroid Build Coastguard Worker         case TRANSACTION_onShutDownComplete: {
41*d57664e9SAndroid Build Coastguard Worker             CHECK_INTERFACE(IMountShutdownObserver, data, reply);
42*d57664e9SAndroid Build Coastguard Worker             int32_t statusCode = data.readInt32();
43*d57664e9SAndroid Build Coastguard Worker             onShutDownComplete(statusCode);
44*d57664e9SAndroid Build Coastguard Worker             reply->writeNoException();
45*d57664e9SAndroid Build Coastguard Worker             return NO_ERROR;
46*d57664e9SAndroid Build Coastguard Worker         }
47*d57664e9SAndroid Build Coastguard Worker         default:
48*d57664e9SAndroid Build Coastguard Worker             return BBinder::onTransact(code, data, reply, flags);
49*d57664e9SAndroid Build Coastguard Worker     }
50*d57664e9SAndroid Build Coastguard Worker }
51*d57664e9SAndroid Build Coastguard Worker // ----------------------------------------------------------------------
52*d57664e9SAndroid Build Coastguard Worker 
53*d57664e9SAndroid Build Coastguard Worker }
54