Класс so_sysconf_2::app_paths_t

#include <app_paths.hpp>

Полный список членов класса


Подробное описание

Хранилище имен каталогов, которые может использовать SObjectizer приложение.

Начиная с:
v.2.3.0
Обычному SObjectizer-приложению требуется знать, где располагаются его конфигурационные файлы, где приложение может располагать свои файлы данных (восстановочную информацию) и где приложение может создавать временные файлы. Планируется, что эту информацию приложению будут передавать в командной строке. Далее эта информация заносится в объект типа app_paths_t откуда ее могут извлечь агенты и кооперации, регистрируемые через SO SysConf.

Объекты типа app_paths_t могут быть созданы и использованы по желанию программиста, но предполагается, что должен использоваться единственный объект-синглетон, доступный через метод instance().

Работать с именами путей можно двумя способами.

Во-первых, можно получать имя конкретного каталога методами-getter-ами (etc_path(), log_path(), data_path(), tmp_path()) и вручную затем формировать имена файлов внутри этих каталогов. При этом нужно помнить, что возвращаемые геттерами значения уже содержат завершающий слеш. А так же то, что методы сеттеры автоматический добаляют к указанному пути завершающий слеш, если слеша еще не было.

Во-вторых, можно получать готовые имена файлов с помощью методов etc_file_name(), log_file_name(), data_file_name(), tmp_file_name().

Иногда могут возникать ситуации, когда желательно узнать, был ли явно задан какой-либо из путей, или будет использовано значение по умолчанию. Для этих ситуаций предназначены методы is_default_etc_path(), is_default_log_path(), is_default_data_path(), is_default_tmp_path(). Если для инициализации объекта app_paths_t использовался конструктор по-умолчанию, и не было вызвано методов setter-ов, то данные методы возвращают true. Если же метод-setter был задействован (непосредственно или через инициализирующий конструктор), то соответствующий метод is_default_* будет возвращать false.

Заметки:
Класс и объект синглетон не являются thread safe.

Открытые члены

 app_paths_t ()
 app_paths_t (const std::string &etc_path, const std::string &log_path, const std::string &data_path, const std::string &tmp_path)
Getters/Setters.
const std::string & etc_path () const
void set_etc_path (const std::string &path)
bool is_default_etc_path () const
const std::string & log_path () const
void set_log_path (const std::string &path)
bool is_default_log_path () const
const std::string & data_path () const
void set_data_path (const std::string &path)
bool is_default_data_path () const
const std::string & tmp_path () const
void set_tmp_path (const std::string &path)
bool is_default_tmp_path () const
Получение готовых имен файлов в нужных местах.
std::string etc_file_name (const std::string &file_name)
std::string log_file_name (const std::string &file_name)
std::string data_file_name (const std::string &file_name)
std::string tmp_file_name (const std::string &file_name)

Открытые статические члены

static app_paths_tinstance ()
 Получить указатель на объект-синглетон.

Закрытые данные

Значения путей.
std::string m_etc_path
bool m_is_default_etc_path
std::string m_log_path
bool m_is_default_log_path
std::string m_data_path
bool m_is_default_data_path
std::string m_tmp_path
bool m_is_default_tmp_path

Конструктор(ы)

so_sysconf_2::app_paths_t::app_paths_t (  ) 

Всем путям присваивается значение по умолчанию: ./ (текущий каталог).

so_sysconf_2::app_paths_t::app_paths_t ( const std::string &  etc_path,
const std::string &  log_path,
const std::string &  data_path,
const std::string &  tmp_path 
)

Полностью инициализирующий конструктор. Если в заданных именах отсутствует завершающий слеш, то он добавляется автоматически.

Аргументы:
etc_path  Путь к конфигурационным файлам.
log_path  Путь к логам.
data_path  Путь к файлам данных.
tmp_path  Путь к временным файлам.


Методы

const std::string & so_sysconf_2::app_paths_t::etc_path (  )  const

std::string so_sysconf_2::app_paths_t::etc_file_name ( const std::string &  file_name  ) 

app_paths_t * so_sysconf_2::app_paths_t::instance (  )  [static]

Получить указатель на объект-синглетон.

Внимание:
Объект-синглетон не является thread safe объектом.


Данные класса

std::string so_sysconf_2::app_paths_t::m_etc_path [private]


Объявления и описания членов классов находятся в файлах:
Документация по so_sysconf_2 v.2.4.0. Последние изменения: Wed Oct 31 18:55:07 2007. Создано системой  doxygen1.5.4 Intervale SourceForge.net Logo