Commit c3a8534d authored by Andrew Mitchell's avatar Andrew Mitchell
Browse files

Added persistMode to threadsafe clients put methods

parent a5e2c99a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -120,6 +120,16 @@ class BlockingKineticConnection {
            bool end_key_inclusive,
            unsigned int frame_size);

    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);

    virtual 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,
            const shared_ptr<const string> current_version, WriteMode mode,
            const shared_ptr<const KineticRecord> record);
+2 −1
Original line number Diff line number Diff line
@@ -92,7 +92,8 @@ class ThreadsafeBlockingKineticConnection : public BlockingKineticConnection {

    KineticStatus Put(const shared_ptr<const string> key,
            const shared_ptr<const string> current_version, WriteMode mode,
            const shared_ptr<const KineticRecord> record);
            const shared_ptr<const KineticRecord> record,
            PersistMode persistMode);

    KineticStatus Delete(const shared_ptr<const string> key,
            const shared_ptr<const string> version, WriteMode mode);
+2 −1
Original line number Diff line number Diff line
@@ -70,7 +70,8 @@ class ThreadsafeNonblockingKineticConnection : public NonblockingKineticConnecti
    HandlerKey Put(const shared_ptr<const string> key,
        const shared_ptr<const string> current_version, WriteMode mode,
        const shared_ptr<const KineticRecord> record,
        const shared_ptr<PutCallbackInterface> callback);
        const shared_ptr<PutCallbackInterface> callback,
        PersistMode persistMode);
    HandlerKey Delete(const shared_ptr<const string> key, const shared_ptr<const string> version,
        WriteMode mode, const shared_ptr<SimpleCallbackInterface> callback);
    HandlerKey InstantSecureErase(const shared_ptr<string> pin,
+19 −0
Original line number Diff line number Diff line
@@ -194,11 +194,30 @@ class BlockingPutCallback : public PutCallbackInterface, public BlockingCallback
    private:
};

KineticStatus BlockingKineticConnection::Put(const shared_ptr<const string> key,
        const shared_ptr<const string> current_version, WriteMode mode,
        const shared_ptr<const KineticRecord> record,
        PersistMode persistMode) {
    auto handler = make_shared<BlockingPutCallback>();

    return RunOperation(handler,
            nonblocking_connection_->Put(key, current_version, mode, record, handler, persistMode));
}

KineticStatus BlockingKineticConnection::Put(const string& key,
        const string& current_version, WriteMode mode,
        const KineticRecord& record,
        PersistMode persistMode) {
    return this->Put(make_shared<string>(key), make_shared<string>(current_version), mode,
        make_shared<KineticRecord>(record), persistMode);
}

KineticStatus BlockingKineticConnection::Put(const shared_ptr<const string> key,
        const shared_ptr<const string> current_version, WriteMode mode,
        const shared_ptr<const KineticRecord> record) {
    auto handler = make_shared<BlockingPutCallback>();

    // Rely on nonblocking_connection to handle the default PersistMode case
    return RunOperation(handler,
            nonblocking_connection_->Put(key, current_version, mode, record, handler));
}
+3 −2
Original line number Diff line number Diff line
@@ -56,9 +56,10 @@ KineticStatus ThreadsafeBlockingKineticConnection::Get(const shared_ptr<const st

KineticStatus ThreadsafeBlockingKineticConnection::Put(const shared_ptr<const string> key,
        const shared_ptr<const string> current_version, WriteMode mode,
        const shared_ptr<const KineticRecord> record) {
        const shared_ptr<const KineticRecord> record,
        PersistMode persistMode) {
    std::lock_guard<std::mutex> guard(mutex_);
    return BlockingKineticConnection::Put(key, current_version, mode, record);
    return BlockingKineticConnection::Put(key, current_version, mode, record, persistMode);
}

KineticStatus ThreadsafeBlockingKineticConnection::Delete(const shared_ptr<const string> key,
Loading