#include "../include/DatabaseStorage.hpp" using namespace std; namespace odhtdb { void DatabaseStorage::createStorage(const Key &key, vector &&groups, u64 timestamp) { if(storageMap.find(key) != storageMap.end()) { string errMsg = "Database storage with key "; errMsg += key.hashedKey.toString(); errMsg += " already exists"; throw DatabaseStorageAlreadyExists(errMsg); } DatabaseStorageObjectList *databaseStorageObjectList = new DatabaseStorageObjectList(); databaseStorageObjectList->timestamp = timestamp; databaseStorageObjectList->groups = move(groups); storageMap[key] = databaseStorageObjectList; } void DatabaseStorage::appendStorage(const Key &key, DataView &data, u64 timestamp, const Signature::PublicKey &creatorPublicKey) { auto it = storageMap.find(key); if(it == storageMap.end()) { string errMsg = "Database storage with key "; errMsg += key.hashedKey.toString(); errMsg += " not found"; throw DatabaseStorageNotFound(errMsg); } it->second->objects.push_back({data, timestamp, creatorPublicKey}); } }