OpenTTD Source 20241224-master-gee860a5c8e
DumpTarget Struct Reference

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, std::string > KNOWN_NAMES
 

Public Member Functions

std::string GetCurrentStructName ()
 Return structured name of the current class/structure.
 
bool FindKnownName (size_t type_id, const void *ptr, std::string &name)
 Find the given instance in our anti-recursion repository.
 
void WriteIndent ()
 Write some leading spaces into the output.
 
void WriteValue (const std::string &name, int value)
 Write 'name = value' with indent and new-line.
 
void WriteValue (const std::string &name, const std::string &value_str)
 Write 'name = value' with indent and new-line.
 
void WriteTile (const std::string &name, TileIndex t)
 Write name & TileIndex to the output.
 
template<typename E >
void WriteEnumT (const std::string &name, E e)
 Dump given enum value (as a number and as named value)
 
void BeginStruct (size_t type_id, const std::string &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 std::string &name, const S *s)
 Dump nested object (or only its name if this instance is already known).
 
template<typename S >
void WriteStructT (const std::string &name, const std::deque< 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

std::string m_out
 the output string
 
int m_indent
 current indent/nesting level
 
std::stack< std::string > 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
 

Detailed Description

Class that represents the dump-into-string target.

Definition at line 95 of file dbg_helpers.h.

Member Typedef Documentation

◆ KNOWN_NAMES

typedef std::map<KnownStructKey, std::string> DumpTarget::KNOWN_NAMES

Definition at line 116 of file dbg_helpers.h.

Constructor & Destructor Documentation

◆ DumpTarget()

DumpTarget::DumpTarget ( )
inline

Definition at line 123 of file dbg_helpers.h.

Member Function Documentation

◆ BeginStruct()

void DumpTarget::BeginStruct ( size_t  type_id,
const std::string &  name,
const void *  ptr 
)

Open new structure (one level deeper than the current one) 'name = {<LF>'.

Definition at line 138 of file dbg_helpers.cpp.

References GetCurrentStructName(), m_cur_struct, m_indent, m_known_names, m_out, and WriteIndent().

Referenced by WriteStructT(), and WriteStructT().

◆ EndStruct()

void DumpTarget::EndStruct ( )

Close structure '}<LF>'.

Definition at line 162 of file dbg_helpers.cpp.

References m_cur_struct, m_indent, m_out, and WriteIndent().

Referenced by WriteStructT(), and WriteStructT().

◆ FindKnownName()

bool DumpTarget::FindKnownName ( size_t  type_id,
const void *  ptr,
std::string &  name 
)

Find the given instance in our anti-recursion repository.

Return true and set name when object was found.

Definition at line 94 of file dbg_helpers.cpp.

References m_known_names.

Referenced by WriteStructT(), and WriteStructT().

◆ GetCurrentStructName()

std::string DumpTarget::GetCurrentStructName ( )

Return structured name of the current class/structure.

Definition at line 80 of file dbg_helpers.cpp.

References m_cur_struct.

Referenced by BeginStruct().

◆ LastTypeId()

size_t & DumpTarget::LastTypeId ( )
static

Keep track of the last assigned type_id.

Used for anti-recursion. static

Definition at line 73 of file dbg_helpers.cpp.

Referenced by WriteStructT(), and WriteStructT().

◆ WriteEnumT()

template<typename E >
void DumpTarget::WriteEnumT ( const std::string &  name,
e 
)
inline

Dump given enum value (as a number and as named value)

Definition at line 138 of file dbg_helpers.h.

References ValueStr(), and WriteValue().

◆ WriteIndent()

void DumpTarget::WriteIndent ( )

Write some leading spaces into the output.

Definition at line 106 of file dbg_helpers.cpp.

References m_indent, and m_out.

Referenced by BeginStruct(), EndStruct(), WriteTile(), WriteValue(), and WriteValue().

◆ WriteStructT() [1/2]

template<typename S >
void DumpTarget::WriteStructT ( const std::string &  name,
const S *  s 
)
inline

Dump nested object (or only its name if this instance is already known).

Definition at line 147 of file dbg_helpers.h.

References BeginStruct(), EndStruct(), FindKnownName(), LastTypeId(), and WriteValue().

Referenced by WriteStructT().

◆ WriteStructT() [2/2]

template<typename S >
void DumpTarget::WriteStructT ( const std::string &  name,
const std::deque< S > *  s 
)
inline

Dump nested object (or only its name if this instance is already known).

Definition at line 170 of file dbg_helpers.h.

References BeginStruct(), EndStruct(), FindKnownName(), LastTypeId(), WriteStructT(), and WriteValue().

◆ WriteTile()

void DumpTarget::WriteTile ( const std::string &  name,
TileIndex  t 
)

Write name & TileIndex to the output.

Definition at line 129 of file dbg_helpers.cpp.

References m_out, TileStr(), and WriteIndent().

◆ WriteValue() [1/2]

void DumpTarget::WriteValue ( const std::string &  name,
const std::string &  value_str 
)

Write 'name = value' with indent and new-line.

Definition at line 122 of file dbg_helpers.cpp.

References m_out, and WriteIndent().

◆ WriteValue() [2/2]

void DumpTarget::WriteValue ( const std::string &  name,
int  value 
)

Write 'name = value' with indent and new-line.

Definition at line 115 of file dbg_helpers.cpp.

References m_out, and WriteIndent().

Referenced by WriteEnumT(), WriteStructT(), and WriteStructT().

Field Documentation

◆ m_cur_struct

std::stack<std::string> DumpTarget::m_cur_struct

here we will track the current structure name

Definition at line 120 of file dbg_helpers.h.

Referenced by BeginStruct(), EndStruct(), and GetCurrentStructName().

◆ m_indent

int DumpTarget::m_indent

current indent/nesting level

Definition at line 119 of file dbg_helpers.h.

Referenced by BeginStruct(), EndStruct(), and WriteIndent().

◆ m_known_names

KNOWN_NAMES DumpTarget::m_known_names

map of known object instances and their structured names

Definition at line 121 of file dbg_helpers.h.

Referenced by BeginStruct(), and FindKnownName().

◆ m_out

std::string DumpTarget::m_out

the output string

Definition at line 118 of file dbg_helpers.h.

Referenced by BeginStruct(), EndStruct(), WriteIndent(), WriteTile(), WriteValue(), and WriteValue().


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