Pyrogenesis  trunk
Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
CProfiler2::ThreadStorage Class Reference

Class instantiated in every registered thread. More...

Collaboration diagram for CProfiler2::ThreadStorage:
Collaboration graph
[legend]

Classes

struct  HoldBuffer
 

Public Types

enum  { BUFFER_NORMAL, BUFFER_SPIKE, BUFFER_AGGREGATE }
 

Public Member Functions

 ThreadStorage (CProfiler2 &profiler, const std::string &name)
 
 ~ThreadStorage ()
 
void RecordSyncMarker (double t)
 
void Record (EItem type, double t, const char *id)
 
void RecordFrameStart (double t)
 
void RecordLeave (double t)
 
void RecordAttribute (const char *fmt, va_list argp) VPRINTF_ARGS(2)
 
void RecordAttributePrintf (const char *fmt,...) PRINTF_ARGS(2)
 
size_t HoldLevel ()
 
u8 HoldType ()
 
void PutOnHold (u8 type)
 
void HoldToBuffer (bool condensed)
 
void ThrowawayHoldBuffer ()
 
CProfiler2GetProfiler ()
 
const std::string & GetName ()
 
std::string GetBuffer ()
 Returns a copy of a subset of the thread's buffer. More...
 

Private Member Functions

 NONCOPYABLE (ThreadStorage)
 
void Write (EItem type, const void *item, u32 itemSize)
 Store an item into the buffer. More...
 
void WriteHold (EItem type, const void *item, u32 itemSize)
 

Private Attributes

CProfiler2m_Profiler
 
std::string m_Name
 
double m_LastTime
 
u8m_Buffer
 
HoldBuffer m_HoldBuffers [8]
 
size_t m_HeldDepth
 
u32 m_BufferPos0
 
u32 m_BufferPos1
 

Detailed Description

Class instantiated in every registered thread.

Member Enumeration Documentation

anonymous enum
Enumerator
BUFFER_NORMAL 
BUFFER_SPIKE 
BUFFER_AGGREGATE 

Constructor & Destructor Documentation

CProfiler2::ThreadStorage::ThreadStorage ( CProfiler2 profiler,
const std::string &  name 
)
CProfiler2::ThreadStorage::~ThreadStorage ( )

Member Function Documentation

std::string CProfiler2::ThreadStorage::GetBuffer ( )

Returns a copy of a subset of the thread's buffer.

Not guaranteed to start on an item boundary. May be called by any thread.

const std::string& CProfiler2::ThreadStorage::GetName ( )
inline
CProfiler2& CProfiler2::ThreadStorage::GetProfiler ( )
inline
size_t CProfiler2::ThreadStorage::HoldLevel ( )
void CProfiler2::ThreadStorage::HoldToBuffer ( bool  condensed)
u8 CProfiler2::ThreadStorage::HoldType ( )
CProfiler2::ThreadStorage::NONCOPYABLE ( ThreadStorage  )
private
void CProfiler2::ThreadStorage::PutOnHold ( u8  type)
void CProfiler2::ThreadStorage::Record ( EItem  type,
double  t,
const char *  id 
)
inline
void CProfiler2::ThreadStorage::RecordAttribute ( const char *  fmt,
va_list  argp 
)
void CProfiler2::ThreadStorage::RecordAttributePrintf ( const char *  fmt,
  ... 
)
inline
void CProfiler2::ThreadStorage::RecordFrameStart ( double  t)
inline
void CProfiler2::ThreadStorage::RecordLeave ( double  t)
inline
void CProfiler2::ThreadStorage::RecordSyncMarker ( double  t)
inline
void CProfiler2::ThreadStorage::ThrowawayHoldBuffer ( )
void CProfiler2::ThreadStorage::Write ( EItem  type,
const void *  item,
u32  itemSize 
)
private

Store an item into the buffer.

void CProfiler2::ThreadStorage::WriteHold ( EItem  type,
const void *  item,
u32  itemSize 
)
private

Member Data Documentation

u8* CProfiler2::ThreadStorage::m_Buffer
private
u32 CProfiler2::ThreadStorage::m_BufferPos0
private
u32 CProfiler2::ThreadStorage::m_BufferPos1
private
size_t CProfiler2::ThreadStorage::m_HeldDepth
private
HoldBuffer CProfiler2::ThreadStorage::m_HoldBuffers[8]
private
double CProfiler2::ThreadStorage::m_LastTime
private
std::string CProfiler2::ThreadStorage::m_Name
private
CProfiler2& CProfiler2::ThreadStorage::m_Profiler
private

The documentation for this class was generated from the following files: