Loading CMakeLists.txt +2 −2 Original line number Diff line number Diff line Loading @@ -52,8 +52,8 @@ set(EXTERNAL_PREFIX "${kinetic_cpp_client_BINARY_DIR}/vendor") include(ExternalProject) set(KINETIC_PROTO_VERSION "2.0.4") set(KINETIC_PROTO_MD5 "3ebdb728273b4919ab00a795ffdc91b3") set(KINETIC_PROTO_VERSION "3.0.0") set(KINETIC_PROTO_MD5 "85ca027b870811a297c1f6d792498934") ExternalProject_add( kinetic-proto Loading README.md +1 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ This repo contains code for producing C and C++ kinetic clients. Protocol Version ================= The client is using version `2.0.4` of the [Kinetic-Protocol](https://github.com/Seagate/kinetic-protocol/releases/tag/2.0.4). The client is using version `3.0.0` of the [Kinetic-Protocol](https://github.com/Seagate/kinetic-protocol). Dependencies Loading include/kinetic/blocking_kinetic_connection.h +49 −64 Original line number Diff line number Diff line Loading @@ -21,77 +21,56 @@ #ifndef KINETIC_CPP_CLIENT_BLOCKING_KINETIC_CONNECTION_H_ #define KINETIC_CPP_CLIENT_BLOCKING_KINETIC_CONNECTION_H_ #include <memory> #include "kinetic/blocking_kinetic_connection_interface.h" #include "kinetic/nonblocking_kinetic_connection.h" #include "kinetic/status.h" #include "kinetic/kinetic_connection.h" #include "kinetic/key_range_iterator.h" #include "kinetic/common.h" namespace kinetic { using std::shared_ptr; using std::unique_ptr; using std::string; using std::vector; class BlockingKineticConnection : public BlockingKineticConnectionInterface { class KeyRangeIterator; class BlockingCallbackState; class BlockingKineticConnection { public: /// Takes ownership of the given NonblockingKineticConnection /// @param[in] nonblocking_connection The underlying connection that will be used /// @param[in] network_timeout_seconds If an operation goes more than network_timeout_seconds /// seconds without receiving data the operation will fail explicit BlockingKineticConnection( shared_ptr<NonblockingKineticConnection> nonblocking_connection, unsigned int network_timeout_seconds); explicit BlockingKineticConnection( unique_ptr<NonblockingKineticConnection> nonblocking_connection, unsigned int network_timeout_seconds); virtual ~BlockingKineticConnection(); ~BlockingKineticConnection(); /// If the drive has a non-zero cluster version, requests will fail unless the developer /// tells the client the correct cluster version using this method. virtual void SetClientClusterVersion(int64_t cluster_version); void SetClientClusterVersion(int64_t cluster_version); virtual KineticStatus NoOp(); KineticStatus NoOp(); virtual KineticStatus Get( KineticStatus Get( const shared_ptr<const string> key, unique_ptr<KineticRecord>& record); virtual KineticStatus Get(const string& key, unique_ptr<KineticRecord>& record); KineticStatus Get(const string& key, unique_ptr<KineticRecord>& record); virtual KineticStatus GetNext( KineticStatus GetNext( const shared_ptr<const string> key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record); virtual KineticStatus GetNext( KineticStatus GetNext( const string& key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record); virtual KineticStatus GetPrevious(const shared_ptr<const string> key, KineticStatus GetPrevious(const shared_ptr<const string> key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record); virtual KineticStatus GetPrevious(const string& key, KineticStatus GetPrevious(const string& key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record); virtual KineticStatus GetVersion(const shared_ptr<const string> key, KineticStatus GetVersion(const shared_ptr<const string> key, unique_ptr<string>& version); virtual KineticStatus GetVersion(const string& key, unique_ptr<string>& version); KineticStatus GetVersion(const string& key, unique_ptr<string>& version); virtual KineticStatus GetKeyRange(const shared_ptr<const string> start_key, KineticStatus GetKeyRange(const shared_ptr<const string> start_key, bool start_key_inclusive, const shared_ptr<const string> end_key, bool end_key_inclusive, Loading @@ -99,7 +78,7 @@ class BlockingKineticConnection { int32_t max_results, unique_ptr<vector<string>>& keys); virtual KineticStatus GetKeyRange(const string& start_key, KineticStatus GetKeyRange(const string& start_key, bool start_key_inclusive, const string& end_key, bool end_key_inclusive, Loading @@ -107,70 +86,76 @@ class BlockingKineticConnection { int32_t max_results, unique_ptr<vector<string>>& keys); virtual KeyRangeIterator IterateKeyRange(const shared_ptr<const string> start_key, KeyRangeIterator IterateKeyRange(const shared_ptr<const string> start_key, bool start_key_inclusive, const shared_ptr<const string> end_key, bool end_key_inclusive, unsigned int frame_size); virtual KeyRangeIterator IterateKeyRange(const string& start_key, KeyRangeIterator IterateKeyRange(const string& start_key, bool start_key_inclusive, const string& end_key, bool end_key_inclusive, unsigned int frame_size); virtual KineticStatus Put(const shared_ptr<const string> key, KineticStatus Put(const shared_ptr<const string> key, const shared_ptr<const string> current_version, WriteMode mode, const shared_ptr<const KineticRecord> record, PersistMode persistMode); virtual KineticStatus Put(const string& key, KineticStatus Put(const string& key, const string& current_version, WriteMode mode, const KineticRecord& record, PersistMode persistMode); virtual KineticStatus Put(const shared_ptr<const string> key, KineticStatus Put(const shared_ptr<const string> key, const shared_ptr<const string> current_version, WriteMode mode, const shared_ptr<const KineticRecord> record); virtual KineticStatus Put(const string& key, KineticStatus Put(const string& key, const string& current_version, WriteMode mode, const KineticRecord& record); virtual KineticStatus Delete(const shared_ptr<const string> key, KineticStatus Delete(const shared_ptr<const string> key, const shared_ptr<const string> version, WriteMode mode, PersistMode persistMode); virtual KineticStatus Delete(const string& key, const string& version, KineticStatus Delete(const string& key, const string& version, WriteMode mode, PersistMode persistMode); virtual KineticStatus Delete(const shared_ptr<const string> key, KineticStatus Delete(const shared_ptr<const string> key, const shared_ptr<const string> version, WriteMode mode); virtual KineticStatus Delete(const string& key, const string& version, WriteMode mode); virtual KineticStatus InstantSecureErase(const shared_ptr<string> pin); KineticStatus Delete(const string& key, const string& version, WriteMode mode); virtual KineticStatus InstantSecureErase(const string& pin); KineticStatus GetLog(unique_ptr<DriveLog>& drive_log); virtual KineticStatus SetClusterVersion(int64_t cluster_version); KineticStatus GetLog(const vector<Command_GetLog_Type>& types, unique_ptr<DriveLog>& drive_log); virtual KineticStatus GetLog(unique_ptr<DriveLog>& drive_log); KineticStatus P2PPush(const P2PPushRequest& push_request, unique_ptr<vector<KineticStatus>>& operation_statuses); virtual KineticStatus UpdateFirmware(const shared_ptr<const string> new_firmware); KineticStatus P2PPush(const shared_ptr<const P2PPushRequest> push_request, unique_ptr<vector<KineticStatus>>& operation_statuses); virtual KineticStatus SetACLs(const shared_ptr<const list<ACL>> acls); KineticStatus SetClusterVersion(int64_t cluster_version); KineticStatus UpdateFirmware(const shared_ptr<const string> new_firmware); KineticStatus SetACLs(const shared_ptr<const list<ACL>> acls); virtual KineticStatus SetPin(const shared_ptr<const string> new_pin, KineticStatus SetErasePIN(const shared_ptr<const string> new_pin, const shared_ptr<const string> current_pin = make_shared<string>()); KineticStatus SetErasePIN(const string& new_pin, const string& current_pin); KineticStatus SetLockPIN(const shared_ptr<const string> new_pin, const shared_ptr<const string> current_pin = make_shared<string>()); KineticStatus SetLockPIN(const string& new_pin, const string& current_pin); KineticStatus InstantErase(const shared_ptr<string> pin); KineticStatus InstantErase(const string& pin); KineticStatus SecureErase(const shared_ptr<string> pin); KineticStatus SecureErase(const string& pin); KineticStatus LockDevice(const shared_ptr<string> pin); KineticStatus LockDevice(const string& pin); KineticStatus UnlockDevice(const shared_ptr<string> pin); KineticStatus UnlockDevice(const string& pin); virtual KineticStatus SetPin(const string& new_pin, const string& current_pin); virtual KineticStatus P2PPush(const P2PPushRequest& push_request, unique_ptr<vector<KineticStatus>>& operation_statuses); virtual KineticStatus P2PPush(const shared_ptr<const P2PPushRequest> push_request, unique_ptr<vector<KineticStatus>>& operation_statuses); private: KineticStatus RunOperation(shared_ptr<BlockingCallbackState> callback, HandlerKey handler_key); Loading @@ -178,7 +163,7 @@ class BlockingKineticConnection { /// Helper method for translating a StatusCode from the drive into an API client KineticStatus /// object KineticStatus GetKineticStatus(StatusCode code); shared_ptr<NonblockingKineticConnection> nonblocking_connection_; unique_ptr<NonblockingKineticConnection> nonblocking_connection_; const unsigned int network_timeout_seconds_; DISALLOW_COPY_AND_ASSIGN(BlockingKineticConnection); }; Loading include/kinetic/blocking_kinetic_connection_interface.h 0 → 100644 +149 −0 Original line number Diff line number Diff line /* * kinetic-cpp-client * Copyright (C) 2014 Seagate Technology. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ #ifndef BLOCKING_KINETIC_CONNECTION_INTERFACE_H_ #define BLOCKING_KINETIC_CONNECTION_INTERFACE_H_ #include "kinetic/status.h" #include "kinetic/kinetic_connection.h" #include "kinetic/key_range_iterator.h" #include "kinetic/common.h" #include "kinetic/nonblocking_kinetic_connection.h" #include <memory> #include <string> #include <vector> namespace kinetic { using std::shared_ptr; using std::unique_ptr; using std::string; using std::vector; class KeyRangeIterator; class BlockingCallbackState; class BlockingKineticConnectionInterface { public: virtual ~BlockingKineticConnectionInterface(){}; virtual void SetClientClusterVersion(int64_t cluster_version) = 0; virtual KineticStatus NoOp() = 0; virtual KineticStatus Get( const shared_ptr<const string> key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus Get(const string& key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus GetNext( const shared_ptr<const string> key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus GetNext( const string& key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus GetPrevious(const shared_ptr<const string> key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus GetPrevious(const string& key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus GetVersion(const shared_ptr<const string> key, unique_ptr<string>& version) = 0; virtual KineticStatus GetVersion(const string& key, unique_ptr<string>& version) = 0; virtual KineticStatus GetKeyRange(const shared_ptr<const string> start_key, bool start_key_inclusive, const shared_ptr<const string> end_key, bool end_key_inclusive, bool reverse_results, int32_t max_results, unique_ptr<vector<string>>& keys) = 0; virtual KineticStatus GetKeyRange(const string& start_key, bool start_key_inclusive, const string& end_key, bool end_key_inclusive, bool reverse_results, int32_t max_results, unique_ptr<vector<string>>& keys) = 0; virtual KeyRangeIterator IterateKeyRange(const shared_ptr<const string> start_key, bool start_key_inclusive, const shared_ptr<const string> end_key, bool end_key_inclusive, unsigned int frame_size) = 0; virtual KeyRangeIterator IterateKeyRange(const string& start_key, bool start_key_inclusive, const string& end_key, bool end_key_inclusive, unsigned int frame_size) = 0; virtual KineticStatus Put(const shared_ptr<const string> key, const shared_ptr<const string> current_version, WriteMode mode, const shared_ptr<const KineticRecord> record, PersistMode persistMode) = 0; virtual KineticStatus Put(const string& key, const string& current_version, WriteMode mode, const KineticRecord& record, PersistMode persistMode) = 0; virtual KineticStatus Put(const shared_ptr<const string> key, const shared_ptr<const string> current_version, WriteMode mode, const shared_ptr<const KineticRecord> record) = 0; virtual KineticStatus Put(const string& key, const string& current_version, WriteMode mode, const KineticRecord& record) = 0; virtual KineticStatus Delete(const shared_ptr<const string> key, const shared_ptr<const string> version, WriteMode mode, PersistMode persistMode) = 0; virtual KineticStatus Delete(const string& key, const string& version, WriteMode mode, PersistMode persistMode) = 0; virtual KineticStatus Delete(const shared_ptr<const string> key, const shared_ptr<const string> version, WriteMode mode) = 0; virtual KineticStatus Delete(const string& key, const string& version, WriteMode mode) = 0; virtual KineticStatus GetLog(unique_ptr<DriveLog>& drive_log) = 0; virtual KineticStatus GetLog(const vector<Command_GetLog_Type>& types, unique_ptr<DriveLog>& drive_log) = 0; virtual KineticStatus P2PPush(const P2PPushRequest& push_request, unique_ptr<vector<KineticStatus>>& operation_statuses) = 0; virtual KineticStatus P2PPush(const shared_ptr<const P2PPushRequest> push_request, unique_ptr<vector<KineticStatus>>& operation_statuses) = 0; virtual KineticStatus SetClusterVersion(int64_t cluster_version) = 0; virtual KineticStatus UpdateFirmware(const shared_ptr<const string> new_firmware) = 0; virtual KineticStatus SetACLs(const shared_ptr<const list<ACL>> acls) = 0; virtual KineticStatus SetErasePIN(const shared_ptr<const string> new_pin, const shared_ptr<const string> current_pin = make_shared<string>()) = 0; virtual KineticStatus SetErasePIN(const string& new_pin, const string& current_pin) = 0; virtual KineticStatus SetLockPIN(const shared_ptr<const string> new_pin, const shared_ptr<const string> current_pin = make_shared<string>()) = 0; virtual KineticStatus SetLockPIN(const string& new_pin, const string& current_pin) = 0; virtual KineticStatus InstantErase(const shared_ptr<string> pin) = 0; virtual KineticStatus InstantErase(const string& pin) = 0; virtual KineticStatus SecureErase(const shared_ptr<string> pin) = 0; virtual KineticStatus SecureErase(const string& pin) = 0; virtual KineticStatus LockDevice(const shared_ptr<string> pin) = 0; virtual KineticStatus LockDevice(const string& pin) = 0; virtual KineticStatus UnlockDevice(const shared_ptr<string> pin) = 0; virtual KineticStatus UnlockDevice(const string& pin) = 0; }; } // namespace kinetic #endif /* BLOCKING_KINETIC_CONNECTION_INTERFACE_H_ */ include/kinetic/key_range_iterator.h +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <string> #include <vector> #include <memory> #include "kinetic/blocking_kinetic_connection.h" Loading Loading
CMakeLists.txt +2 −2 Original line number Diff line number Diff line Loading @@ -52,8 +52,8 @@ set(EXTERNAL_PREFIX "${kinetic_cpp_client_BINARY_DIR}/vendor") include(ExternalProject) set(KINETIC_PROTO_VERSION "2.0.4") set(KINETIC_PROTO_MD5 "3ebdb728273b4919ab00a795ffdc91b3") set(KINETIC_PROTO_VERSION "3.0.0") set(KINETIC_PROTO_MD5 "85ca027b870811a297c1f6d792498934") ExternalProject_add( kinetic-proto Loading
README.md +1 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ This repo contains code for producing C and C++ kinetic clients. Protocol Version ================= The client is using version `2.0.4` of the [Kinetic-Protocol](https://github.com/Seagate/kinetic-protocol/releases/tag/2.0.4). The client is using version `3.0.0` of the [Kinetic-Protocol](https://github.com/Seagate/kinetic-protocol). Dependencies Loading
include/kinetic/blocking_kinetic_connection.h +49 −64 Original line number Diff line number Diff line Loading @@ -21,77 +21,56 @@ #ifndef KINETIC_CPP_CLIENT_BLOCKING_KINETIC_CONNECTION_H_ #define KINETIC_CPP_CLIENT_BLOCKING_KINETIC_CONNECTION_H_ #include <memory> #include "kinetic/blocking_kinetic_connection_interface.h" #include "kinetic/nonblocking_kinetic_connection.h" #include "kinetic/status.h" #include "kinetic/kinetic_connection.h" #include "kinetic/key_range_iterator.h" #include "kinetic/common.h" namespace kinetic { using std::shared_ptr; using std::unique_ptr; using std::string; using std::vector; class BlockingKineticConnection : public BlockingKineticConnectionInterface { class KeyRangeIterator; class BlockingCallbackState; class BlockingKineticConnection { public: /// Takes ownership of the given NonblockingKineticConnection /// @param[in] nonblocking_connection The underlying connection that will be used /// @param[in] network_timeout_seconds If an operation goes more than network_timeout_seconds /// seconds without receiving data the operation will fail explicit BlockingKineticConnection( shared_ptr<NonblockingKineticConnection> nonblocking_connection, unsigned int network_timeout_seconds); explicit BlockingKineticConnection( unique_ptr<NonblockingKineticConnection> nonblocking_connection, unsigned int network_timeout_seconds); virtual ~BlockingKineticConnection(); ~BlockingKineticConnection(); /// If the drive has a non-zero cluster version, requests will fail unless the developer /// tells the client the correct cluster version using this method. virtual void SetClientClusterVersion(int64_t cluster_version); void SetClientClusterVersion(int64_t cluster_version); virtual KineticStatus NoOp(); KineticStatus NoOp(); virtual KineticStatus Get( KineticStatus Get( const shared_ptr<const string> key, unique_ptr<KineticRecord>& record); virtual KineticStatus Get(const string& key, unique_ptr<KineticRecord>& record); KineticStatus Get(const string& key, unique_ptr<KineticRecord>& record); virtual KineticStatus GetNext( KineticStatus GetNext( const shared_ptr<const string> key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record); virtual KineticStatus GetNext( KineticStatus GetNext( const string& key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record); virtual KineticStatus GetPrevious(const shared_ptr<const string> key, KineticStatus GetPrevious(const shared_ptr<const string> key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record); virtual KineticStatus GetPrevious(const string& key, KineticStatus GetPrevious(const string& key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record); virtual KineticStatus GetVersion(const shared_ptr<const string> key, KineticStatus GetVersion(const shared_ptr<const string> key, unique_ptr<string>& version); virtual KineticStatus GetVersion(const string& key, unique_ptr<string>& version); KineticStatus GetVersion(const string& key, unique_ptr<string>& version); virtual KineticStatus GetKeyRange(const shared_ptr<const string> start_key, KineticStatus GetKeyRange(const shared_ptr<const string> start_key, bool start_key_inclusive, const shared_ptr<const string> end_key, bool end_key_inclusive, Loading @@ -99,7 +78,7 @@ class BlockingKineticConnection { int32_t max_results, unique_ptr<vector<string>>& keys); virtual KineticStatus GetKeyRange(const string& start_key, KineticStatus GetKeyRange(const string& start_key, bool start_key_inclusive, const string& end_key, bool end_key_inclusive, Loading @@ -107,70 +86,76 @@ class BlockingKineticConnection { int32_t max_results, unique_ptr<vector<string>>& keys); virtual KeyRangeIterator IterateKeyRange(const shared_ptr<const string> start_key, KeyRangeIterator IterateKeyRange(const shared_ptr<const string> start_key, bool start_key_inclusive, const shared_ptr<const string> end_key, bool end_key_inclusive, unsigned int frame_size); virtual KeyRangeIterator IterateKeyRange(const string& start_key, KeyRangeIterator IterateKeyRange(const string& start_key, bool start_key_inclusive, const string& end_key, bool end_key_inclusive, unsigned int frame_size); virtual KineticStatus Put(const shared_ptr<const string> key, KineticStatus Put(const shared_ptr<const string> key, const shared_ptr<const string> current_version, WriteMode mode, const shared_ptr<const KineticRecord> record, PersistMode persistMode); virtual KineticStatus Put(const string& key, KineticStatus Put(const string& key, const string& current_version, WriteMode mode, const KineticRecord& record, PersistMode persistMode); virtual KineticStatus Put(const shared_ptr<const string> key, KineticStatus Put(const shared_ptr<const string> key, const shared_ptr<const string> current_version, WriteMode mode, const shared_ptr<const KineticRecord> record); virtual KineticStatus Put(const string& key, KineticStatus Put(const string& key, const string& current_version, WriteMode mode, const KineticRecord& record); virtual KineticStatus Delete(const shared_ptr<const string> key, KineticStatus Delete(const shared_ptr<const string> key, const shared_ptr<const string> version, WriteMode mode, PersistMode persistMode); virtual KineticStatus Delete(const string& key, const string& version, KineticStatus Delete(const string& key, const string& version, WriteMode mode, PersistMode persistMode); virtual KineticStatus Delete(const shared_ptr<const string> key, KineticStatus Delete(const shared_ptr<const string> key, const shared_ptr<const string> version, WriteMode mode); virtual KineticStatus Delete(const string& key, const string& version, WriteMode mode); virtual KineticStatus InstantSecureErase(const shared_ptr<string> pin); KineticStatus Delete(const string& key, const string& version, WriteMode mode); virtual KineticStatus InstantSecureErase(const string& pin); KineticStatus GetLog(unique_ptr<DriveLog>& drive_log); virtual KineticStatus SetClusterVersion(int64_t cluster_version); KineticStatus GetLog(const vector<Command_GetLog_Type>& types, unique_ptr<DriveLog>& drive_log); virtual KineticStatus GetLog(unique_ptr<DriveLog>& drive_log); KineticStatus P2PPush(const P2PPushRequest& push_request, unique_ptr<vector<KineticStatus>>& operation_statuses); virtual KineticStatus UpdateFirmware(const shared_ptr<const string> new_firmware); KineticStatus P2PPush(const shared_ptr<const P2PPushRequest> push_request, unique_ptr<vector<KineticStatus>>& operation_statuses); virtual KineticStatus SetACLs(const shared_ptr<const list<ACL>> acls); KineticStatus SetClusterVersion(int64_t cluster_version); KineticStatus UpdateFirmware(const shared_ptr<const string> new_firmware); KineticStatus SetACLs(const shared_ptr<const list<ACL>> acls); virtual KineticStatus SetPin(const shared_ptr<const string> new_pin, KineticStatus SetErasePIN(const shared_ptr<const string> new_pin, const shared_ptr<const string> current_pin = make_shared<string>()); KineticStatus SetErasePIN(const string& new_pin, const string& current_pin); KineticStatus SetLockPIN(const shared_ptr<const string> new_pin, const shared_ptr<const string> current_pin = make_shared<string>()); KineticStatus SetLockPIN(const string& new_pin, const string& current_pin); KineticStatus InstantErase(const shared_ptr<string> pin); KineticStatus InstantErase(const string& pin); KineticStatus SecureErase(const shared_ptr<string> pin); KineticStatus SecureErase(const string& pin); KineticStatus LockDevice(const shared_ptr<string> pin); KineticStatus LockDevice(const string& pin); KineticStatus UnlockDevice(const shared_ptr<string> pin); KineticStatus UnlockDevice(const string& pin); virtual KineticStatus SetPin(const string& new_pin, const string& current_pin); virtual KineticStatus P2PPush(const P2PPushRequest& push_request, unique_ptr<vector<KineticStatus>>& operation_statuses); virtual KineticStatus P2PPush(const shared_ptr<const P2PPushRequest> push_request, unique_ptr<vector<KineticStatus>>& operation_statuses); private: KineticStatus RunOperation(shared_ptr<BlockingCallbackState> callback, HandlerKey handler_key); Loading @@ -178,7 +163,7 @@ class BlockingKineticConnection { /// Helper method for translating a StatusCode from the drive into an API client KineticStatus /// object KineticStatus GetKineticStatus(StatusCode code); shared_ptr<NonblockingKineticConnection> nonblocking_connection_; unique_ptr<NonblockingKineticConnection> nonblocking_connection_; const unsigned int network_timeout_seconds_; DISALLOW_COPY_AND_ASSIGN(BlockingKineticConnection); }; Loading
include/kinetic/blocking_kinetic_connection_interface.h 0 → 100644 +149 −0 Original line number Diff line number Diff line /* * kinetic-cpp-client * Copyright (C) 2014 Seagate Technology. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ #ifndef BLOCKING_KINETIC_CONNECTION_INTERFACE_H_ #define BLOCKING_KINETIC_CONNECTION_INTERFACE_H_ #include "kinetic/status.h" #include "kinetic/kinetic_connection.h" #include "kinetic/key_range_iterator.h" #include "kinetic/common.h" #include "kinetic/nonblocking_kinetic_connection.h" #include <memory> #include <string> #include <vector> namespace kinetic { using std::shared_ptr; using std::unique_ptr; using std::string; using std::vector; class KeyRangeIterator; class BlockingCallbackState; class BlockingKineticConnectionInterface { public: virtual ~BlockingKineticConnectionInterface(){}; virtual void SetClientClusterVersion(int64_t cluster_version) = 0; virtual KineticStatus NoOp() = 0; virtual KineticStatus Get( const shared_ptr<const string> key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus Get(const string& key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus GetNext( const shared_ptr<const string> key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus GetNext( const string& key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus GetPrevious(const shared_ptr<const string> key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus GetPrevious(const string& key, unique_ptr<string>& actual_key, unique_ptr<KineticRecord>& record) = 0; virtual KineticStatus GetVersion(const shared_ptr<const string> key, unique_ptr<string>& version) = 0; virtual KineticStatus GetVersion(const string& key, unique_ptr<string>& version) = 0; virtual KineticStatus GetKeyRange(const shared_ptr<const string> start_key, bool start_key_inclusive, const shared_ptr<const string> end_key, bool end_key_inclusive, bool reverse_results, int32_t max_results, unique_ptr<vector<string>>& keys) = 0; virtual KineticStatus GetKeyRange(const string& start_key, bool start_key_inclusive, const string& end_key, bool end_key_inclusive, bool reverse_results, int32_t max_results, unique_ptr<vector<string>>& keys) = 0; virtual KeyRangeIterator IterateKeyRange(const shared_ptr<const string> start_key, bool start_key_inclusive, const shared_ptr<const string> end_key, bool end_key_inclusive, unsigned int frame_size) = 0; virtual KeyRangeIterator IterateKeyRange(const string& start_key, bool start_key_inclusive, const string& end_key, bool end_key_inclusive, unsigned int frame_size) = 0; virtual KineticStatus Put(const shared_ptr<const string> key, const shared_ptr<const string> current_version, WriteMode mode, const shared_ptr<const KineticRecord> record, PersistMode persistMode) = 0; virtual KineticStatus Put(const string& key, const string& current_version, WriteMode mode, const KineticRecord& record, PersistMode persistMode) = 0; virtual KineticStatus Put(const shared_ptr<const string> key, const shared_ptr<const string> current_version, WriteMode mode, const shared_ptr<const KineticRecord> record) = 0; virtual KineticStatus Put(const string& key, const string& current_version, WriteMode mode, const KineticRecord& record) = 0; virtual KineticStatus Delete(const shared_ptr<const string> key, const shared_ptr<const string> version, WriteMode mode, PersistMode persistMode) = 0; virtual KineticStatus Delete(const string& key, const string& version, WriteMode mode, PersistMode persistMode) = 0; virtual KineticStatus Delete(const shared_ptr<const string> key, const shared_ptr<const string> version, WriteMode mode) = 0; virtual KineticStatus Delete(const string& key, const string& version, WriteMode mode) = 0; virtual KineticStatus GetLog(unique_ptr<DriveLog>& drive_log) = 0; virtual KineticStatus GetLog(const vector<Command_GetLog_Type>& types, unique_ptr<DriveLog>& drive_log) = 0; virtual KineticStatus P2PPush(const P2PPushRequest& push_request, unique_ptr<vector<KineticStatus>>& operation_statuses) = 0; virtual KineticStatus P2PPush(const shared_ptr<const P2PPushRequest> push_request, unique_ptr<vector<KineticStatus>>& operation_statuses) = 0; virtual KineticStatus SetClusterVersion(int64_t cluster_version) = 0; virtual KineticStatus UpdateFirmware(const shared_ptr<const string> new_firmware) = 0; virtual KineticStatus SetACLs(const shared_ptr<const list<ACL>> acls) = 0; virtual KineticStatus SetErasePIN(const shared_ptr<const string> new_pin, const shared_ptr<const string> current_pin = make_shared<string>()) = 0; virtual KineticStatus SetErasePIN(const string& new_pin, const string& current_pin) = 0; virtual KineticStatus SetLockPIN(const shared_ptr<const string> new_pin, const shared_ptr<const string> current_pin = make_shared<string>()) = 0; virtual KineticStatus SetLockPIN(const string& new_pin, const string& current_pin) = 0; virtual KineticStatus InstantErase(const shared_ptr<string> pin) = 0; virtual KineticStatus InstantErase(const string& pin) = 0; virtual KineticStatus SecureErase(const shared_ptr<string> pin) = 0; virtual KineticStatus SecureErase(const string& pin) = 0; virtual KineticStatus LockDevice(const shared_ptr<string> pin) = 0; virtual KineticStatus LockDevice(const string& pin) = 0; virtual KineticStatus UnlockDevice(const shared_ptr<string> pin) = 0; virtual KineticStatus UnlockDevice(const string& pin) = 0; }; } // namespace kinetic #endif /* BLOCKING_KINETIC_CONNECTION_INTERFACE_H_ */
include/kinetic/key_range_iterator.h +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <string> #include <vector> #include <memory> #include "kinetic/blocking_kinetic_connection.h" Loading