74 lines
2.4 KiB
C++
74 lines
2.4 KiB
C++
//
|
|
// Copyright 2005 The Android Open Source Project
|
|
//
|
|
// Class to hold a single log message. Not thread safe.
|
|
//
|
|
#ifndef _SIM_LOG_MESSAGE_H
|
|
#define _SIM_LOG_MESSAGE_H
|
|
|
|
#include "utils.h"
|
|
#include "LogBundle.h"
|
|
|
|
/*
|
|
* Hold a single log message.
|
|
*
|
|
* To reduce malloc strain we could over-allocate the object and tuck the
|
|
* message text into the object storage. On this off chance this becomes
|
|
* important, the implementation keeps its constructor private.
|
|
*/
|
|
class LogMessage {
|
|
public:
|
|
~LogMessage(void);
|
|
|
|
static LogMessage* Create(const android_LogBundle* pBundle);
|
|
static LogMessage* Create(const char* msg);
|
|
|
|
/* the total length of text added to the text ctrl */
|
|
int GetTextCtrlLen(void) const { return mTextCtrlLen; }
|
|
void SetTextCtrlLen(int len) { mTextCtrlLen = len; }
|
|
|
|
/* log pool */
|
|
LogMessage* GetPrev(void) const { return mpPrev; }
|
|
void SetPrev(LogMessage* pPrev) { mpPrev = pPrev; }
|
|
LogMessage* GetNext(void) const { return mpNext; }
|
|
void SetNext(LogMessage* pNext) { mpNext = pNext; }
|
|
int GetFootprint(void) const { return mFootprint; }
|
|
|
|
/* message contents */
|
|
time_t GetWhen(void) const { return mWhen; }
|
|
android_LogPriority GetPriority(void) const { return mPriority; }
|
|
pid_t GetPid(void) const { return mPid; }
|
|
const char* GetTag(void) const { return mTag; }
|
|
const char* GetMsg(void) const { return mMsg; }
|
|
|
|
bool GetInternal(void) const { return mInternal; }
|
|
|
|
void Acquire(void) { mRefCnt++; }
|
|
void Release(void) {
|
|
if (!--mRefCnt)
|
|
delete this;
|
|
}
|
|
|
|
private:
|
|
LogMessage(void);
|
|
LogMessage(const LogMessage& src); // not implemented
|
|
LogMessage& operator=(const LogMessage& src); // not implemented
|
|
|
|
/* log message contents */
|
|
time_t mWhen;
|
|
android_LogPriority mPriority;
|
|
pid_t mPid;
|
|
char* mTag;
|
|
char* mMsg;
|
|
|
|
/* additional goodies */
|
|
int mRefCnt; // reference count
|
|
bool mInternal; // message generated internally by us?
|
|
int mFootprint; // approx. size of this object in memory
|
|
int mTextCtrlLen; // #of characters req'd in text ctrl
|
|
LogMessage* mpPrev; // link to previous item in log pool
|
|
LogMessage* mpNext; // link to next item in log pool
|
|
};
|
|
|
|
#endif // _SIM_LOG_MESSAGE_H
|