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_PIPE_CONTROL_MESSAGE_PROXY_H_ 6 #define MOJO_PUBLIC_CPP_BINDINGS_PIPE_CONTROL_MESSAGE_PROXY_H_ 7 8 #include "base/macros.h" 9 #include "mojo/public/cpp/bindings/interface_id.h" 10 #include "mojo/public/cpp/bindings/lib/serialization_context.h" 11 12 namespace mojo { 13 14 class MessageReceiver; 15 16 // Proxy for request messages defined in pipe_control_messages.mojom. 17 class PipeControlMessageProxy { 18 public: 19 // Doesn't take ownership of |receiver|. It must outlive this object. 20 explicit PipeControlMessageProxy(MessageReceiver* receiver); 21 22 void NotifyPeerEndpointClosed(InterfaceId id); 23 void NotifyEndpointClosedBeforeSent(InterfaceId id); 24 25 private: 26 // Not owned. 27 MessageReceiver* receiver_; 28 internal::SerializationContext context_; 29 30 DISALLOW_COPY_AND_ASSIGN(PipeControlMessageProxy); 31 }; 32 33 } // namespace mojo 34 35 #endif // MOJO_PUBLIC_CPP_BINDINGS_PIPE_CONTROL_MESSAGE_PROXY_H_ 36