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
,
37 Configuration
& configuration
)
39 string
sname ( name
);
41 if ( !factories
|| !factories
->size () )
42 throw InvalidOperationException ( __FILE__
,
44 "No registered factories" );
45 Backend::Factory
* f
= (*factories
)[sname
];
48 throw UnknownBackendException ( sname
);
51 return (*f
) ( project
, configuration
);
54 Backend::Backend ( Project
& project
,
55 Configuration
& configuration
)
56 : ProjectNode ( project
),
57 configuration ( configuration
)