#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 | Что нужно делать, если фабрика не найдена. |