Home
Install
Use
Develop
Support
News
Credits
hosted by
|
11#ifndef __identifiable_factory_h
12#define __identifiable_factory_h
31template< typename T, typename C>
32T* identifiable_factory (C& ptrs, std::string name)
36 std::cerr << "identifiable_factory name=" << name << std::endl;
42 message += "\n\n" "Options:" "\n\n";
45 std::cerr << "identifiable_factory ptrs=" << ( void*) &ptrs << std::endl;
48 for ( auto ptr=ptrs.begin(); ptr != ptrs.end(); ptr++)
51 std::cerr << "ptr=" << ( void*) (*ptr) << " id=" << (*ptr)->get_identity() << std::endl;
56 message += (*ptr)->get_identity() + "\t"+ (*ptr)->get_description() + "\n";
58 else if ((*ptr)->identify(name))
61 std::cerr << "identifiable_factory calling clone" << std::endl;
63 return (*ptr)->clone ();
68 throw Error (HelpMessage, "identifiable_factory", message);
70 throw Error (InvalidState, "identifiable_factory",
71 "no instance named '" + name + "'");
A convenient exception handling class. Definition Error.h:54
Generated using doxygen 1.14.0
|