| Index: mojo/public/cpp/bindings/lib/interface_endpoint_client.h
|
| diff --git a/mojo/public/cpp/bindings/lib/interface_endpoint_client.h b/mojo/public/cpp/bindings/lib/interface_endpoint_client.h
|
| deleted file mode 100644
|
| index 8c72ff12cb2c2d4029f71f153859b8c51943052c..0000000000000000000000000000000000000000
|
| --- a/mojo/public/cpp/bindings/lib/interface_endpoint_client.h
|
| +++ /dev/null
|
| @@ -1,157 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_INTERFACE_ENDPOINT_CLIENT_H_
|
| -#define MOJO_PUBLIC_CPP_BINDINGS_LIB_INTERFACE_ENDPOINT_CLIENT_H_
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include <map>
|
| -#include <memory>
|
| -
|
| -#include "base/callback.h"
|
| -#include "base/logging.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/single_thread_task_runner.h"
|
| -#include "base/threading/thread_checker.h"
|
| -#include "mojo/public/cpp/bindings/message.h"
|
| -#include "mojo/public/cpp/bindings/message_filter.h"
|
| -#include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h"
|
| -
|
| -namespace mojo {
|
| -
|
| -class AssociatedGroup;
|
| -
|
| -namespace internal {
|
| -
|
| -class MultiplexRouter;
|
| -class InterfaceEndpointController;
|
| -
|
| -// InterfaceEndpointClient handles message sending and receiving of an interface
|
| -// endpoint, either the implementation side or the client side.
|
| -// It should only be accessed and destructed on the creating thread.
|
| -class InterfaceEndpointClient : public MessageReceiverWithResponder {
|
| - public:
|
| - // |receiver| is okay to be null. If it is not null, it must outlive this
|
| - // object.
|
| - InterfaceEndpointClient(ScopedInterfaceEndpointHandle handle,
|
| - MessageReceiverWithResponderStatus* receiver,
|
| - std::unique_ptr<MessageFilter> payload_validator,
|
| - bool expect_sync_requests,
|
| - scoped_refptr<base::SingleThreadTaskRunner> runner);
|
| - ~InterfaceEndpointClient() override;
|
| -
|
| - // Sets the error handler to receive notifications when an error is
|
| - // encountered.
|
| - void set_connection_error_handler(const base::Closure& error_handler) {
|
| - DCHECK(thread_checker_.CalledOnValidThread());
|
| - error_handler_ = error_handler;
|
| - }
|
| -
|
| - // Returns true if an error was encountered.
|
| - bool encountered_error() const {
|
| - DCHECK(thread_checker_.CalledOnValidThread());
|
| - return encountered_error_;
|
| - }
|
| -
|
| - // Returns true if this endpoint has any pending callbacks.
|
| - bool has_pending_responders() const {
|
| - DCHECK(thread_checker_.CalledOnValidThread());
|
| - return !async_responders_.empty() || !sync_responses_.empty();
|
| - }
|
| -
|
| - MultiplexRouter* router() const { return handle_.router(); }
|
| - AssociatedGroup* associated_group();
|
| - uint32_t interface_id() const;
|
| -
|
| - // After this call the object is in an invalid state and shouldn't be reused.
|
| - ScopedInterfaceEndpointHandle PassHandle();
|
| -
|
| - // Raises an error on the underlying message pipe. It disconnects the pipe
|
| - // and notifies all interfaces running on this pipe.
|
| - void RaiseError();
|
| -
|
| - // MessageReceiverWithResponder implementation:
|
| - bool Accept(Message* message) override;
|
| - bool AcceptWithResponder(Message* message,
|
| - MessageReceiver* responder) override;
|
| -
|
| - // The following methods are called by the router. They must be called
|
| - // outside of the router's lock.
|
| -
|
| - // NOTE: |message| must have passed message header validation.
|
| - bool HandleIncomingMessage(Message* message);
|
| - void NotifyError();
|
| -
|
| - private:
|
| - // Maps from the id of a response to the MessageReceiver that handles the
|
| - // response.
|
| - using AsyncResponderMap =
|
| - std::map<uint64_t, std::unique_ptr<MessageReceiver>>;
|
| -
|
| - struct SyncResponseInfo {
|
| - public:
|
| - explicit SyncResponseInfo(bool* in_response_received);
|
| - ~SyncResponseInfo();
|
| -
|
| - std::unique_ptr<Message> response;
|
| -
|
| - // Points to a stack-allocated variable.
|
| - bool* response_received;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(SyncResponseInfo);
|
| - };
|
| -
|
| - using SyncResponseMap = std::map<uint64_t, std::unique_ptr<SyncResponseInfo>>;
|
| -
|
| - // Used as the sink for |payload_validator_| and forwards messages to
|
| - // HandleValidatedMessage().
|
| - class HandleIncomingMessageThunk : public MessageReceiver {
|
| - public:
|
| - explicit HandleIncomingMessageThunk(InterfaceEndpointClient* owner);
|
| - ~HandleIncomingMessageThunk() override;
|
| -
|
| - // MessageReceiver implementation:
|
| - bool Accept(Message* message) override;
|
| -
|
| - private:
|
| - InterfaceEndpointClient* const owner_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(HandleIncomingMessageThunk);
|
| - };
|
| -
|
| - bool HandleValidatedMessage(Message* message);
|
| -
|
| - ScopedInterfaceEndpointHandle handle_;
|
| - std::unique_ptr<AssociatedGroup> associated_group_;
|
| - InterfaceEndpointController* controller_;
|
| -
|
| - MessageReceiverWithResponderStatus* const incoming_receiver_;
|
| - std::unique_ptr<MessageFilter> payload_validator_;
|
| - HandleIncomingMessageThunk thunk_;
|
| -
|
| - AsyncResponderMap async_responders_;
|
| - SyncResponseMap sync_responses_;
|
| -
|
| - uint64_t next_request_id_;
|
| -
|
| - base::Closure error_handler_;
|
| - bool encountered_error_;
|
| -
|
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
| -
|
| - base::ThreadChecker thread_checker_;
|
| -
|
| - base::WeakPtrFactory<InterfaceEndpointClient> weak_ptr_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(InterfaceEndpointClient);
|
| -};
|
| -
|
| -} // namespace internal
|
| -} // namespace mojo
|
| -
|
| -#endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_INTERFACE_ENDPOINT_CLIENT_H_
|
|
|