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