storaged_service.h revision bcd6e3b9d92b2eea3b054372c9adf00a1e6235bc
162cb372279f0237f759d3fe8a7e03d8272ba327fynwang/* 262cb372279f0237f759d3fe8a7e03d8272ba327fynwang * Copyright (C) 2016 The Android Open Source Project 362cb372279f0237f759d3fe8a7e03d8272ba327fynwang * 462cb372279f0237f759d3fe8a7e03d8272ba327fynwang * Licensed under the Apache License, Version 2.0 (the "License"); 562cb372279f0237f759d3fe8a7e03d8272ba327fynwang * you may not use this file except in compliance with the License. 662cb372279f0237f759d3fe8a7e03d8272ba327fynwang * You may obtain a copy of the License at 762cb372279f0237f759d3fe8a7e03d8272ba327fynwang * 862cb372279f0237f759d3fe8a7e03d8272ba327fynwang * http://www.apache.org/licenses/LICENSE-2.0 962cb372279f0237f759d3fe8a7e03d8272ba327fynwang * 1062cb372279f0237f759d3fe8a7e03d8272ba327fynwang * Unless required by applicable law or agreed to in writing, software 1162cb372279f0237f759d3fe8a7e03d8272ba327fynwang * distributed under the License is distributed on an "AS IS" BASIS, 1262cb372279f0237f759d3fe8a7e03d8272ba327fynwang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1362cb372279f0237f759d3fe8a7e03d8272ba327fynwang * See the License for the specific language governing permissions and 1462cb372279f0237f759d3fe8a7e03d8272ba327fynwang * limitations under the License. 1562cb372279f0237f759d3fe8a7e03d8272ba327fynwang */ 1662cb372279f0237f759d3fe8a7e03d8272ba327fynwang 1762cb372279f0237f759d3fe8a7e03d8272ba327fynwang#ifndef _STORAGED_SERVICE_H_ 1862cb372279f0237f759d3fe8a7e03d8272ba327fynwang#define _STORAGED_SERVICE_H_ 1962cb372279f0237f759d3fe8a7e03d8272ba327fynwang 2062cb372279f0237f759d3fe8a7e03d8272ba327fynwang#include <vector> 2162cb372279f0237f759d3fe8a7e03d8272ba327fynwang 2262cb372279f0237f759d3fe8a7e03d8272ba327fynwang#include <binder/IInterface.h> 2362cb372279f0237f759d3fe8a7e03d8272ba327fynwang#include <binder/IBinder.h> 2462cb372279f0237f759d3fe8a7e03d8272ba327fynwang 2562cb372279f0237f759d3fe8a7e03d8272ba327fynwang#include "storaged.h" 2662cb372279f0237f759d3fe8a7e03d8272ba327fynwang 2762cb372279f0237f759d3fe8a7e03d8272ba327fynwangusing namespace android; 2862cb372279f0237f759d3fe8a7e03d8272ba327fynwang 2962cb372279f0237f759d3fe8a7e03d8272ba327fynwang// Interface 3062cb372279f0237f759d3fe8a7e03d8272ba327fynwangclass IStoraged : public IInterface { 3162cb372279f0237f759d3fe8a7e03d8272ba327fynwangpublic: 3262cb372279f0237f759d3fe8a7e03d8272ba327fynwang enum { 3362cb372279f0237f759d3fe8a7e03d8272ba327fynwang DUMPTASKS = IBinder::FIRST_CALL_TRANSACTION, 34bcd6e3b9d92b2eea3b054372c9adf00a1e6235bcJin Qian DUMPUIDS = IBinder::FIRST_CALL_TRANSACTION + 1, 3562cb372279f0237f759d3fe8a7e03d8272ba327fynwang }; 3662cb372279f0237f759d3fe8a7e03d8272ba327fynwang // Request the service to run the test function 3762cb372279f0237f759d3fe8a7e03d8272ba327fynwang virtual std::vector<struct task_info> dump_tasks(const char* option) = 0; 38bcd6e3b9d92b2eea3b054372c9adf00a1e6235bcJin Qian virtual std::vector<struct uid_info> dump_uids(const char* option) = 0; 3962cb372279f0237f759d3fe8a7e03d8272ba327fynwang 4062cb372279f0237f759d3fe8a7e03d8272ba327fynwang DECLARE_META_INTERFACE(Storaged); 4162cb372279f0237f759d3fe8a7e03d8272ba327fynwang}; 4262cb372279f0237f759d3fe8a7e03d8272ba327fynwang 4362cb372279f0237f759d3fe8a7e03d8272ba327fynwang// Client 4462cb372279f0237f759d3fe8a7e03d8272ba327fynwangclass BpStoraged : public BpInterface<IStoraged> { 4562cb372279f0237f759d3fe8a7e03d8272ba327fynwangpublic: 4662cb372279f0237f759d3fe8a7e03d8272ba327fynwang BpStoraged(const sp<IBinder>& impl) : BpInterface<IStoraged>(impl){}; 4762cb372279f0237f759d3fe8a7e03d8272ba327fynwang virtual std::vector<struct task_info> dump_tasks(const char* option); 48bcd6e3b9d92b2eea3b054372c9adf00a1e6235bcJin Qian virtual std::vector<struct uid_info> dump_uids(const char* option); 4962cb372279f0237f759d3fe8a7e03d8272ba327fynwang}; 5062cb372279f0237f759d3fe8a7e03d8272ba327fynwang 5162cb372279f0237f759d3fe8a7e03d8272ba327fynwang// Server 5262cb372279f0237f759d3fe8a7e03d8272ba327fynwangclass BnStoraged : public BnInterface<IStoraged> { 5362cb372279f0237f759d3fe8a7e03d8272ba327fynwang virtual status_t onTransact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags = 0); 5462cb372279f0237f759d3fe8a7e03d8272ba327fynwang}; 5562cb372279f0237f759d3fe8a7e03d8272ba327fynwang 5662cb372279f0237f759d3fe8a7e03d8272ba327fynwangclass Storaged : public BnStoraged { 5762cb372279f0237f759d3fe8a7e03d8272ba327fynwang virtual std::vector<struct task_info> dump_tasks(const char* option); 58bcd6e3b9d92b2eea3b054372c9adf00a1e6235bcJin Qian virtual std::vector<struct uid_info> dump_uids(const char* option); 5962cb372279f0237f759d3fe8a7e03d8272ba327fynwang}; 6062cb372279f0237f759d3fe8a7e03d8272ba327fynwang 6162cb372279f0237f759d3fe8a7e03d8272ba327fynwangsp<IStoraged> get_storaged_service(); 6262cb372279f0237f759d3fe8a7e03d8272ba327fynwang 6362cb372279f0237f759d3fe8a7e03d8272ba327fynwang#endif /* _STORAGED_SERVICE_H_ */