//------------------------------------------------------
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;
}