예제 #1
0
//##############################################################################
//##############################################################################
BerkeleyDBCXXDb::history_list_t
BerkeleyDBCXXDb::get_change_history() const
{
    RANGE_LOG_FUNCTION();
    ChangeList changes = this->read_changelist();
    history_list_t history_list;

    for (int v = 0; v < changes.change_size(); ++v) {
        ChangeList_Change v_change = changes.change(v);
        changelist_t clist;

        for (int i = 0; i < v_change.items_size(); ++i) {
            ChangeList_Change_Item item = v_change.items(i);
            record_type type = get_type_from_keyname(item.key());
            std::string key = item.key().substr(key_prefix(type).size());
            clist.push_back(std::make_tuple(type, key, item.version(), ""));
        }
        history_list.push_back(clist);
    }

    return history_list;
}
예제 #2
0
std::string Channel::tile_key(TileIndex ti) const {
  return string_printf("%s.%d.%lld", key_prefix().c_str(), ti.level, ti.offset);
}
예제 #3
0
std::string Channel::metainfo_key() const {
  return key_prefix() + ".info";
}
예제 #4
0
//##############################################################################
//##############################################################################
std::string
BerkeleyDBCXXDb::unprefix(const std::string &fullkey)
{
    record_type type = get_type_from_keyname(fullkey);
    return fullkey.substr(key_prefix(type).length(), std::string::npos);
}
예제 #5
0
//##############################################################################
//##############################################################################
std::string
BerkeleyDBCXXDb::key_name(record_type type, const std::string &name)
{
    return key_prefix(type) + name;
}