| // Copyright (c) 2011-present, Facebook, Inc. All rights reserved. |
| // This source code is licensed under both the GPLv2 (found in the |
| // COPYING file in the root directory) and Apache 2.0 License |
| // (found in the LICENSE.Apache file in the root directory). |
| // |
| #pragma once |
| |
| #ifdef FAILED |
| #undef FAILED |
| #endif |
| |
| namespace rocksdb { |
| |
| class LDBCommandExecuteResult { |
| public: |
| enum State { |
| EXEC_NOT_STARTED = 0, EXEC_SUCCEED = 1, EXEC_FAILED = 2, |
| }; |
| |
| LDBCommandExecuteResult() : state_(EXEC_NOT_STARTED), message_("") {} |
| |
| LDBCommandExecuteResult(State state, std::string& msg) : |
| state_(state), message_(msg) {} |
| |
| std::string ToString() { |
| std::string ret; |
| switch (state_) { |
| case EXEC_SUCCEED: |
| break; |
| case EXEC_FAILED: |
| ret.append("Failed: "); |
| break; |
| case EXEC_NOT_STARTED: |
| ret.append("Not started: "); |
| } |
| if (!message_.empty()) { |
| ret.append(message_); |
| } |
| return ret; |
| } |
| |
| void Reset() { |
| state_ = EXEC_NOT_STARTED; |
| message_ = ""; |
| } |
| |
| bool IsSucceed() { |
| return state_ == EXEC_SUCCEED; |
| } |
| |
| bool IsNotStarted() { |
| return state_ == EXEC_NOT_STARTED; |
| } |
| |
| bool IsFailed() { |
| return state_ == EXEC_FAILED; |
| } |
| |
| static LDBCommandExecuteResult Succeed(std::string msg) { |
| return LDBCommandExecuteResult(EXEC_SUCCEED, msg); |
| } |
| |
| static LDBCommandExecuteResult Failed(std::string msg) { |
| return LDBCommandExecuteResult(EXEC_FAILED, msg); |
| } |
| |
| private: |
| State state_; |
| std::string message_; |
| |
| bool operator==(const LDBCommandExecuteResult&); |
| bool operator!=(const LDBCommandExecuteResult&); |
| }; |
| |
| } |