diff options
Diffstat (limited to 'logd/LogBufferElement.h')
| -rw-r--r-- | logd/LogBufferElement.h | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/logd/LogBufferElement.h b/logd/LogBufferElement.h index 2c7fd448d..fb7fbed5c 100644 --- a/logd/LogBufferElement.h +++ b/logd/LogBufferElement.h @@ -36,33 +36,40 @@ class LogBufferElement { friend LogBuffer; - const log_id_t mLogId; - const uid_t mUid; - const pid_t mPid; - const pid_t mTid; + // sized to match reality of incoming log packets + uint32_t mTag; // only valid for isBinary() + const uint32_t mUid; + const uint32_t mPid; + const uint32_t mTid; + const uint64_t mSequence; + log_time mRealTime; char *mMsg; union { - const unsigned short mMsgLen; // mMSg != NULL - unsigned short mDropped; // mMsg == NULL + const uint16_t mMsgLen; // mMSg != NULL + uint16_t mDropped; // mMsg == NULL }; - const uint64_t mSequence; - log_time mRealTime; + const uint8_t mLogId; + static atomic_int_fast64_t sequence; // assumption: mMsg == NULL size_t populateDroppedMessage(char *&buffer, LogBuffer *parent); - public: LogBufferElement(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, pid_t tid, const char *msg, unsigned short len); virtual ~LogBufferElement(); - log_id_t getLogId() const { return mLogId; } + bool isBinary(void) const { + return (mLogId == LOG_ID_EVENTS) || (mLogId == LOG_ID_SECURITY); + } + + log_id_t getLogId() const { return static_cast<log_id_t>(mLogId); } uid_t getUid(void) const { return mUid; } pid_t getPid(void) const { return mPid; } pid_t getTid(void) const { return mTid; } + uint32_t getTag() const { return mTag; } unsigned short getDropped(void) const { return mMsg ? 0 : mDropped; } unsigned short setDropped(unsigned short value) { if (mMsg) { @@ -76,8 +83,6 @@ public: static uint64_t getCurrentSequence(void) { return sequence.load(memory_order_relaxed); } log_time getRealTime(void) const { return mRealTime; } - uint32_t getTag(void) const; - static const uint64_t FLUSH_ERROR; uint64_t flushTo(SocketClient *writer, LogBuffer *parent, bool privileged); }; |
