-//-----------------------------------------------------------------------------
-class BASE_PARSER {
-public:
- BASE_PARSER(const ADMIN & admin, const std::string & t)
- : strError(),
- admins(NULL),
- users(NULL),
- tariffs(NULL),
- store(NULL),
- settings(NULL),
- currAdmin(admin),
- depth(0),
- tag(t)
- {}
- virtual ~BASE_PARSER() {}
- virtual int Start(void *data, const char *el, const char **attr);
- virtual int End(void *data, const char *el);
+class BASE_PARSER
+{
+ public:
+ struct FACTORY
+ {
+ virtual BASE_PARSER * create(const ADMIN & admin) = 0;
+ };
+ typedef std::map<std::string, FACTORY *> REGISTRY;