SObjectizer  5.1
Открытые члены | Открытые статические члены | Защищенные члены | Закрытые члены | Закрытые данные | Полный список членов класса
Класс so_log_2::chained_backend_t

Класс для выстраивания Backend-ов в цепочку Подробнее...

Граф наследования:so_log_2::chained_backend_t:
so_log_2::backend_null_t so_log_2::backend_timed_base_t so_sysconf_log_3::hard_error_detector::hard_error_detector_backend_t so_log_2::backend_15min_t so_log_2::backend_24h_t

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

 chained_backend_t (message_filter_unique_ptr_t &&message_filter=message_filter_unique_ptr_t(new void_message_filter_t))
 
ACE_Log_Msg_Backend * release_and_set_backend (ACE_Log_Msg_Backend *)
 Назначить следующий в цепочке backend. Текущий НЕ уничтожается и возвращается
 
ACE_Log_Msg_Backend * get_backend ()
 Получить текущий следующий по цепочке backend.
 
virtual int open (const ACE_TCHAR *logger_key)
 Перегрузка методов базового класса. Подробнее...
 
virtual int reset ()
 Reset the backend. Подробнее...
 
virtual int close ()
 Close the backend completely.
 
virtual ssize_t log (ACE_Log_Record &log_record)
 Process a log record.
 

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

static void install_backend (std::unique_ptr< chained_backend_t > &&new_chained_backend)
 Вставить backend в цепочку. Подробнее...
 
static void uninstall_backend (chained_backend_t *backend_ptr)
 Удалить backend из цепочки. Подробнее...
 

Защищенные члены

virtual ssize_t inner_log (ACE_Log_Record &log_record)
 Метод обработки сообщения. Подробнее...
 
virtual int inner_open (const ACE_TCHAR *logger_key)
 
virtual int inner_reset ()
 
virtual int inner_close ()
 

Закрытые члены

 chained_backend_t (const chained_backend_t &)
 
void operator= (const chained_backend_t &)
 

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

ACE_Log_Msg_Backend * m_next_backend
 Подчиненный backend.
 
const message_filter_unique_ptr_t m_message_filter
 Фильтр сообщений.
 

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

Класс для выстраивания Backend-ов в цепочку

Методы

ssize_t so_log_2::chained_backend_t::inner_log ( ACE_Log_Record &  log_record)
protectedvirtual

Метод обработки сообщения.

Если класс наследник заинтересован в получении сообщений, то он должен перегружать данный метод. Реализация по умолчанию ничего не далает. Вызывается из метода log.

Переопределяется в so_sysconf_log_3::hard_error_detector::hard_error_detector_backend_t и so_log_2::backend_timed_base_t.

Используется в log().

void so_log_2::chained_backend_t::install_backend ( std::unique_ptr< chained_backend_t > &&  new_chained_backend)
static

Вставить backend в цепочку.

Для того чтобы вставить цепочный backend необходимо, чтобы уже был установлен реальный backend, который станет следующим в цепочке и которому будут делегироваться вызовы методов интерфейса ACE_Log_Msg_Backend. Если в данный момент не утановлено никаких backend-ов, то будет брошено исключение chained_backend_exception_t.

Аргументы
new_chained_backendНовый цепочный backend.
int so_log_2::chained_backend_t::open ( const ACE_TCHAR *  logger_key)
virtual

Перегрузка методов базового класса.

Методы делегируются подчиненному backend-у.Open the back end object. Perform any actions needed to prepare the object for later logging operations.

Перекрестные ссылки m_next_backend.

int so_log_2::chained_backend_t::reset ( )
virtual

Reset the backend.

If ACE_Log_Msg is reopened during execution, this hook will be called. This method should perform any needed cleanup activity (similar to close()) because this object won't be reopened if the new open call does not specify use of this back end being reset.

Перекрестные ссылки m_next_backend.

void so_log_2::chained_backend_t::uninstall_backend ( chained_backend_t backend_ptr)
static

Удалить backend из цепочки.

Для того чтобы удалить цепочный backend необходимо помнить адрес обьекта, который был установлен. Вся цепочка начиная с головы просматривается на наличе такого backend-а, и если таковой обнаруживается. то он исключается из цепочки. Если такой backend найти не удается бросается исключение chained_backend_exception_t.

Аргументы
backend_ptrУказатель деинсталлируемого backend-а.

Перекрестные ссылки get_backend() и release_and_set_backend().


Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:24. Создано системой  doxygen1.8.3.1 Intervale SourceForge.net Logo