#ifndef OBJECT_TEMPLATE_HPP #define OBJECT_TEMPLATE_HPP #include "base_object.hpp" #include "xmlio_std.hpp" template class CObjectTemplate : public CBase_object { public: static vector * List ; static unordered_map* listId ; CObjectTemplate(void) : CBase_object() {} ; CObjectTemplate(const string & Id) : CBase_object(Id) {} ; static void SwapContext(unordered_map* newListId,vector * newList) { listId=newListId ; List=newList ; } static bool found(const string & Id) { if (listId->find(Id)==listId->end()) return false ; else return true ; } static CObject* get(const string & Id) { typename unordered_map::iterator It ; It=listId->find(Id) ; if (It==listId->end()) { error("CObjectTemplate::get(const string & Id)")<<"Object <<"<> does not exist"<second ; } static CObject* getNew(void) { CObject * newObject=new CObject ; List->push_back(newObject) ; return newObject ; } static CObject* getNew(const string & Id) { CObject* newField=new CObject(Id) ; pair value(Id,newField) ; if (listId->insert(value).second) { List->push_back(newField) ; return newField ; } else { error("CObjectTemplate::getNew(const string & Id)")<<"Object <<"<> is already present"< vector* CObjectTemplate::List=new vector ; template unordered_map* CObjectTemplate::listId=new unordered_map ; #endif