diff options
Diffstat (limited to 'remoting/protocol')
-rw-r--r-- | remoting/protocol/client_control_dispatcher.cc | 9 | ||||
-rw-r--r-- | remoting/protocol/client_control_dispatcher.h | 1 | ||||
-rw-r--r-- | remoting/protocol/client_stub.h | 4 | ||||
-rw-r--r-- | remoting/protocol/host_control_dispatcher.cc | 9 | ||||
-rw-r--r-- | remoting/protocol/host_control_dispatcher.h | 2 | ||||
-rw-r--r-- | remoting/protocol/host_stub.h | 4 | ||||
-rw-r--r-- | remoting/protocol/protocol_mock_objects.h | 2 |
7 files changed, 31 insertions, 0 deletions
diff --git a/remoting/protocol/client_control_dispatcher.cc b/remoting/protocol/client_control_dispatcher.cc index 8bb918e..a42c3f6 100644 --- a/remoting/protocol/client_control_dispatcher.cc +++ b/remoting/protocol/client_control_dispatcher.cc @@ -74,6 +74,13 @@ void ClientControlDispatcher::RequestPairing( writer_.Write(SerializeAndFrameMessage(message), base::Closure()); } +void ClientControlDispatcher::DeliverClientMessage( + const ExtensionMessage& message) { + ControlMessage control_message; + control_message.mutable_extension_message()->CopyFrom(message); + writer_.Write(SerializeAndFrameMessage(control_message), base::Closure()); +} + void ClientControlDispatcher::OnMessageReceived( scoped_ptr<ControlMessage> message, const base::Closure& done_task) { DCHECK(client_stub_); @@ -88,6 +95,8 @@ void ClientControlDispatcher::OnMessageReceived( client_stub_->SetCursorShape(message->cursor_shape()); } else if (message->has_pairing_response()) { client_stub_->SetPairingResponse(message->pairing_response()); + } else if (message->has_extension_message()) { + client_stub_->DeliverHostMessage(message->extension_message()); } else { LOG(WARNING) << "Unknown control message received."; } diff --git a/remoting/protocol/client_control_dispatcher.h b/remoting/protocol/client_control_dispatcher.h index b2a0bfa..556ce72 100644 --- a/remoting/protocol/client_control_dispatcher.h +++ b/remoting/protocol/client_control_dispatcher.h @@ -40,6 +40,7 @@ class ClientControlDispatcher : public ChannelDispatcherBase, virtual void ControlAudio(const AudioControl& audio_control) OVERRIDE; virtual void SetCapabilities(const Capabilities& capabilities) OVERRIDE; virtual void RequestPairing(const PairingRequest& pairing_request) OVERRIDE; + virtual void DeliverClientMessage(const ExtensionMessage& message) OVERRIDE; // Sets the ClientStub that will be called for each incoming control // message. |client_stub| must outlive this object. diff --git a/remoting/protocol/client_stub.h b/remoting/protocol/client_stub.h index 4507ba7..d57f948 100644 --- a/remoting/protocol/client_stub.h +++ b/remoting/protocol/client_stub.h @@ -18,6 +18,7 @@ namespace remoting { namespace protocol { class Capabilities; +class ExtensionMessage; class PairingResponse; class ClientStub : public ClipboardStub, @@ -32,6 +33,9 @@ class ClientStub : public ClipboardStub, // Passes a pairing response message to the client. virtual void SetPairingResponse(const PairingResponse& pairing_response) = 0; + // Deliver an extension message from the host to the client. + virtual void DeliverHostMessage(const ExtensionMessage& message) = 0; + private: DISALLOW_COPY_AND_ASSIGN(ClientStub); }; diff --git a/remoting/protocol/host_control_dispatcher.cc b/remoting/protocol/host_control_dispatcher.cc index b979e36..26f09fc 100644 --- a/remoting/protocol/host_control_dispatcher.cc +++ b/remoting/protocol/host_control_dispatcher.cc @@ -46,6 +46,13 @@ void HostControlDispatcher::SetPairingResponse( writer_.Write(SerializeAndFrameMessage(message), base::Closure()); } +void HostControlDispatcher::DeliverHostMessage( + const ExtensionMessage& message) { + ControlMessage control_message; + control_message.mutable_extension_message()->CopyFrom(message); + writer_.Write(SerializeAndFrameMessage(control_message), base::Closure()); +} + void HostControlDispatcher::InjectClipboardEvent(const ClipboardEvent& event) { ControlMessage message; message.mutable_clipboard_event()->CopyFrom(event); @@ -78,6 +85,8 @@ void HostControlDispatcher::OnMessageReceived( host_stub_->SetCapabilities(message->capabilities()); } else if (message->has_pairing_request()) { host_stub_->RequestPairing(message->pairing_request()); + } else if (message->has_extension_message()) { + host_stub_->DeliverClientMessage(message->extension_message()); } else { LOG(WARNING) << "Unknown control message received."; } diff --git a/remoting/protocol/host_control_dispatcher.h b/remoting/protocol/host_control_dispatcher.h index 4620be1..82aa793 100644 --- a/remoting/protocol/host_control_dispatcher.h +++ b/remoting/protocol/host_control_dispatcher.h @@ -37,6 +37,8 @@ class HostControlDispatcher : public ChannelDispatcherBase, virtual void SetCapabilities(const Capabilities& capabilities) OVERRIDE; virtual void SetPairingResponse( const PairingResponse& pairing_response) OVERRIDE; + virtual void DeliverHostMessage( + const ExtensionMessage& message) OVERRIDE; // ClipboardStub implementation for sending clipboard data to client. virtual void InjectClipboardEvent(const ClipboardEvent& event) OVERRIDE; diff --git a/remoting/protocol/host_stub.h b/remoting/protocol/host_stub.h index 46d7534..cf9fa0b 100644 --- a/remoting/protocol/host_stub.h +++ b/remoting/protocol/host_stub.h @@ -17,6 +17,7 @@ namespace protocol { class AudioControl; class Capabilities; class ClientResolution; +class ExtensionMessage; class PairingResponse; class PairingRequest; class VideoControl; @@ -43,6 +44,9 @@ class HostStub { // Requests pairing between the host and client for PIN-less authentication. virtual void RequestPairing(const PairingRequest& pairing_request) = 0; + // Deliver an extension message from the client to the host. + virtual void DeliverClientMessage(const ExtensionMessage& message) = 0; + protected: virtual ~HostStub() {} diff --git a/remoting/protocol/protocol_mock_objects.h b/remoting/protocol/protocol_mock_objects.h index 74435db..16bb866 100644 --- a/remoting/protocol/protocol_mock_objects.h +++ b/remoting/protocol/protocol_mock_objects.h @@ -114,6 +114,7 @@ class MockHostStub : public HostStub { MOCK_METHOD1(SetCapabilities, void(const Capabilities& capabilities)); MOCK_METHOD1(RequestPairing, void(const PairingRequest& pairing_request)); + MOCK_METHOD1(DeliverClientMessage, void(const ExtensionMessage& message)); private: DISALLOW_COPY_AND_ASSIGN(MockHostStub); @@ -128,6 +129,7 @@ class MockClientStub : public ClientStub { MOCK_METHOD1(SetCapabilities, void(const Capabilities& capabilities)); MOCK_METHOD1(SetPairingResponse, void(const PairingResponse& pairing_response)); + MOCK_METHOD1(DeliverHostMessage, void(const ExtensionMessage& message)); // ClipboardStub mock implementation. MOCK_METHOD1(InjectClipboardEvent, void(const ClipboardEvent& event)); |