11 map
<string
,Backend::Factory
*>*
12 Backend::Factory::factories
= NULL
;
14 Backend::Factory::ref
= 0;
16 Backend::Factory::Factory ( const std::string
& name_
)
21 factories
= new map
<string
,Factory
*>;
22 (*factories
)[name
] = this;
25 Backend::Factory::~Factory()
35 Backend::Factory::Create ( const string
& name
,
38 string
sname ( name
);
40 if ( !factories
|| !factories
->size() )
41 throw Exception ( "internal tool error: no registered factories" );
42 Backend::Factory
* f
= (*factories
)[sname
];
45 throw UnknownBackendException ( sname
);
48 return (*f
) ( project
);
51 Backend::Backend ( Project
& project
)
52 : ProjectNode ( project
)