summaryrefslogtreecommitdiffstats
path: root/mojo/edk/system/endpoint_relayer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/edk/system/endpoint_relayer.cc')
-rw-r--r--mojo/edk/system/endpoint_relayer.cc70
1 files changed, 0 insertions, 70 deletions
diff --git a/mojo/edk/system/endpoint_relayer.cc b/mojo/edk/system/endpoint_relayer.cc
deleted file mode 100644
index 52faefa..0000000
--- a/mojo/edk/system/endpoint_relayer.cc
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2014 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.
-
-#include "mojo/edk/system/endpoint_relayer.h"
-
-#include "base/logging.h"
-#include "mojo/edk/system/channel_endpoint.h"
-#include "mojo/edk/system/message_in_transit.h"
-
-namespace mojo {
-namespace system {
-
-EndpointRelayer::EndpointRelayer() {
-}
-
-// static
-unsigned EndpointRelayer::GetPeerPort(unsigned port) {
- DCHECK(port == 0 || port == 1);
- return port ^ 1;
-}
-
-void EndpointRelayer::Init(ChannelEndpoint* endpoint0,
- ChannelEndpoint* endpoint1) {
- DCHECK(endpoint0);
- DCHECK(endpoint1);
- DCHECK(!endpoints_[0]);
- DCHECK(!endpoints_[1]);
- endpoints_[0] = endpoint0;
- endpoints_[1] = endpoint1;
-}
-
-bool EndpointRelayer::OnReadMessage(unsigned port, MessageInTransit* message) {
- DCHECK(message);
-
- base::AutoLock locker(lock_);
-
- // If we're no longer the client, then reject the message.
- if (!endpoints_[port])
- return false;
-
- // Otherwise, consume it even if the peer port is closed.
- unsigned peer_port = GetPeerPort(port);
- if (endpoints_[peer_port])
- endpoints_[peer_port]->EnqueueMessage(make_scoped_ptr(message));
- return true;
-}
-
-void EndpointRelayer::OnDetachFromChannel(unsigned port) {
- base::AutoLock locker(lock_);
-
- if (endpoints_[port]) {
- endpoints_[port]->DetachFromClient();
- endpoints_[port] = nullptr;
- }
-
- unsigned peer_port = GetPeerPort(port);
- if (endpoints_[peer_port]) {
- endpoints_[peer_port]->DetachFromClient();
- endpoints_[peer_port] = nullptr;
- }
-}
-
-EndpointRelayer::~EndpointRelayer() {
- DCHECK(!endpoints_[0]);
- DCHECK(!endpoints_[1]);
-}
-
-} // namespace system
-} // namespace mojo