Index: mojo/public/cpp/bindings/lib/validation_errors.h |
diff --git a/mojo/public/cpp/bindings/lib/validation_errors.h b/mojo/public/cpp/bindings/lib/validation_errors.h |
deleted file mode 100644 |
index da8fa3f67b99fe29167412de5504ff220a989423..0000000000000000000000000000000000000000 |
--- a/mojo/public/cpp/bindings/lib/validation_errors.h |
+++ /dev/null |
@@ -1,128 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_VALIDATION_ERRORS_H_ |
-#define MOJO_PUBLIC_CPP_BINDINGS_LIB_VALIDATION_ERRORS_H_ |
- |
-#include <sstream> |
-#include <string> |
- |
-#include "mojo/public/cpp/environment/logging.h" |
-#include "mojo/public/cpp/system/macros.h" |
- |
-namespace mojo { |
-namespace internal { |
- |
-enum class ValidationError { |
- // There is no validation error. |
- NONE, |
- // An object (struct or array) is not 8-byte aligned. |
- MISALIGNED_OBJECT, |
- // An object is not contained inside the message data, or it overlaps other |
- // objects. |
- ILLEGAL_MEMORY_RANGE, |
- // A struct header doesn't make sense, for example: |
- // - |num_bytes| is smaller than the size of the struct header. |
- // - |num_bytes| and |version| don't match. |
- // TODO(yzshen): Consider splitting it into two different error codes. Because |
- // the former indicates someone is misbehaving badly whereas the latter could |
- // be due to an inappropriately-modified .mojom file. |
- UNEXPECTED_STRUCT_HEADER, |
- // An array header doesn't make sense, for example: |
- // - |num_bytes| is smaller than the size of the header plus the size required |
- // to store |num_elements| elements. |
- // - For fixed-size arrays, |num_elements| is different than the specified |
- // size. |
- UNEXPECTED_ARRAY_HEADER, |
- // An encoded handle is illegal. |
- ILLEGAL_HANDLE, |
- // A non-nullable handle field is set to invalid handle. |
- UNEXPECTED_INVALID_HANDLE, |
- // An encoded pointer is illegal. |
- ILLEGAL_POINTER, |
- // A non-nullable pointer field is set to null. |
- UNEXPECTED_NULL_POINTER, |
- // |flags| in the message header is invalid. The flags are either |
- // inconsistent with one another, inconsistent with other parts of the |
- // message, or unexpected for the message receiver. For example the |
- // receiver is expecting a request message but the flags indicate that |
- // the message is a response message. |
- MESSAGE_HEADER_INVALID_FLAGS, |
- // |flags| in the message header indicates that a request ID is required but |
- // there isn't one. |
- MESSAGE_HEADER_MISSING_REQUEST_ID, |
- // The |name| field in a message header contains an unexpected value. |
- MESSAGE_HEADER_UNKNOWN_METHOD, |
- // Two parallel arrays which are supposed to represent a map have different |
- // lengths. |
- DIFFERENT_SIZED_ARRAYS_IN_MAP, |
- // A non-nullable union is set to null. (Has size 0) |
- UNEXPECTED_NULL_UNION, |
-}; |
- |
-const char* ValidationErrorToString(ValidationError error); |
- |
-// TODO(vardhan): This can die, along with |ValidationErrorObserverForTesting|. |
-void ReportValidationError(ValidationError error, |
- std::string* description = nullptr); |
- |
-// Only used by validation tests and when there is only one thread doing message |
-// validation. |
-class ValidationErrorObserverForTesting { |
- public: |
- ValidationErrorObserverForTesting(); |
- ~ValidationErrorObserverForTesting(); |
- |
- ValidationError last_error() const { return last_error_; } |
- void set_last_error(ValidationError error) { last_error_ = error; } |
- |
- private: |
- ValidationError last_error_; |
- |
- MOJO_DISALLOW_COPY_AND_ASSIGN(ValidationErrorObserverForTesting); |
-}; |
- |
-// This takes in a string pointer, and provides a string stream which you can |
-// write to. On destruction, it sets the provided string to the contents of the |
-// string stream. |
-class ValidationErrorStringStream { |
- public: |
- explicit ValidationErrorStringStream(std::string* err_msg); |
- ~ValidationErrorStringStream(); |
- std::ostringstream& stream() { return stream_; } |
- |
- private: |
- std::string* err_msg_; |
- std::ostringstream stream_; |
- |
- MOJO_DISALLOW_COPY_AND_ASSIGN(ValidationErrorStringStream); |
-}; |
- |
-} // namespace internal |
-} // namespace mojo |
- |
-// In a debug build, logs a serialization warning. |
-// TODO(vardhan): Make this work like an ostream. |
-#define MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(error, description) \ |
- MOJO_DLOG(WARNING) << "The outgoing message will trigger " \ |
- << ValidationErrorToString(error) \ |
- << " at the receiving side (" << description << ")." |
- |
-// In a debug build, this will use |ValidationErrorStringStream::stream()| and |
-// write to the supplied string if it is not null. In a non-debug + optimized |
-// build it should do nothing, while also discarding away operator<<() calls. |
-#ifdef NDEBUG |
-// The compiler will reduce the |true ? (void)0 : ...| expression to |(void)0|, |
-// thereby discarding the |ValidationErrorStringStream()| while still keeping |
-// this macro's use semantically valid. |
-#define MOJO_INTERNAL_DEBUG_SET_ERROR_MSG(err_msg) \ |
- true ? (void)0 \ |
- : ::mojo::internal::VoidifyOstream() & \ |
- ::mojo::internal::ValidationErrorStringStream(err_msg).stream() |
-#else |
-#define MOJO_INTERNAL_DEBUG_SET_ERROR_MSG(err_msg) \ |
- ::mojo::internal::ValidationErrorStringStream(err_msg).stream() |
-#endif // NDEBUG |
- |
-#endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_VALIDATION_ERRORS_H_ |