10#include "ers/IssueFactory.h"
11#include "ers/DefaultIssue.h"
12#include "ers/InvalidReferenceIssue.h"
14#include "ers/IssueFactoryIssue.h"
15#include "ers/Precondition.h"
46 return m_factory_map.insert( CallbackMap::value_type( name, creator ) ).second;
92 ERS_ASSERT( values != 0,
"null value table for original" );
98 stream <<
"Issue factory - registered issues\n";
99 stream <<
"---------------------------------\n";
104 std::string name = pos->first;
105 stream << i <<
")\t" << name << std::endl;
108 stream <<
"---------------------------------\n";
#define ERS_ASSERT(expr,...)
#define ERS_PRE_CHECK_PTR(p)
#define ERS_ISSUE_FACTORY_ERROR(name, message)
Place holder Issue class.
static IssueFactory * s_factory
Issue *(* CreateIssueCallback)()
CallbackMap m_factory_map
bool register_issue(const std::string &name, CreateIssueCallback creator)
register an issue factory
void write_to(std::ostream &stream) const
writes description to stream
static void print_registered()
prints all registered issue types
static IssueFactory * instance()
method to access singleton
Issue * build(const std::string &name) const
build an empty issue out of a name
void set_values(const string_map_type &values)
sets the value table
const string_map_type * get_value_table() const
extract value table
virtual const char * get_class_name() const
Get key for class (used for serialisation).
efhlt::Interface * factory(void)
std::ostream & operator<<(std::ostream &, const Issue &)
std::map< std::string, std::string > string_map_type