Commit 8f08c6ef authored by Andrew Mitchell's avatar Andrew Mitchell
Browse files

Added (potentially nullptr) message response to error handler so the p2p push callback can have it

parent 72db2cd1
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ class SimpleHandler : public HandlerInterface {
    public:
    explicit SimpleHandler(const shared_ptr<SimpleCallbackInterface> callback);
    void Handle(const Message &response, unique_ptr<const string> value);
    void Error(KineticStatus error);
    void Error(KineticStatus error, Message const * const response = nullptr);

    private:
    const shared_ptr<SimpleCallbackInterface> callback_;
@@ -83,7 +83,7 @@ class GetHandler : public HandlerInterface {
    public:
    explicit GetHandler(const shared_ptr<GetCallbackInterface> callback);
    void Handle(const Message &response, unique_ptr<const string> value);
    void Error(KineticStatus error);
    void Error(KineticStatus error, Message const * const response = nullptr);

    private:
    const shared_ptr<GetCallbackInterface> callback_;
@@ -101,7 +101,7 @@ class GetVersionHandler : public HandlerInterface {
    public:
    explicit GetVersionHandler(const shared_ptr<GetVersionCallbackInterface> callback);
    void Handle(const Message &response, unique_ptr<const string> value);
    void Error(KineticStatus error);
    void Error(KineticStatus error, Message const * const response = nullptr);

    private:
    const shared_ptr<GetVersionCallbackInterface> callback_;
@@ -119,7 +119,7 @@ class GetKeyRangeHandler : public HandlerInterface {
    public:
    explicit GetKeyRangeHandler(const shared_ptr<GetKeyRangeCallbackInterface> callback);
    void Handle(const Message &response, unique_ptr<const string> value);
    void Error(KineticStatus error);
    void Error(KineticStatus error, Message const * const response = nullptr);

    private:
    const shared_ptr<GetKeyRangeCallbackInterface>  callback_;
@@ -138,7 +138,7 @@ class PutHandler : public HandlerInterface {
    public:
    explicit PutHandler(const shared_ptr<PutCallbackInterface> callback);
    void Handle(const Message &response, unique_ptr<const string> value);
    void Error(KineticStatus error);
    void Error(KineticStatus error, Message const * const response = nullptr);

    private:
    const shared_ptr<PutCallbackInterface> callback_;
@@ -156,7 +156,7 @@ class GetLogHandler : public HandlerInterface {
    public:
    explicit GetLogHandler(const shared_ptr<GetLogCallbackInterface> callback);
    void Handle(const Message& response, unique_ptr<const string> value);
    void Error(KineticStatus error);
    void Error(KineticStatus error, Message const * const response = nullptr);

    private:
    const shared_ptr<GetLogCallbackInterface> callback_;
@@ -167,14 +167,14 @@ class P2PPushCallbackInterface {
    public:
    virtual ~P2PPushCallbackInterface() {}
    virtual void Success(unique_ptr<vector<KineticStatus>> operation_statuses) = 0;
    virtual void Failure(KineticStatus error) = 0;
    virtual void Failure(KineticStatus error, Message const * const response) = 0;
};

class P2PPushHandler : public HandlerInterface {
    public:
    explicit P2PPushHandler(const shared_ptr<P2PPushCallbackInterface> callback);
    void Handle(const Message& response, unique_ptr<const string> value);
    void Error(KineticStatus error);
    void Error(KineticStatus error, Message const * const response = nullptr);

    private:
    const shared_ptr<P2PPushCallbackInterface> callback_;
+1 −1
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ class HandlerInterface {

    // response is re-used, so make sure to copy everything you need out of it
    virtual void Handle(const Message &response, unique_ptr<const string> value) = 0;
    virtual void Error(KineticStatus error) = 0;
    virtual void Error(KineticStatus error, Message const * const response = nullptr) = 0;
};

class NonblockingPacketServiceInterface {
+1 −1
Original line number Diff line number Diff line
@@ -417,7 +417,7 @@ class BlockingP2PPushCallback : public P2PPushCallbackInterface, public Blocking
        OnSuccess();
        statuses_ = std::move(statuses);
    }
    virtual void Failure(KineticStatus error) {
    virtual void Failure(KineticStatus error, Message const * const response) {
        OnError(error);
    }

+8 −8
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ void GetHandler::Handle(const Message &response, unique_ptr<const string> value)
    callback_->Success(response.command().body().keyvalue().key(), move(record));
}

void GetHandler::Error(KineticStatus error) {
void GetHandler::Error(KineticStatus error, Message const * const response) {
    callback_->Failure(error);
}

@@ -87,7 +87,7 @@ void GetVersionHandler::Handle(const Message &response, unique_ptr<const string>
    callback_->Success(response.command().body().keyvalue().dbversion());
}

void GetVersionHandler::Error(KineticStatus error) {
void GetVersionHandler::Error(KineticStatus error, Message const * const response) {
    callback_->Failure(error);
}

@@ -109,7 +109,7 @@ void GetKeyRangeHandler::Handle(const Message &response, unique_ptr<const string
    callback_->Success(move(keys));
}

void GetKeyRangeHandler::Error(KineticStatus error) {
void GetKeyRangeHandler::Error(KineticStatus error, Message const * const response) {
    callback_->Failure(error);
}

@@ -120,7 +120,7 @@ void PutHandler::Handle(const Message &response, unique_ptr<const string> value)
    callback_->Success();
}

void PutHandler::Error(KineticStatus error) {
void PutHandler::Error(KineticStatus error, Message const * const response) {
    callback_->Failure(error);
}

@@ -131,7 +131,7 @@ void SimpleHandler::Handle(const Message &response, unique_ptr<const string> val
    callback_->Success();
}

void SimpleHandler::Error(KineticStatus error) {
void SimpleHandler::Error(KineticStatus error, Message const * const response) {
    callback_->Failure(error);
}

@@ -197,7 +197,7 @@ void GetLogHandler::Handle(const Message& response, unique_ptr<const string> val
    callback_->Success(move(drive_log));
}

void GetLogHandler::Error(KineticStatus error) {
void GetLogHandler::Error(KineticStatus error, Message const * const response) {
    callback_->Failure(error);
}

@@ -220,8 +220,8 @@ void P2PPushHandler::Handle(const Message& response, unique_ptr<const string> va
    callback_->Success(move(statuses));
}

void P2PPushHandler::Error(KineticStatus error) {
    callback_->Failure(error);
void P2PPushHandler::Error(KineticStatus error, Message const * const response) {
    callback_->Failure(error, response);
}

NonblockingKineticConnection::NonblockingKineticConnection(
+2 −1
Original line number Diff line number Diff line
@@ -170,7 +170,8 @@ NonblockingPacketServiceStatus NonblockingReceiver::Receive() {
            handler_->Handle(response_, move(value_));
        } else {
            handler_->Error(GetKineticStatus(ConvertFromProtoStatus(
                    response_.command().status().code()), response_.command().header().clusterversion()));
                    response_.command().status().code()), response_.command().header().clusterversion()),
                    &response_);
        }

        handler_.reset();
Loading