blob: 62a2e77aca97514ac3df6e5b11ca001b260cd418 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include "../include/DatabaseStorage.hpp"
using namespace std;
namespace odhtdb
{
void DatabaseStorage::createStorage(const Key &key, vector<Group*> &&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. Storage for a key needs to be created before data can be appended to it";
throw DatabaseStorageNotFound(errMsg);
}
it->second->objects.push_back({data, timestamp, creatorPublicKey});
}
}
|