Home | History | Annotate | Download | only in lib
      1 // Copyright 2015 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_LIB_CONTROL_MESSAGE_PROXY_H_
      6 #define MOJO_PUBLIC_CPP_BINDINGS_LIB_CONTROL_MESSAGE_PROXY_H_
      7 
      8 #include <stdint.h>
      9 
     10 #include "base/callback_forward.h"
     11 #include "base/macros.h"
     12 #include "mojo/public/cpp/bindings/lib/serialization_context.h"
     13 
     14 namespace mojo {
     15 
     16 class MessageReceiverWithResponder;
     17 
     18 namespace internal {
     19 
     20 // Proxy for request messages defined in interface_control_messages.mojom.
     21 class ControlMessageProxy {
     22  public:
     23   // Doesn't take ownership of |receiver|. It must outlive this object.
     24   explicit ControlMessageProxy(MessageReceiverWithResponder* receiver);
     25 
     26   void QueryVersion(const base::Callback<void(uint32_t)>& callback);
     27   void RequireVersion(uint32_t version);
     28 
     29  protected:
     30   // Not owned.
     31   MessageReceiverWithResponder* receiver_;
     32   SerializationContext context_;
     33 
     34   DISALLOW_COPY_AND_ASSIGN(ControlMessageProxy);
     35 };
     36 
     37 }  // namespace internal
     38 }  // namespace mojo
     39 
     40 #endif  // MOJO_PUBLIC_CPP_BINDINGS_LIB_CONTROL_MESSAGE_PROXY_H_
     41