//------------------------------------------------------ std::string DatabaseService::loadFileNameFromTag(const Opde::FileGroupPtr &db, const char *tagname) { FilePtr fdm = db->getFile(tagname); size_t gft_size = fdm->size(); std::string res; char *data = NULL; data = new char[gft_size + 1]; data[0] = 0x0; data[gft_size] = 0x0; fdm->read(data, fdm->size()); // TODO: Catch exception res = std::string(data); delete[] data; return res; }
//------------------------------------------------------ uint32_t DatabaseService::getFileType(const FileGroupPtr &db) { // TODO: load FILE_TYPE for the first parameter FilePtr fttag = db->getFile("FILE_TYPE"); if (!fttag) { // TODO: Exception, rather LOG_FATAL("Database file did not contain FILE_TYPE tag"); return 0; } if (fttag->size() < sizeof(uint32_t)) { // TODO: Exception, rather LOG_FATAL("Database file did contain an invalid FILE_TYPE tag"); return 0; } uint32_t filetype; fttag->readElem(&filetype, sizeof(uint32_t)); return filetype; }