CCF
Loading...
Searching...
No Matches
tpcc_serializer.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
5#include "ds/serialized.h"
6
7namespace tpcc
8{
9 struct DbCreation
10 {
12 int32_t seed;
13
14 std::vector<uint8_t> serialize() const
15 {
16 auto size = sizeof(new_orders_per_district) + sizeof(seed);
17 std::vector<uint8_t> v(size);
18 auto data = v.data();
20 serialized::write(data, size, seed);
21 return v;
22 }
23
24 static DbCreation deserialize(const uint8_t* data, size_t size)
25 {
26 DbCreation db;
28 serialized::read<decltype(new_orders_per_district)>(data, size);
29 db.seed = serialized::read<decltype(seed)>(data, size);
30 return db;
31 }
32 };
33
35 {
36 int32_t seed;
37 int32_t warehouse_id;
38 int32_t district_id;
39 int32_t threshold;
40
41 std::vector<uint8_t> serialize() const
42 {
43 auto size = sizeof(seed) + sizeof(warehouse_id) + sizeof(district_id) +
44 sizeof(threshold);
45 std::vector<uint8_t> v(size);
46 auto data = v.data();
47 serialized::write(data, size, seed);
49 serialized::write(data, size, district_id);
50 serialized::write(data, size, threshold);
51 return v;
52 }
53
54 static StockLevel deserialize(const uint8_t* data, size_t size)
55 {
56 StockLevel db;
57 db.seed = serialized::read<decltype(seed)>(data, size);
58 db.warehouse_id = serialized::read<decltype(warehouse_id)>(data, size);
59 db.district_id = serialized::read<decltype(district_id)>(data, size);
60 db.threshold = serialized::read<decltype(threshold)>(data, size);
61 return db;
62 }
63 };
64
65 struct TxInfo
66 {
67 int32_t seed;
68
69 std::vector<uint8_t> serialize() const
70 {
71 auto size = sizeof(seed);
72 std::vector<uint8_t> v(size);
73 auto data = v.data();
74 serialized::write(data, size, seed);
75 return v;
76 }
77
78 static TxInfo deserialize(const uint8_t* data, size_t size)
79 {
80 TxInfo info;
81 info.seed = serialized::read<decltype(seed)>(data, size);
82 return info;
83 }
84 };
85}
void write(uint8_t *&data, size_t &size, const T &v)
Definition serialized.h:106
Definition tpcc_common.h:8
Definition tpcc_serializer.h:10
static DbCreation deserialize(const uint8_t *data, size_t size)
Definition tpcc_serializer.h:24
int32_t seed
Definition tpcc_serializer.h:12
std::vector< uint8_t > serialize() const
Definition tpcc_serializer.h:14
int32_t new_orders_per_district
Definition tpcc_serializer.h:11
Definition tpcc_serializer.h:35
int32_t district_id
Definition tpcc_serializer.h:38
int32_t seed
Definition tpcc_serializer.h:36
int32_t warehouse_id
Definition tpcc_serializer.h:37
static StockLevel deserialize(const uint8_t *data, size_t size)
Definition tpcc_serializer.h:54
std::vector< uint8_t > serialize() const
Definition tpcc_serializer.h:41
int32_t threshold
Definition tpcc_serializer.h:39
Definition tpcc_serializer.h:66
int32_t seed
Definition tpcc_serializer.h:67
static TxInfo deserialize(const uint8_t *data, size_t size)
Definition tpcc_serializer.h:78
std::vector< uint8_t > serialize() const
Definition tpcc_serializer.h:69