OpenTTD
|
Class that represents the dump-into-string target. More...
#include <dbg_helpers.h>
Data Structures | |
struct | KnownStructKey |
Used as a key into map of known object instances. More... |
Public Types | |
typedef std::map < KnownStructKey, CStrA > | KNOWN_NAMES |
Public Member Functions | |
CStrA | GetCurrentStructName () |
Return structured name of the current class/structure. | |
bool | FindKnownName (size_t type_id, const void *ptr, CStrA &name) |
Find the given instance in our anti-recursion repository. | |
void | WriteIndent () |
Write some leading spaces into the output. | |
void CDECL | WriteLine (const char *format,...) WARN_FORMAT(2 |
Write a line with indent at the beginning and <LF> at the end. | |
void CDECL void | WriteValue (const char *name, const char *value_str) |
Write 'name = value' with indent and new-line. | |
void | WriteTile (const char *name, TileIndex t) |
Write name & TileIndex to the output. | |
template<typename E > | |
void | WriteEnumT (const char *name, E e) |
Dump given enum value (as a number and as named value) | |
void | BeginStruct (size_t type_id, const char *name, const void *ptr) |
Open new structure (one level deeper than the current one) 'name = {<LF>'. | |
void | EndStruct () |
Close structure '}<LF>'. | |
template<typename S > | |
void | WriteStructT (const char *name, const S *s) |
Dump nested object (or only its name if this instance is already known). |
Static Public Member Functions | |
static size_t & | LastTypeId () |
Keep track of the last assigned type_id. |
Data Fields | |
CStrA | m_out |
the output string | |
int | m_indent |
current indent/nesting level | |
std::stack< CStrA > | m_cur_struct |
here we will track the current structure name | |
KNOWN_NAMES | m_known_names |
map of known object instances and their structured names |
Class that represents the dump-into-string target.
Definition at line 96 of file dbg_helpers.h.
bool DumpTarget::FindKnownName | ( | size_t | type_id, |
const void * | ptr, | ||
CStrA & | name | ||
) |
Find the given instance in our anti-recursion repository.
Return true and set name when object was found.
Definition at line 100 of file dbg_helpers.cpp.
References m_known_names.
Referenced by WriteStructT().
CStrA DumpTarget::GetCurrentStructName | ( | ) |
Return structured name of the current class/structure.
Definition at line 86 of file dbg_helpers.cpp.
References m_cur_struct.
Referenced by BeginStruct().
|
static |
Keep track of the last assigned type_id.
Used for anti-recursion. *static
Definition at line 79 of file dbg_helpers.cpp.
Referenced by WriteStructT().
void DumpTarget::WriteIndent | ( | ) |
Write some leading spaces into the output.
Definition at line 112 of file dbg_helpers.cpp.
References CStrA::GrowSizeNC(), m_indent, and m_out.
Referenced by BeginStruct(), EndStruct(), WriteLine(), WriteTile(), and WriteValue().
void DumpTarget::WriteLine | ( | const char * | format, |
... | |||
) |
Write a line with indent at the beginning and <LF> at the end.
Definition at line 121 of file dbg_helpers.cpp.
References CStrA::AddFormatL(), CStrA::AppendStr(), m_out, and WriteIndent().
Referenced by WriteStructT().
|
inline |
Dump nested object (or only its name if this instance is already known).
Definition at line 154 of file dbg_helpers.h.
References BeginStruct(), CBlobT< T >::Data(), EndStruct(), FindKnownName(), LastTypeId(), and WriteLine().
void DumpTarget::WriteTile | ( | const char * | name, |
TileIndex | tile | ||
) |
Write name & TileIndex to the output.
Definition at line 139 of file dbg_helpers.cpp.
References m_out, TileStr(), and WriteIndent().
void DumpTarget::WriteValue | ( | const char * | name, |
const char * | value_str | ||
) |
Write 'name = value' with indent and new-line.
Definition at line 132 of file dbg_helpers.cpp.
References m_out, and WriteIndent().
Referenced by WriteEnumT().