diff options
| author | Mark Salyzyn <salyzyn@google.com> | 2016-11-18 16:10:23 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2016-11-18 16:10:23 +0000 |
| commit | 2cfd0e08e97a913450713c7f0c542d095fa00aae (patch) | |
| tree | 568cbcaed4b56192ea119203bde8405cca2806cd /logd | |
| parent | c2102a7b8f5aef906e0db89c4dc9098bc2ed2b4f (diff) | |
| parent | 16300f192b58f51baf78e180283bbcea932724f4 (diff) | |
| download | system_core-2cfd0e08e97a913450713c7f0c542d095fa00aae.tar.gz system_core-2cfd0e08e97a913450713c7f0c542d095fa00aae.tar.bz2 system_core-2cfd0e08e97a913450713c7f0c542d095fa00aae.zip | |
Merge "logd: add EXIT command"
am: 16300f192b
Change-Id: Idd68cfba26f8fcc928db4fe2483d30e5d4f49a59
Diffstat (limited to 'logd')
| -rw-r--r-- | logd/CommandListener.cpp | 16 | ||||
| -rw-r--r-- | logd/CommandListener.h | 44 |
2 files changed, 46 insertions, 14 deletions
diff --git a/logd/CommandListener.cpp b/logd/CommandListener.cpp index 7394f1140..52c67424a 100644 --- a/logd/CommandListener.cpp +++ b/logd/CommandListener.cpp @@ -48,6 +48,7 @@ CommandListener::CommandListener(LogBuffer *buf, LogReader * /*reader*/, registerCmd(new SetPruneListCmd(buf)); registerCmd(new GetPruneListCmd(buf)); registerCmd(new ReinitCmd()); + registerCmd(new ExitCmd(this)); } CommandListener::ShutdownCmd::ShutdownCmd(LogReader *reader, @@ -297,6 +298,21 @@ int CommandListener::ReinitCmd::runCommand(SocketClient *cli, return 0; } +CommandListener::ExitCmd::ExitCmd(CommandListener *parent) : + LogCommand("EXIT"), + mParent(*parent) { +} + +int CommandListener::ExitCmd::runCommand(SocketClient * cli, + int /*argc*/, char ** /*argv*/) { + setname(); + + cli->sendMsg("success"); + release(cli); + + return 0; +} + int CommandListener::getLogSocket() { static const char socketName[] = "logd"; int sock = android_get_control_socket(socketName); diff --git a/logd/CommandListener.h b/logd/CommandListener.h index cbcd601a3..5d5017785 100644 --- a/logd/CommandListener.h +++ b/logd/CommandListener.h @@ -52,22 +52,38 @@ private: explicit name##Cmd(LogBuffer *buf); \ virtual ~name##Cmd() {} \ int runCommand(SocketClient *c, int argc, char ** argv); \ - }; + } - LogBufferCmd(Clear) - LogBufferCmd(GetBufSize) - LogBufferCmd(SetBufSize) - LogBufferCmd(GetBufSizeUsed) - LogBufferCmd(GetStatistics) - LogBufferCmd(GetPruneList) - LogBufferCmd(SetPruneList) + LogBufferCmd(Clear); + LogBufferCmd(GetBufSize); + LogBufferCmd(SetBufSize); + LogBufferCmd(GetBufSizeUsed); + LogBufferCmd(GetStatistics); + LogBufferCmd(GetPruneList); + LogBufferCmd(SetPruneList); - class ReinitCmd : public LogCommand { - public: - ReinitCmd(); - virtual ~ReinitCmd() {} - int runCommand(SocketClient *c, int argc, char ** argv); - }; +#define LogCmd(name) \ + class name##Cmd : public LogCommand { \ + public: \ + name##Cmd(); \ + virtual ~name##Cmd() {} \ + int runCommand(SocketClient *c, int argc, char ** argv); \ + } + + LogCmd(Reinit); + +#define LogParentCmd(name) \ + class name##Cmd : public LogCommand { \ + CommandListener &mParent; \ + public: \ + name##Cmd(); \ + explicit name##Cmd(CommandListener *parent); \ + virtual ~name##Cmd() {} \ + int runCommand(SocketClient *c, int argc, char ** argv); \ + void release(SocketClient *c) { mParent.release(c); } \ + } + + LogParentCmd(Exit); }; |
