|
UniSet
2.2.1
|
#include <VMonitor.h>
Открытые члены | |
| std::string | str () |
| std::string | pretty_str (int namewidth=NameWidth, int colnum=ColCount) |
| VMON_DEF_FUNC2 (int) | |
| VMON_DEF_FUNC2 (long) | |
| VMON_DEF_FUNC2 (short) | |
| VMON_DEF_FUNC2 (char) | |
| VMON_DEF_FUNC (bool) | |
| VMON_DEF_FUNC (float) | |
| VMON_DEF_FUNC (double) | |
| void | add (const std::string &name, const std::string &v) |
|
std::list< std::pair < std::string, std::string > > | getList () |
Открытые статические члены | |
| static const std::string | pretty_str (const std::string &name, const std::string *v, int width=NameWidth) |
| static const std::string | pretty_str (const std::string &name, const std::string &v, int width=NameWidth) |
Статические открытые данные | |
| static const int | NameWidth = { 30 } |
| static const int | ColCount = { 2 } |
Друзья | |
| std::ostream & | operator<< (std::ostream &os, VMonitor &m) |
Вспомогательный класс для реализации "мониторинга" состояния переменных стандартных(!) типов. Необходимые переменные добавляются при помощи функции add() (специально перегруженной под разные типы). Для удобства использования должен быть определён макрос примерно следующего вида
#define vmonit( var ) vmon.add( #var, var )
При условии, что в классе создан объект VMonitor с именем vmon.
class MyClass { public: MyClass() { // сделать один раз для нужных переменных vmonit(myvar1); vmonit(myvar2) vmonit(myvar3); } ... void printState() { cout << vmon.get_pretty_str() << endl; // или cout << vmon.str() << endl; // или cout << vmon << endl; } private: int myvar1; bool myvar2; long myvar3; ... VMonitor vmon; }
| std::string VMonitor::pretty_str | ( | int | namewidth = NameWidth, |
| int | colnum = ColCount |
||
| ) |
вывести все элементы "с форматированием" (отсортированные по алфавиту)
| namewidth | - ширина резервируемая под "имя" |
| colnum | - количество столбцов вывода |
Используется в UObject_SK::dumpVars().
| std::string VMonitor::str | ( | ) |
вывести все элементы в "простом формате" (строки "varname = value")
1.7.6.1