#include <serializable.hpp>
Глобальная фабрика объектов.
Открытые типы | |
| throw_exception | |
| Необходимо породить исключение. | |
| no_throw_exception | |
| возвратить нулевой указатель. | |
| enum | no_factory_action_t { throw_exception, no_throw_exception } |
| Действие, которое нужно выполнить, если фабрика для объекта не найдена. Подробнее... | |
Открытые статические члены | |
| static void | reg (const std::string &type_name, pfn_factory_t factory) |
| static void | dereg (const std::string &type_name, pfn_factory_t factory) |
| static serializable_t * | create (const std::string &type_to_create, const std::string &type_to_cast, const no_factory_action_t &no_factory_action=throw_exception) |
| Создать объект по имени типа. | |
| enum no_factory_action_t |
| serializable_t * create | ( | const std::string & | type_to_create, | |
| const std::string & | type_to_cast, | |||
| const no_factory_action_t & | no_factory_action = throw_exception | |||
| ) | [static] |
Создать объект по имени типа.
Если создать объект не удается, то порождается исключение. Проверяется возможность приведения созданного объекта к указателю на указанный тип. Если приведение типа не возможно, то порождается исключение.
| type_to_create | Имя типа, который нужно создать. |
| type_to_cast | Имя типа, к которому нужно привести указатель на созданный объект. |
| no_factory_action | Что нужно делать, если фабрика не найдена. |
1.4.7