| Index: blimp/net/tcp_connection.cc
|
| diff --git a/blimp/net/tcp_connection.cc b/blimp/net/tcp_connection.cc
|
| deleted file mode 100644
|
| index e6ba35a70ae03d91214266f10a86c063f6c04762..0000000000000000000000000000000000000000
|
| --- a/blimp/net/tcp_connection.cc
|
| +++ /dev/null
|
| @@ -1,135 +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.
|
| -
|
| -#include "blimp/net/tcp_connection.h"
|
| -
|
| -#include <utility>
|
| -
|
| -#include "base/callback_helpers.h"
|
| -#include "base/logging.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "blimp/common/create_blimp_message.h"
|
| -#include "blimp/common/logging.h"
|
| -#include "blimp/common/proto/blimp_message.pb.h"
|
| -#include "blimp/net/blimp_message_processor.h"
|
| -#include "blimp/net/blimp_message_pump.h"
|
| -#include "blimp/net/common.h"
|
| -#include "blimp/net/connection_error_observer.h"
|
| -#include "blimp/net/message_port.h"
|
| -#include "blimp/net/packet_writer.h"
|
| -#include "net/base/completion_callback.h"
|
| -
|
| -namespace blimp {
|
| -
|
| -// Forwards incoming blimp messages to PacketWriter.
|
| -class BlimpMessageSender : public BlimpMessageProcessor {
|
| - public:
|
| - explicit BlimpMessageSender(PacketWriter* writer);
|
| - ~BlimpMessageSender() override;
|
| -
|
| - void set_error_observer(ConnectionErrorObserver* observer) {
|
| - error_observer_ = observer;
|
| - }
|
| -
|
| - // BlimpMessageProcessor implementation.
|
| - // |callback| receives net::OK on write success, or receives an error code
|
| - // otherwise.
|
| - void ProcessMessage(std::unique_ptr<BlimpMessage> message,
|
| - const net::CompletionCallback& callback) override;
|
| -
|
| - private:
|
| - void OnWritePacketComplete(int result);
|
| -
|
| - PacketWriter* writer_;
|
| - ConnectionErrorObserver* error_observer_ = nullptr;
|
| - scoped_refptr<net::IOBuffer> buffer_;
|
| - net::CompletionCallback pending_process_msg_callback_;
|
| - base::WeakPtrFactory<BlimpMessageSender> weak_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BlimpMessageSender);
|
| -};
|
| -
|
| -BlimpMessageSender::BlimpMessageSender(PacketWriter* writer)
|
| - : writer_(writer),
|
| - buffer_(new net::IOBuffer(kMaxPacketPayloadSizeBytes)),
|
| - weak_factory_(this) {
|
| - DCHECK(writer_);
|
| -}
|
| -
|
| -BlimpMessageSender::~BlimpMessageSender() {
|
| - DVLOG(1) << "BlimpMessageSender destroyed.";
|
| -}
|
| -
|
| -void BlimpMessageSender::ProcessMessage(
|
| - std::unique_ptr<BlimpMessage> message,
|
| - const net::CompletionCallback& callback) {
|
| - DCHECK(error_observer_);
|
| - VLOG(1) << "Sending " << *message;
|
| -
|
| - const int msg_byte_size = message->ByteSize();
|
| - if (msg_byte_size > static_cast<int>(kMaxPacketPayloadSizeBytes)) {
|
| - DLOG(ERROR) << "Message rejected (too large): " << *message;
|
| - callback.Run(net::ERR_MSG_TOO_BIG);
|
| - return;
|
| - }
|
| - if (!message->SerializeToArray(buffer_->data(), msg_byte_size)) {
|
| - DLOG(ERROR) << "Failed to serialize message.";
|
| - callback.Run(net::ERR_INVALID_ARGUMENT);
|
| - return;
|
| - }
|
| -
|
| - // Check that no other message writes are in-flight at this time.
|
| - DCHECK(pending_process_msg_callback_.is_null());
|
| - pending_process_msg_callback_ = callback;
|
| -
|
| - writer_->WritePacket(
|
| - scoped_refptr<net::DrainableIOBuffer>(
|
| - new net::DrainableIOBuffer(buffer_.get(), msg_byte_size)),
|
| - base::Bind(&BlimpMessageSender::OnWritePacketComplete,
|
| - weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void BlimpMessageSender::OnWritePacketComplete(int result) {
|
| - DVLOG(2) << "OnWritePacketComplete, result=" << result;
|
| - DCHECK_NE(net::ERR_IO_PENDING, result);
|
| -
|
| - // Create a stack-local copy of |pending_process_msg_callback_|, in case an
|
| - // observer deletes |this|.
|
| - net::CompletionCallback process_callback =
|
| - base::ResetAndReturn(&pending_process_msg_callback_);
|
| -
|
| - if (result != net::OK) {
|
| - error_observer_->OnConnectionError(result);
|
| - }
|
| -
|
| - process_callback.Run(result);
|
| -}
|
| -
|
| -TCPConnection::TCPConnection(std::unique_ptr<MessagePort> message_port)
|
| - : BlimpConnection(),
|
| - message_port_(std::move(message_port)),
|
| - message_pump_(new BlimpMessagePump(message_port_->reader())),
|
| - outgoing_msg_processor_(new BlimpMessageSender(message_port_->writer())) {
|
| - message_pump_->set_error_observer(this);
|
| - outgoing_msg_processor_->set_error_observer(this);
|
| -}
|
| -
|
| -TCPConnection::~TCPConnection() {
|
| - VLOG(1) << "TCPConnection destroyed.";
|
| -}
|
| -
|
| -void TCPConnection::SetIncomingMessageProcessor(
|
| - BlimpMessageProcessor* processor) {
|
| - AddEndConnectionProcessor(processor);
|
| - message_pump_->SetMessageProcessor(
|
| - (processor != nullptr) ? GetEndConnectionProcessor() : nullptr);
|
| -}
|
| -
|
| -BlimpMessageProcessor* TCPConnection::GetOutgoingMessageProcessor() {
|
| - return outgoing_msg_processor_.get();
|
| -}
|
| -
|
| -} // namespace blimp
|
|
|