10 vector
<Backend::Factory
*>* Backend::Factory::factories
= NULL
;
12 Backend::Factory::Factory ( const std::string
& name_
)
16 factories
= new vector
<Factory
*>;
17 factories
->push_back ( this );
21 Backend::Factory::Create ( const std::string
& name
, Project
& project
)
23 string
sname ( name
);
25 if ( !factories
|| !factories
->size() )
26 throw Exception ( "internal tool error: no registered factories" );
27 vector
<Backend::Factory
*>& fact
= *factories
;
28 for ( size_t i
= 0; i
< fact
.size(); i
++ )
31 if ( sname
== fact
[i
]->name
)
32 return (*fact
[i
]) ( project
);
34 throw UnknownBackendException ( sname
);
38 Backend::Backend ( Project
& project
)
39 : ProjectNode ( project
)