1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_HEADER_VALIDATOR_H_ 6#define MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_HEADER_VALIDATOR_H_ 7 8#include "base/compiler_specific.h" 9#include "mojo/public/cpp/bindings/bindings_export.h" 10#include "mojo/public/cpp/bindings/message.h" 11 12namespace mojo { 13 14class MOJO_CPP_BINDINGS_EXPORT MessageHeaderValidator 15 : NON_EXPORTED_BASE(public MessageReceiver) { 16 public: 17 MessageHeaderValidator(); 18 explicit MessageHeaderValidator(const std::string& description); 19 20 // Sets the description associated with this validator. Used for reporting 21 // more detailed validation errors. 22 void SetDescription(const std::string& description); 23 24 bool Accept(Message* message) override; 25 26 private: 27 std::string description_; 28}; 29 30} // namespace mojo 31 32#endif // MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_HEADER_VALIDATOR_H_ 33