1f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat/* 2f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * Copyright (C) 2008 The Android Open Source Project 3f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * 4f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * Licensed under the Apache License, Version 2.0 (the "License"); 5f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * you may not use this file except in compliance with the License. 6f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * You may obtain a copy of the License at 7f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * 8f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * http://www.apache.org/licenses/LICENSE-2.0 9f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * 10f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * Unless required by applicable law or agreed to in writing, software 11f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * distributed under the License is distributed on an "AS IS" BASIS, 12f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * See the License for the specific language governing permissions and 14f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * limitations under the License. 15f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat */ 16f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat 17f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat#ifndef _COMMANDLISTENER_H__ 18f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat#define _COMMANDLISTENER_H__ 19f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat 20f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat#include <sysutils/FrameworkListener.h> 2136801cccf27152c9eca5aab6ba3527221525110fJeff Sharkey#include <utils/Errors.h> 22f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat#include "VoldCommand.h" 23f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat 24f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehatclass CommandListener : public FrameworkListener { 25f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehatpublic: 26f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat CommandListener(); 27f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat virtual ~CommandListener() {} 28f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat 29f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehatprivate: 30d9a4e358614a0c5f60cc76c0636ee4bb02004a32San Mehat static void dumpArgs(int argc, char **argv, int argObscure); 3136801cccf27152c9eca5aab6ba3527221525110fJeff Sharkey static int sendGenericOkFail(SocketClient *cli, int cond); 32d9a4e358614a0c5f60cc76c0636ee4bb02004a32San Mehat 33d9a4e358614a0c5f60cc76c0636ee4bb02004a32San Mehat class DumpCmd : public VoldCommand { 34d9a4e358614a0c5f60cc76c0636ee4bb02004a32San Mehat public: 35d9a4e358614a0c5f60cc76c0636ee4bb02004a32San Mehat DumpCmd(); 36d9a4e358614a0c5f60cc76c0636ee4bb02004a32San Mehat virtual ~DumpCmd() {} 37d9a4e358614a0c5f60cc76c0636ee4bb02004a32San Mehat int runCommand(SocketClient *c, int argc, char ** argv); 38d9a4e358614a0c5f60cc76c0636ee4bb02004a32San Mehat }; 39f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat 40eba65e9d438a05f1c5dfd0f8d31bc463a5d08eeeSan Mehat class VolumeCmd : public VoldCommand { 41f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat public: 42eba65e9d438a05f1c5dfd0f8d31bc463a5d08eeeSan Mehat VolumeCmd(); 43eba65e9d438a05f1c5dfd0f8d31bc463a5d08eeeSan Mehat virtual ~VolumeCmd() {} 44f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat int runCommand(SocketClient *c, int argc, char ** argv); 45f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat }; 46f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat 47eba65e9d438a05f1c5dfd0f8d31bc463a5d08eeeSan Mehat class AsecCmd : public VoldCommand { 48a19b250bd273455933ca3502cf2c2e0a803aff77San Mehat public: 49eba65e9d438a05f1c5dfd0f8d31bc463a5d08eeeSan Mehat AsecCmd(); 50eba65e9d438a05f1c5dfd0f8d31bc463a5d08eeeSan Mehat virtual ~AsecCmd() {} 51a19b250bd273455933ca3502cf2c2e0a803aff77San Mehat int runCommand(SocketClient *c, int argc, char ** argv); 52344ca10856f3d3087a3288ce8f91ad83665d93fbKenny Root private: 53344ca10856f3d3087a3288ce8f91ad83665d93fbKenny Root void listAsecsInDirectory(SocketClient *c, const char *directory); 54a19b250bd273455933ca3502cf2c2e0a803aff77San Mehat }; 55a19b250bd273455933ca3502cf2c2e0a803aff77San Mehat 56508c0e1605b795bbb51cb47d955b89f3df26ca94Kenny Root class ObbCmd : public VoldCommand { 57fb7c4d5a8a1031cf0e493ff182dcf458e5fe8c77Kenny Root public: 58508c0e1605b795bbb51cb47d955b89f3df26ca94Kenny Root ObbCmd(); 59508c0e1605b795bbb51cb47d955b89f3df26ca94Kenny Root virtual ~ObbCmd() {} 60fb7c4d5a8a1031cf0e493ff182dcf458e5fe8c77Kenny Root int runCommand(SocketClient *c, int argc, char ** argv); 61fb7c4d5a8a1031cf0e493ff182dcf458e5fe8c77Kenny Root }; 62fb7c4d5a8a1031cf0e493ff182dcf458e5fe8c77Kenny Root 63586536c60b773e3517531ad8a6cb0de6722c67fcSan Mehat class StorageCmd : public VoldCommand { 64586536c60b773e3517531ad8a6cb0de6722c67fcSan Mehat public: 65586536c60b773e3517531ad8a6cb0de6722c67fcSan Mehat StorageCmd(); 66586536c60b773e3517531ad8a6cb0de6722c67fcSan Mehat virtual ~StorageCmd() {} 67586536c60b773e3517531ad8a6cb0de6722c67fcSan Mehat int runCommand(SocketClient *c, int argc, char ** argv); 68586536c60b773e3517531ad8a6cb0de6722c67fcSan Mehat }; 692350c44ff39b4cb2940893964a05f778fc80a436San Mehat 70b87937cdea689594a293979b30b13054e7455deeKen Sumrall class FstrimCmd : public VoldCommand { 71b87937cdea689594a293979b30b13054e7455deeKen Sumrall public: 72b87937cdea689594a293979b30b13054e7455deeKen Sumrall FstrimCmd(); 73b87937cdea689594a293979b30b13054e7455deeKen Sumrall virtual ~FstrimCmd() {} 74b87937cdea689594a293979b30b13054e7455deeKen Sumrall int runCommand(SocketClient *c, int argc, char ** argv); 75b87937cdea689594a293979b30b13054e7455deeKen Sumrall }; 768575a350ff725842f076500eab161b39e8720938Daichi Hirono 778575a350ff725842f076500eab161b39e8720938Daichi Hirono class AppFuseCmd : public VoldCommand { 788575a350ff725842f076500eab161b39e8720938Daichi Hirono public: 798575a350ff725842f076500eab161b39e8720938Daichi Hirono AppFuseCmd(); 808575a350ff725842f076500eab161b39e8720938Daichi Hirono virtual ~AppFuseCmd() {} 818575a350ff725842f076500eab161b39e8720938Daichi Hirono int runCommand(SocketClient *c, int argc, char ** argv); 828575a350ff725842f076500eab161b39e8720938Daichi Hirono private: 8310d34887b3e00e603604e0301487f9b8222c66f4Daichi Hirono android::status_t sendFd(SocketClient *c, int fd); 848575a350ff725842f076500eab161b39e8720938Daichi Hirono }; 85f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat}; 86f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat 87f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat#endif 88