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