forked from kohler/masstree-beta
-
Notifications
You must be signed in to change notification settings - Fork 0
/
kvproto.hh
57 lines (51 loc) · 1.42 KB
/
kvproto.hh
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* Masstree
* Eddie Kohler, Yandong Mao, Robert Morris
* Copyright (c) 2012-2013 President and Fellows of Harvard College
* Copyright (c) 2012-2013 Massachusetts Institute of Technology
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, subject to the conditions
* listed in the Masstree LICENSE file. These conditions include: you must
* preserve this copyright notice, and you cannot mention the copyright
* holders in advertising related to the Software without their permission.
* The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This
* notice is a summary of the Masstree LICENSE file; the license in that file
* is legally binding.
*/
#ifndef KVPROTO_HH
#define KVPROTO_HH
#include "compiler.hh"
enum {
Cmd_None = 0,
Cmd_Get = 2,
Cmd_Scan = 4,
Cmd_Put = 6,
Cmd_Replace = 8,
Cmd_Remove = 10,
Cmd_Checkpoint = 12,
Cmd_Handshake = 14,
Cmd_Max
};
enum result_t {
NotFound = -2,
Retry,
OutOfDate,
Inserted,
Updated,
Found,
ScanDone
};
enum ckptrav_order_t {
ckptrav_inorder = 0,
ckptrav_preorder
};
struct row_marker {
enum { mt_remove = 1, mt_delta = 2 };
int marker_type_;
};
template <typename R>
inline bool row_is_marker(const R* row) {
return row->timestamp() & 1;
}
#endif