1 /*
2  * Copyright (C) 2012-2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef _FLUSH_COMMAND_H
17 #define _FLUSH_COMMAND_H
18 
19 #include <log/log_read.h>
20 #include <sysutils/SocketClientCommand.h>
21 
22 class LogBufferElement;
23 
24 #include "LogTimes.h"
25 
26 class LogReader;
27 
28 class FlushCommand : public SocketClientCommand {
29     LogReader &mReader;
30     bool mNonBlock;
31     unsigned long mTail;
32     unsigned int mLogMask;
33     pid_t mPid;
34     uint64_t mStart;
35 
36 public:
37     FlushCommand(LogReader &mReader,
38                  bool nonBlock = false,
39                  unsigned long tail = -1,
40                  unsigned int logMask = -1,
41                  pid_t pid = 0,
42                  uint64_t start = 1);
43     virtual void runSocketCommand(SocketClient *client);
44 
45     static bool hasReadLogs(SocketClient *client);
46 };
47 
48 #endif
49