/** ****************************************************************************** @file /common/rm/rmxmli.h @brief Interface k RMxml @author Vta @version 1.0 ******************************************************************************/ #ifndef _RMxmli_ #define _RMxmli_ #include "common/rm/rmxml.h" namespace rm { /// Interface k RMxml template class TRM_xml_i { public: /** @name Ziskani dat */ //@{ /** Ziska do *data odkaz na strukturu s id z RM. Data se nekopiruji. */ void get(T ** data,int id); /** Ziska vsechna data. Do ukazatele, na ktery ukazuje data se priradi ukazatel na pole, ktere je v RMxmli. */ void getAll(DA ** data); /** Vyplni pole ids tak, ze 1 je na i-te pozici, pokud existuji data s indexem i */ void getIds(DA * ids); //@} /** @name Nacitani/uvolnovani dat */ //@{ /** Nacte okamzite, ve stejnem vlakne */ void loadNow(int id); /** Prida pozadavek na nacteni */ void request(int id); /** Zpracuje pozadavky na nacteni */ void loadBuffer(); /** Uvolni nactene data z pameti */ void freeData(int id); //@} /** @name Pridavani, mazani a modifikace */ //@{ /** Prida dalsi data @param data vlastni data @param structid typ dat \ref STRUCT_TCL, \ref STRUCT_TERRAIN n @param id pozice na kterou se data maji pridat, nebo -1, pokud na tom nezalezi @param startid pokud je id rovno -1, tento parametr urcuje, odkud se zacne hledat volny index @param file jmeno souboru, kde budou data ulozana @return Pozice, kam se data pridala */ int add(T * data,int structid,int id,int startid,char * file); /** Odstrani data s indexem id */ void del(int id); /** Modifikuje jiz zapsana data s indexem id */ void modify(T*data, int id); //@} /** @name Ziskani informaci o datech */ //@{ /** Vraci pocet vsech zaznamu v indexovem souboru */ int getCount(); /** Vraci pocet doposud nactenych dat */ int getLoaded(); //@} /** Konstruktor, ktery musi obsahovat odkaz na RM, ke kteremu toto bude interface */ TRM_xml_i(TRM_xml * globalrmxml); /** Destruktor */ ~TRM_xml_i(); private: /** RM ke kteremu je tento interface */ TRM_xml * rmxml; }; template void TRM_xml_i::loadNow(int id) { this->rmxml->loadXML(id); } template void TRM_xml_i::request(int id) { this->rmxml->request(id); } template void TRM_xml_i::loadBuffer() { this->rmxml->loadBuffer(); } template void TRM_xml_i::freeData(int id) { this->rmxml->freeData(id); } template int TRM_xml_i::getCount() { return this->rmxml->getCount(); } template int TRM_xml_i::getLoaded() { return this->rmxml->getLoaded(); } template int TRM_xml_i::add(T * data,int structid,int id,int startid,char * file) { return this->rmxml->add(data,structid,id,startid,file); } template void TRM_xml_i::del(int id) { this->rmxml->del(id); } template void TRM_xml_i::modify(T * data,int id) { this->rmxml->modify(data,id); } template void TRM_xml_i::get(T ** data,int id) { this->rmxml->get((void**)data,id); } template void TRM_xml_i::getAll(DA ** data) { this->rmxml->getAll(data); } template void TRM_xml_i::getIds(DA * ids) { this->rmxml->getIds(ids); } /* template void TRM_xml_i::setAll(DA * data) { this->rmxml->setAll(data); } */ template TRM_xml_i::TRM_xml_i(TRM_xml * globalrmxml) { this->rmxml=globalrmxml; GLOBALLOGID(PRIORITY_CONFIRM ,"RMxmli was destroyed"); } template TRM_xml_i::~TRM_xml_i() { GLOBALLOGID(PRIORITY_CONFIRM,"RMXmli was destroyed"); } } // namespace rm #endif // indef _rmxmli_ /*****************************************************************************/