summaryrefslogtreecommitdiff
path: root/src/mongo/base/status.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/base/status.h')
-rw-r--r--src/mongo/base/status.h180
1 files changed, 90 insertions, 90 deletions
diff --git a/src/mongo/base/status.h b/src/mongo/base/status.h
index 3597da98129..51581a7248e 100644
--- a/src/mongo/base/status.h
+++ b/src/mongo/base/status.h
@@ -36,122 +36,122 @@
namespace mongo {
+/**
+ * Status represents an error state or the absence thereof.
+ *
+ * A Status uses the standardized error codes -- from file 'error_codes.h' -- to
+ * determine an error's cause. It further clarifies the error with a textual
+ * description. Optionally, a Status may also have an error location number, which
+ * should be a unique, grep-able point in the code base (including assert numbers).
+ *
+ * Example usage:
+ *
+ * Status sumAB(int a, int b, int* c) {
+ * if (overflowIfSum(a,b)) {
+ * return Status(ErrorCodes::ERROR_OVERFLOW, "overflow in sumAB", 16494);
+ * }
+ *
+ * *c = a+b;
+ * return Status::OK();
+ * }
+ *
+ * TODO: expand base/error_codes.h to capture common errors in current code
+ * TODO: generate base/error_codes.h out of a description file
+ * TODO: check 'location' duplicates against assert numbers
+ */
+class Status {
+public:
+ // Short-hand for returning an OK status.
+ static inline Status OK();
+
/**
- * Status represents an error state or the absence thereof.
- *
- * A Status uses the standardized error codes -- from file 'error_codes.h' -- to
- * determine an error's cause. It further clarifies the error with a textual
- * description. Optionally, a Status may also have an error location number, which
- * should be a unique, grep-able point in the code base (including assert numbers).
- *
- * Example usage:
- *
- * Status sumAB(int a, int b, int* c) {
- * if (overflowIfSum(a,b)) {
- * return Status(ErrorCodes::ERROR_OVERFLOW, "overflow in sumAB", 16494);
- * }
- *
- * *c = a+b;
- * return Status::OK();
- * }
- *
- * TODO: expand base/error_codes.h to capture common errors in current code
- * TODO: generate base/error_codes.h out of a description file
- * TODO: check 'location' duplicates against assert numbers
+ * Builds an error status given the error code, a textual description of what
+ * caused the error, and a unique position in the where the error occurred
+ * (similar to an assert number)
*/
- class Status {
- public:
- // Short-hand for returning an OK status.
- static inline Status OK();
-
- /**
- * Builds an error status given the error code, a textual description of what
- * caused the error, and a unique position in the where the error occurred
- * (similar to an assert number)
- */
- Status(ErrorCodes::Error code, std::string reason, int location = 0);
+ Status(ErrorCodes::Error code, std::string reason, int location = 0);
- inline Status(const Status& other);
- inline Status& operator=(const Status& other);
+ inline Status(const Status& other);
+ inline Status& operator=(const Status& other);
- inline Status(Status&& other) BOOST_NOEXCEPT;
- inline Status& operator=(Status&& other) BOOST_NOEXCEPT;
+ inline Status(Status&& other) BOOST_NOEXCEPT;
+ inline Status& operator=(Status&& other) BOOST_NOEXCEPT;
- inline ~Status();
+ inline ~Status();
- /**
- * Returns true if 'other's error code and location are equal/different to this
- * instance's. Otherwise returns false.
- */
- bool compare(const Status& other) const;
- bool operator==(const Status& other) const;
- bool operator!=(const Status& other) const;
+ /**
+ * Returns true if 'other's error code and location are equal/different to this
+ * instance's. Otherwise returns false.
+ */
+ bool compare(const Status& other) const;
+ bool operator==(const Status& other) const;
+ bool operator!=(const Status& other) const;
- /**
- * Returns true if 'other's error code is equal/different to this instance's.
- * Otherwise returns false.
- */
- bool compareCode(const ErrorCodes::Error other) const;
- bool operator==(const ErrorCodes::Error other) const;
- bool operator!=(const ErrorCodes::Error other) const;
+ /**
+ * Returns true if 'other's error code is equal/different to this instance's.
+ * Otherwise returns false.
+ */
+ bool compareCode(const ErrorCodes::Error other) const;
+ bool operator==(const ErrorCodes::Error other) const;
+ bool operator!=(const ErrorCodes::Error other) const;
- //
- // accessors
- //
+ //
+ // accessors
+ //
- inline bool isOK() const;
+ inline bool isOK() const;
- inline ErrorCodes::Error code() const;
+ inline ErrorCodes::Error code() const;
- inline std::string codeString() const;
+ inline std::string codeString() const;
- inline std::string reason() const;
+ inline std::string reason() const;
- inline int location() const;
+ inline int location() const;
- std::string toString() const;
+ std::string toString() const;
- //
- // Below interface used for testing code only.
- //
+ //
+ // Below interface used for testing code only.
+ //
- inline AtomicUInt32::WordType refCount() const;
+ inline AtomicUInt32::WordType refCount() const;
- private:
- inline Status();
+private:
+ inline Status();
- struct ErrorInfo {
- AtomicUInt32 refs; // reference counter
- const ErrorCodes::Error code; // error code
- const std::string reason; // description of error cause
- const int location; // unique location of the triggering line in the code
+ struct ErrorInfo {
+ AtomicUInt32 refs; // reference counter
+ const ErrorCodes::Error code; // error code
+ const std::string reason; // description of error cause
+ const int location; // unique location of the triggering line in the code
- static ErrorInfo* create(ErrorCodes::Error code, std::string reason, int location);
+ static ErrorInfo* create(ErrorCodes::Error code, std::string reason, int location);
- ErrorInfo(ErrorCodes::Error code, std::string reason, int location);
- };
+ ErrorInfo(ErrorCodes::Error code, std::string reason, int location);
+ };
- ErrorInfo* _error;
+ ErrorInfo* _error;
- /**
- * Increment/Decrement the reference counter inside an ErrorInfo
- *
- * @param error ErrorInfo to be incremented
- */
- static inline void ref(ErrorInfo* error);
- static inline void unref(ErrorInfo* error);
- };
+ /**
+ * Increment/Decrement the reference counter inside an ErrorInfo
+ *
+ * @param error ErrorInfo to be incremented
+ */
+ static inline void ref(ErrorInfo* error);
+ static inline void unref(ErrorInfo* error);
+};
- inline bool operator==(const ErrorCodes::Error lhs, const Status& rhs);
+inline bool operator==(const ErrorCodes::Error lhs, const Status& rhs);
- inline bool operator!=(const ErrorCodes::Error lhs, const Status& rhs);
+inline bool operator!=(const ErrorCodes::Error lhs, const Status& rhs);
- //
- // Convenience method for unittest code. Please use accessors otherwise.
- //
+//
+// Convenience method for unittest code. Please use accessors otherwise.
+//
- std::ostream& operator<<(std::ostream& os, const Status& status);
- std::ostream& operator<<(std::ostream& os, ErrorCodes::Error);
+std::ostream& operator<<(std::ostream& os, const Status& status);
+std::ostream& operator<<(std::ostream& os, ErrorCodes::Error);
} // namespace mongo