UniSet  2.2.1
Открытые члены | Открытые статические члены | Статические открытые данные | Друзья
Класс VMonitor

#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;
  }
Необходимо сделать:
Нужно добавить поддержку "пользовательских типов" (возможно нужно использовать variadic templates)

Методы

std::string VMonitor::pretty_str ( int  namewidth = NameWidth,
int  colnum = ColCount 
)

вывести все элементы "с форматированием" (отсортированные по алфавиту)

Аргументы:
namewidth- ширина резервируемая под "имя"
colnum- количество столбцов вывода

Используется в UObject_SK::dumpVars().

std::string VMonitor::str ( )

вывести все элементы в "простом формате" (строки "varname = value")


Объявления и описания членов классов находятся в файлах: