Introduced helper class TraceOutput that represents an output buffer

and added AbstractTraceEntry::AddDump(TraceOutput&) method.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23622 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2008-01-18 22:15:30 +00:00
parent 2f1836da5c
commit f1047a1c3e
2 changed files with 76 additions and 11 deletions
+18 -9
View File
@@ -20,6 +20,19 @@ struct trace_entry {
#include <new>
class TraceOutput {
public:
TraceOutput(char* buffer, size_t bufferSize);
void Print(const char* format,...);
bool IsFull() const { return fSize >= fCapacity; }
private:
char* fBuffer;
size_t fCapacity;
size_t fSize;
};
class TraceEntry : trace_entry {
public:
TraceEntry();
@@ -44,16 +57,12 @@ class AbstractTraceEntry : public TraceEntry {
{
}
virtual void Dump(char* buffer, size_t bufferSize)
{
int length = snprintf(buffer, bufferSize, "[%6ld] %Ld: ",
fThread, fTime);
AddDump(buffer + length, bufferSize - length);
}
virtual ~AbstractTraceEntry();
virtual void AddDump(char* buffer, size_t bufferSize)
{
}
virtual void Dump(char* buffer, size_t bufferSize);
virtual void AddDump(char* buffer, size_t bufferSize);
virtual void AddDump(TraceOutput& out);
thread_id Thread() const { return fThread; }
bigtime_t Time() const { return fTime; }