Класс so_4::rt::impl::std_class_relation_handler_t

Граф наследования:so_4::rt::impl::std_class_relation_handler_t:

so_4::rt::impl::class_relation_handler_t Полный список членов класса

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

Стандартная реализация интерфейса class_relation_handler_t.


Открытые типы

typedef std::map< std::string,
class_info_t
class_info_map_t
 Тип словаря описаний классов.
typedef std::map< std::string,
const msg_handler_impl_t * > 
msg_handler_map_t
 Тип словаря описаний сообщений.
typedef std::map< std::string,
const evt_handler_impl_t * > 
evt_handler_map_t
 Тип словаря описаний событий.
typedef std::map< std::string,
state_handler_impl_t * > 
state_handler_map_t
 Тип словаря описаний состояний.
enum  state_t { state_not_processed, state_invalid, state_valid }
 Состояние класса. Подробнее...

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

virtual void changed ()
 Установить признак того, что системный словарь изменился.
virtual bool check (const class_map_t &map_to_rebuild, const std::string &class_name, std::string &reason_desc)

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

void update (const class_map_t &map_to_rebuild)
 Реакция на изменение списка классов.
void process_content (const class_map_t &map_to_rebuild)
 Полная обработка текущего содержимого.
int try_merge_states (const class_handler_impl_t &class_handler, const class_map_t &all_classes, std::string &error_desc)
 Попытка слияния описаний состояний.
int calc_bases_state (const class_handler_impl_t &class_handler, const class_map_t &all_classes, std::string &invalid_base_name, std::string &error_desc)
 Вычисление общего состояния базовых классов.
void calc_class_state (class_handler_impl_t &class_handler, const class_map_t &all_classes, class_info_t &class_info)
 Вычисление состояние класса.
int build_all_msg_list (class_handler_impl_t &class_handler, const class_map_t &all_classes, std::string &reason_desc)
 Построение полного списка сообщений.
int build_all_evt_list (class_handler_impl_t &class_handler, const class_map_t &all_classes, std::string &reason_desc)
 Построение полного списка событий.
int build_all_state_list (class_handler_impl_t &class_handler, const class_map_t &all_classes, std::string &reason_desc)
 Построение полного списка состояний.
int detect_initial_state (class_handler_impl_t &class_handler, const class_map_t &all_classes, std::string &reason_desc)
 Определение начального состояния.
bool query_full_evt_map (const class_handler_impl_t &class_handler, const class_map_t &all_classes, evt_handler_map_t &result, std::string &conflict_evt_name)
 включая унаследованные.
bool query_full_state_map (const class_handler_impl_t &class_handler, const class_map_t &all_classes, state_handler_map_t &result, std::string &conflict_state_name)
 включая унаследованные.
int check_all_state_events (const state_handler_map_t &states, const evt_handler_impl_ptr_vector_t &, std::string &reason_desc)
 только известные события

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

static void msg_vect_to_msg_map (const msg_handler_impl_ptr_vector_t &v, msg_handler_map_t &m)
 Вспомогательный метод.
static void msg_map_to_msg_vect (const msg_handler_map_t &m, msg_handler_impl_ptr_vector_t &v)
 Вспомогательный метод.
static void evt_vect_to_evt_map (const evt_handler_impl_ptr_vector_t &v, evt_handler_map_t &m)
 Вспомогательный метод.
static void evt_map_to_evt_vect (const evt_handler_map_t &m, evt_handler_impl_ptr_vector_t &v)
 Вспомогательный метод.
static void state_vect_to_state_map (const state_handler_impl_ptr_vector_t &v, state_handler_map_t &m)
 Вспомогательный метод.
static void state_map_to_state_vect (const state_handler_map_t &m, state_handler_impl_ptr_vector_t &v)
 Вспомогательный метод.

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

class_info_map_t m_classes
 Описания существующих в словаре системы классов.
bool m_is_correct
 Признак того, что мы содержим корректную информацию.

Классы

struct  class_info_t
 Описание одного класса. Подробнее...


Определения типов

typedef std::map< std::string, class_info_t > so_4::rt::impl::std_class_relation_handler_t::class_info_map_t
 

Тип словаря описаний классов.

В качестве ключа используется имя класса.

typedef std::map< std::string, const evt_handler_impl_t * > so_4::rt::impl::std_class_relation_handler_t::evt_handler_map_t
 

Тип словаря описаний событий.

Необходим для формирования полного списка событий.

В качестве ключа используется имя события.

typedef std::map< std::string, const msg_handler_impl_t * > so_4::rt::impl::std_class_relation_handler_t::msg_handler_map_t
 

Тип словаря описаний сообщений.

Необходим для формирования полного списка сообщений.

В качестве ключа используется имя сообщения.

typedef std::map< std::string, state_handler_impl_t * > so_4::rt::impl::std_class_relation_handler_t::state_handler_map_t
 

Тип словаря описаний состояний.

Необходим для формирования полного списка состояний.

В качестве ключа используется имя состояния.


Перечисления

enum so_4::rt::impl::std_class_relation_handler_t::state_t
 

Состояние класса.

Элементы перечислений:
state_not_processed  Класс еще не обработан.
state_invalid  Класс обработан и признан некорректным.
state_valid  Класс обработан и признан корректным.


Методы

int so_4::rt::impl::std_class_relation_handler_t::build_all_evt_list class_handler_impl_t class_handler,
const class_map_t &  all_classes,
std::string &  reason_desc
[private]
 

Построение полного списка событий.

Возвращает:
state_valid, если полный список событий построен успешно. state_invalid, если найден конфликт наследования событий.
Аргументы:
class_handler  Класс для обработки.
all_classes  Все классы словаря.
reason_desc  Приемник описания ошибки.

int so_4::rt::impl::std_class_relation_handler_t::build_all_msg_list class_handler_impl_t class_handler,
const class_map_t &  all_classes,
std::string &  reason_desc
[private]
 

Построение полного списка сообщений.

Возвращает:
state_valid, если полный список сообщений построен успешно. state_invalid, если найден конфликт наследования сообщений.
Аргументы:
class_handler  Класс для обработки.
all_classes  Все классы словаря.
reason_desc  Приемник описания ошибки.

int so_4::rt::impl::std_class_relation_handler_t::build_all_state_list class_handler_impl_t class_handler,
const class_map_t &  all_classes,
std::string &  reason_desc
[private]
 

Построение полного списка состояний.

v.4.2.7
Обязательно должен вызываться после метода build_all_evt_list(), т.к. выполняет проверку имен событий во всех состояниях. Для этого в классе агента уже должен быть определен полный список событий.
Возвращает:
state_valid, если полный список состояний построен успешно. state_invalid, если найден конфликт наследования состояний.
Аргументы:
class_handler  Класс для обработки.
all_classes  Все классы словаря.
reason_desc  Приемник описания ошибки.

int so_4::rt::impl::std_class_relation_handler_t::calc_bases_state const class_handler_impl_t class_handler,
const class_map_t &  all_classes,
std::string &  invalid_base_name,
std::string &  error_desc
[private]
 

Вычисление общего состояния базовых классов.

Возвращает:
Следующие значения:
  • state_valid, если все базовые типы находятся в состоянии state_valid;
  • state_invalid, если хотя бы один базовый тип не существует или находится в состоянии state_invalid;
  • state_not_processed в остальных случаях.
Аргументы:
class_handler  Тип, состояние базовых типов которого нужно проверить.
all_classes  Все классы словаря.
invalid_base_name  Приемник имени некорректного базового класса.
error_desc  Приемник описания причины, по которой базовый класс был признан некорректным.

void so_4::rt::impl::std_class_relation_handler_t::calc_class_state class_handler_impl_t class_handler,
const class_map_t &  all_classes,
class_info_t class_info
[private]
 

Вычисление состояние класса.

Определяются полные списки сообщений, событий и состояний. На основании результата определяется состояние класса.

Аргументы:
class_handler  Тип, описание которого нужно обработать.
all_classes  Все классы словаря.
class_info  Приемник вычисленного состояния.

bool so_4::rt::impl::std_class_relation_handler_t::check const class_map_t &  map_to_rebuild,
const std::string &  class_name,
std::string &  reason_desc
[virtual]
 

Если мы содержим не корректную информацию, то информация перестраивается.

Замещает so_4::rt::impl::class_relation_handler_t.

int so_4::rt::impl::std_class_relation_handler_t::check_all_state_events const state_handler_map_t states,
const evt_handler_impl_ptr_vector_t &  ,
std::string &  reason_desc
[private]
 

только известные события

Начиная с:
v.4.2.7
Возвращает:
state_valid, если все нормально. state_invalid, если в описании какого-нибудь состояния найдено неопределенное событие.
Аргументы:
states  Все состояния класса.
event_vector  Все события класса.
reason_desc  Приемник описания ошибки.

int so_4::rt::impl::std_class_relation_handler_t::detect_initial_state class_handler_impl_t class_handler,
const class_map_t &  all_classes,
std::string &  reason_desc
[private]
 

Определение начального состояния.

Внимание:
Должен вызываться после успешного завершения метода build_all_state_list().
Возвращает:
state_valid, если начальное состояние успешно определено. state_invalid, если найден конфликт в определении начального состояния.
Аргументы:
class_handler  Класс для обработки.
all_classes  Все классы словаря.
reason_desc  Приемник описания ошибки.

void so_4::rt::impl::std_class_relation_handler_t::process_content const class_map_t &  map_to_rebuild  )  [private]
 

Полная обработка текущего содержимого.

Содержимое m_classes должно точно соответствовать содержимому map_to_rebuild.

Аргументы:
map_to_rebuild  Полный список классов в словаре.

bool so_4::rt::impl::std_class_relation_handler_t::query_full_evt_map const class_handler_impl_t class_handler,
const class_map_t &  all_classes,
evt_handler_map_t result,
std::string &  conflict_evt_name
[private]
 

включая унаследованные.

Возвращает:
true, если конфликтов не выявлено. false при наличии конфликтов.
Аргументы:
class_handler  Класс, карту событий которого необходимо получить.
all_classes  Все классы словаря.
result  Приемник результирующего словаря. Новое содержимое дополняется к уже существующему.
conflict_evt_name  Приемник имени конфликтного события. Заполняется только при обнаружении конфликта.

bool so_4::rt::impl::std_class_relation_handler_t::query_full_state_map const class_handler_impl_t class_handler,
const class_map_t &  all_classes,
state_handler_map_t result,
std::string &  conflict_state_name
[private]
 

включая унаследованные.

Возвращает:
true, если конфликтов не выявлено. false при наличии конфликтов.
Аргументы:
class_handler  Класс, карту состояний которого необходимо получить.
all_classes  Все классы словаря.
result  Приемник результирующего словаря. Новое содержимое дополняется к уже существующему.
conflict_state_name  Приемник имени конфликтного состояния. Заполняется только при обнаружении конфликта.

int so_4::rt::impl::std_class_relation_handler_t::try_merge_states const class_handler_impl_t class_handler,
const class_map_t &  all_classes,
std::string &  error_desc
[private]
 

Попытка слияния описаний состояний.

Начиная с:
v.4.2.7
Если в описании класса есть состояния, требующие слияния своего содержимого, то осуществляется попытка выполнить это слияние.

Возвращает:
Следующие значения:
  • state_valid, если слияний не потребовалось или все слияния успешно выполнены;
  • state_invalid, если слияние не возможно (из-за ссылки на неизвестный класс или на класс, который находится в состоянии state_invalid);
  • state_not_processed, если требуется слияние с состояниями класса, который сам находится в состоянии state_not_processed.
Аргументы:
class_handler  Тип, состояния которого нужно проверять.
all_classes  Все классы словаря.
error_desc  Приемник описания причины, по которой класс был признан некорректным.

void so_4::rt::impl::std_class_relation_handler_t::update const class_map_t &  map_to_rebuild  )  [private]
 

Реакция на изменение списка классов.

Осуществляется перестройка полного списка сообщений.

Аргументы:
map_to_rebuild  Полный список классов в словаре.


Документация по SObjectizer. Последние изменения: Thu Jan 12 10:52:52 2006. Создано системой  doxygen 1.4.6-NO
Hosted by uCoz