| Index: mojo/public/cpp/bindings/interface_endpoint_client.h
|
| diff --git a/mojo/public/cpp/bindings/interface_endpoint_client.h b/mojo/public/cpp/bindings/interface_endpoint_client.h
|
| index 5c5243ca2145f76bcc21b0e268d3a483ab44d981..0aea75678adc196caf49dec10f57e33bba48b3c2 100644
|
| --- a/mojo/public/cpp/bindings/interface_endpoint_client.h
|
| +++ b/mojo/public/cpp/bindings/interface_endpoint_client.h
|
| @@ -31,7 +31,6 @@
|
| namespace mojo {
|
|
|
| class AssociatedGroup;
|
| -class AssociatedGroupController;
|
| class InterfaceEndpointController;
|
|
|
| // InterfaceEndpointClient handles message sending and receiving of an interface
|
| @@ -77,11 +76,7 @@ class MOJO_CPP_BINDINGS_EXPORT InterfaceEndpointClient
|
| return !async_responders_.empty() || !sync_responses_.empty();
|
| }
|
|
|
| - AssociatedGroupController* group_controller() const {
|
| - return handle_.group_controller();
|
| - }
|
| AssociatedGroup* associated_group();
|
| - uint32_t interface_id() const;
|
|
|
| // Adds a MessageReceiver which can filter a message after validation but
|
| // before dispatch.
|
| @@ -97,6 +92,8 @@ class MOJO_CPP_BINDINGS_EXPORT InterfaceEndpointClient
|
| void CloseWithReason(uint32_t custom_reason, const std::string& description);
|
|
|
| // MessageReceiverWithResponder implementation:
|
| + // They must only be called when the handle is not in pending association
|
| + // state.
|
| bool Accept(Message* message) override;
|
| bool AcceptWithResponder(Message* message,
|
| MessageReceiver* responder) override;
|
| @@ -108,9 +105,12 @@ class MOJO_CPP_BINDINGS_EXPORT InterfaceEndpointClient
|
| bool HandleIncomingMessage(Message* message);
|
| void NotifyError(const base::Optional<DisconnectReason>& reason);
|
|
|
| - internal::ControlMessageProxy* control_message_proxy() {
|
| - return &control_message_proxy_;
|
| - }
|
| + // The following methods send interface control messages.
|
| + // They must only be called when the handle is not in pending association
|
| + // state.
|
| + void QueryVersion(const base::Callback<void(uint32_t)>& callback);
|
| + void RequireVersion(uint32_t version);
|
| + void FlushForTesting();
|
|
|
| private:
|
| // Maps from the id of a response to the MessageReceiver that handles the
|
| @@ -150,24 +150,31 @@ class MOJO_CPP_BINDINGS_EXPORT InterfaceEndpointClient
|
| DISALLOW_COPY_AND_ASSIGN(HandleIncomingMessageThunk);
|
| };
|
|
|
| + void InitControllerIfNecessary();
|
| +
|
| + void OnAssociationEvent(
|
| + ScopedInterfaceEndpointHandle::AssociationEvent event);
|
| +
|
| bool HandleValidatedMessage(Message* message);
|
|
|
| + const bool expect_sync_requests_ = false;
|
| +
|
| ScopedInterfaceEndpointHandle handle_;
|
| std::unique_ptr<AssociatedGroup> associated_group_;
|
| - InterfaceEndpointController* controller_;
|
| + InterfaceEndpointController* controller_ = nullptr;
|
|
|
| - MessageReceiverWithResponderStatus* const incoming_receiver_;
|
| + MessageReceiverWithResponderStatus* const incoming_receiver_ = nullptr;
|
| HandleIncomingMessageThunk thunk_;
|
| FilterChain filters_;
|
|
|
| AsyncResponderMap async_responders_;
|
| SyncResponseMap sync_responses_;
|
|
|
| - uint64_t next_request_id_;
|
| + uint64_t next_request_id_ = 1;
|
|
|
| base::Closure error_handler_;
|
| ConnectionErrorWithReasonCallback error_with_reason_handler_;
|
| - bool encountered_error_;
|
| + bool encountered_error_ = false;
|
|
|
| scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
|
|
|
|