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 "mojo/public/cpp/bindings/message.h" 9 #include "mojo/public/cpp/bindings/message_filter.h" 10 11 namespace mojo { 12 13 class MessageHeaderValidator : public MessageFilter { 14 public: 15 explicit MessageHeaderValidator(MessageReceiver* sink = nullptr); 16 MessageHeaderValidator(const std::string& description, 17 MessageReceiver* sink = nullptr); 18 19 // Sets the description associated with this validator. Used for reporting 20 // more detailed validation errors. 21 void SetDescription(const std::string& description); 22 23 bool Accept(Message* message) override; 24 25 private: 26 std::string description_; 27 }; 28 29 } // namespace mojo 30 31 #endif // MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_HEADER_VALIDATOR_H_ 32