10175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn/* 20175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * Copyright (C) 2012-2014 The Android Open Source Project 30175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * 40175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * Licensed under the Apache License, Version 2.0 (the "License"); 50175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * you may not use this file except in compliance with the License. 60175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * You may obtain a copy of the License at 70175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * 80175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * http://www.apache.org/licenses/LICENSE-2.0 90175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * 100175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * Unless required by applicable law or agreed to in writing, software 110175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * distributed under the License is distributed on an "AS IS" BASIS, 120175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * See the License for the specific language governing permissions and 140175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn * limitations under the License. 150175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn */ 160175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn 170175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn#ifndef _COMMANDLISTENER_H__ 180175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn#define _COMMANDLISTENER_H__ 190175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn 200175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn#include <sysutils/FrameworkListener.h> 210175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn#include "LogCommand.h" 220175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn#include "LogBuffer.h" 230175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn#include "LogReader.h" 240175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn#include "LogListener.h" 250175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn 260175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzynclass CommandListener : public FrameworkListener { 270175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn LogBuffer &mBuf; 280175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn 290175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzynpublic: 300175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn CommandListener(LogBuffer *buf, LogReader *reader, LogListener *swl); 310175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn virtual ~CommandListener() {} 320175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn 330175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzynprivate: 34dfc47e86858ea67c72f1df2fdb97094b8e8248f2Mark Salyzyn static int getLogSocket(); 35dfc47e86858ea67c72f1df2fdb97094b8e8248f2Mark Salyzyn 360175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn class ShutdownCmd : public LogCommand { 370175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn LogBuffer &mBuf; 380175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn LogReader &mReader; 390175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn LogListener &mSwl; 400175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn 410175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn public: 420175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn ShutdownCmd(LogBuffer *buf, LogReader *reader, LogListener *swl); 430175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn virtual ~ShutdownCmd() {} 440175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn int runCommand(SocketClient *c, int argc, char ** argv); 450175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn }; 460175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn 470175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn#define LogBufferCmd(name) \ 480175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn class name##Cmd : public LogCommand { \ 490175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn LogBuffer &mBuf; \ 500175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn public: \ 510175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn name##Cmd(LogBuffer *buf); \ 520175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn virtual ~name##Cmd() {} \ 530175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn int runCommand(SocketClient *c, int argc, char ** argv); \ 540175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn }; 550175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn 560175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn LogBufferCmd(Clear) 570175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn LogBufferCmd(GetBufSize) 58dfa7a07f5be656cfafdb4e75916bc9dcd9e592e7Mark Salyzyn LogBufferCmd(SetBufSize) 590175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn LogBufferCmd(GetBufSizeUsed) 6034facab86b0fe7ec613de92b46b637f864fb0682Mark Salyzyn LogBufferCmd(GetStatistics) 61dfa7a07f5be656cfafdb4e75916bc9dcd9e592e7Mark Salyzyn LogBufferCmd(GetPruneList) 62dfa7a07f5be656cfafdb4e75916bc9dcd9e592e7Mark Salyzyn LogBufferCmd(SetPruneList) 630175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn}; 640175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn 650175b0747a1f55329109e84c9a1322dcb95e2848Mark Salyzyn#endif 66