• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 <private/android_logger.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     log_mask_t mLogMask;
33     pid_t mPid;
34     log_time mStart;
35     uint64_t mTimeout;
36 
37    public:
38     // for opening a reader
FlushCommand(LogReader & reader,bool nonBlock,unsigned long tail,log_mask_t logMask,pid_t pid,log_time start,uint64_t timeout)39     explicit FlushCommand(LogReader& reader, bool nonBlock, unsigned long tail,
40                           log_mask_t logMask, pid_t pid, log_time start,
41                           uint64_t timeout)
42         : mReader(reader),
43           mNonBlock(nonBlock),
44           mTail(tail),
45           mLogMask(logMask),
46           mPid(pid),
47           mStart(start),
48           mTimeout((start != log_time::EPOCH) ? timeout : 0) {
49     }
50 
51     // for notification of an update
FlushCommand(LogReader & reader,log_mask_t logMask)52     explicit FlushCommand(LogReader& reader, log_mask_t logMask)
53         : mReader(reader),
54           mNonBlock(false),
55           mTail(-1),
56           mLogMask(logMask),
57           mPid(0),
58           mStart(log_time::EPOCH),
59           mTimeout(0) {
60     }
61 
62     virtual void runSocketCommand(SocketClient* client);
63 
64     static bool hasReadLogs(SocketClient* client);
65     static bool hasSecurityLogs(SocketClient* client);
66 };
67 
68 #endif
69