bda8d93ba9
Summary: It's always annoying to find a header does not include its own dependencies and only works when included after other includes. This change adds `make check-headers` which validates that each header can be included at the top of a file. Some headers are excluded e.g. because of platform or external dependencies. rocksdb_namespace.h had to be re-worked slightly to enable checking for failure to include it. (ROCKSDB_NAMESPACE is a valid namespace name.) Fixes mostly involve adding and cleaning up #includes, but for FileTraceWriter, a constructor was out-of-lined to make a forward declaration sufficient. This check is not currently run with `make check` but is added to CircleCI build-linux-unity since that one is already relatively fast. Pull Request resolved: https://github.com/facebook/rocksdb/pull/8893 Test Plan: existing tests and resolving issues detected by new check Reviewed By: mrambacher Differential Revision: D30823300 Pulled By: pdillinger fbshipit-source-id: 9fff223944994c83c105e2e6496d24845dc8e572
76 lines
1.7 KiB
C++
76 lines
1.7 KiB
C++
// 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
|
|
|
|
#include <string>
|
|
|
|
#include "rocksdb/rocksdb_namespace.h"
|
|
|
|
#ifdef FAILED
|
|
#undef FAILED
|
|
#endif
|
|
|
|
namespace ROCKSDB_NAMESPACE {
|
|
|
|
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&);
|
|
};
|
|
|
|
} // namespace ROCKSDB_NAMESPACE
|