21 #ifndef BLOCKING_KINETIC_CONNECTION_INTERFACE_H_
22 #define BLOCKING_KINETIC_CONNECTION_INTERFACE_H_
24 #include "kinetic/status.h"
25 #include "kinetic/kinetic_connection.h"
26 #include "kinetic/key_range_iterator.h"
27 #include "kinetic/common.h"
28 #include "kinetic/nonblocking_kinetic_connection.h"
35 using std::shared_ptr;
36 using std::unique_ptr;
40 class KeyRangeIterator;
41 class BlockingCallbackState;
48 virtual void SetClientClusterVersion(int64_t cluster_version) = 0;
52 const shared_ptr<const string> key,
53 unique_ptr<KineticRecord>& record) = 0;
54 virtual KineticStatus Get(
const string& key, unique_ptr<KineticRecord>& record) = 0;
56 const shared_ptr<const string> key,
57 unique_ptr<string>& actual_key,
58 unique_ptr<KineticRecord>& record) = 0;
61 unique_ptr<string>& actual_key,
62 unique_ptr<KineticRecord>& record) = 0;
63 virtual KineticStatus GetPrevious(
const shared_ptr<const string> key,
64 unique_ptr<string>& actual_key,
65 unique_ptr<KineticRecord>& record) = 0;
67 unique_ptr<string>& actual_key,
68 unique_ptr<KineticRecord>& record) = 0;
69 virtual KineticStatus GetVersion(
const shared_ptr<const string> key,
70 unique_ptr<string>& version) = 0;
71 virtual KineticStatus GetVersion(
const string& key, unique_ptr<string>& version) = 0;
72 virtual KineticStatus GetKeyRange(
const shared_ptr<const string> start_key,
73 bool start_key_inclusive,
74 const shared_ptr<const string> end_key,
75 bool end_key_inclusive,
78 unique_ptr<vector<string>>& keys) = 0;
80 bool start_key_inclusive,
81 const string& end_key,
82 bool end_key_inclusive,
85 unique_ptr<vector<string>>& keys) = 0;
86 virtual KeyRangeIterator IterateKeyRange(
const shared_ptr<const string> start_key,
87 bool start_key_inclusive,
88 const shared_ptr<const string> end_key,
89 bool end_key_inclusive,
90 unsigned int frame_size) = 0;
92 bool start_key_inclusive,
93 const string& end_key,
94 bool end_key_inclusive,
95 unsigned int frame_size) = 0;
97 const shared_ptr<const string> current_version, WriteMode mode,
98 const shared_ptr<const KineticRecord> record,
99 PersistMode persistMode) = 0;
101 const string& current_version, WriteMode mode,
103 PersistMode persistMode) = 0;
104 virtual KineticStatus Put(
const shared_ptr<const string> key,
105 const shared_ptr<const string> current_version, WriteMode mode,
106 const shared_ptr<const KineticRecord> record) = 0;
108 const string& current_version, WriteMode mode,
110 virtual KineticStatus Delete(
const shared_ptr<const string> key,
111 const shared_ptr<const string> version, WriteMode mode, PersistMode persistMode) = 0;
112 virtual KineticStatus Delete(
const string& key,
const string& version,
113 WriteMode mode, PersistMode persistMode) = 0;
114 virtual KineticStatus Delete(
const shared_ptr<const string> key,
115 const shared_ptr<const string> version, WriteMode mode) = 0;
116 virtual KineticStatus Delete(
const string& key,
const string& version, WriteMode mode) = 0;
117 virtual KineticStatus GetLog(unique_ptr<DriveLog>& drive_log) = 0;
118 virtual KineticStatus GetLog(
const vector<Command_GetLog_Type>& types, unique_ptr<DriveLog>& drive_log) = 0;
120 unique_ptr<vector<KineticStatus>>& operation_statuses) = 0;
121 virtual KineticStatus P2PPush(
const shared_ptr<const P2PPushRequest> push_request,
122 unique_ptr<vector<KineticStatus>>& operation_statuses) = 0;
124 virtual KineticStatus SetClusterVersion(int64_t cluster_version) = 0;
125 virtual KineticStatus UpdateFirmware(
const shared_ptr<const string> new_firmware) = 0;
126 virtual KineticStatus SetACLs(
const shared_ptr<
const list<ACL>> acls) = 0;
128 virtual KineticStatus SetErasePIN(
const shared_ptr<const string> new_pin,
129 const shared_ptr<const string> current_pin = make_shared<string>()) = 0;
130 virtual KineticStatus SetErasePIN(
const string& new_pin,
const string& current_pin) = 0;
131 virtual KineticStatus SetLockPIN(
const shared_ptr<const string> new_pin,
132 const shared_ptr<const string> current_pin = make_shared<string>()) = 0;
133 virtual KineticStatus SetLockPIN(
const string& new_pin,
const string& current_pin) = 0;
134 virtual KineticStatus InstantErase(
const shared_ptr<string> pin) = 0;
136 virtual KineticStatus SecureErase(
const shared_ptr<string> pin) = 0;
138 virtual KineticStatus LockDevice(
const shared_ptr<string> pin) = 0;
140 virtual KineticStatus UnlockDevice(
const shared_ptr<string> pin) = 0;
Represents a collection of P2P operations.
Indicates whether a Kinetic operation (get, put, security, etc) put succeeded or failed. Unlike Status it provides details like whether the failure resulted from a version or an HMAC error.
Encapsulates a single value stored in a Kinetic drive and the associated metadata.