Home | History | Annotate | Download | only in engine
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "google_apis/gcm/engine/fake_connection_factory.h"
      6 
      7 #include "google_apis/gcm/engine/fake_connection_handler.h"
      8 #include "google_apis/gcm/protocol/mcs.pb.h"
      9 #include "net/socket/stream_socket.h"
     10 
     11 namespace gcm {
     12 
     13 FakeConnectionFactory::FakeConnectionFactory()
     14     : reconnect_pending_(false),
     15       delay_reconnect_(false) {
     16 }
     17 
     18 FakeConnectionFactory::~FakeConnectionFactory() {
     19 }
     20 
     21 void FakeConnectionFactory::Initialize(
     22     const BuildLoginRequestCallback& request_builder,
     23     const ConnectionHandler::ProtoReceivedCallback& read_callback,
     24     const ConnectionHandler::ProtoSentCallback& write_callback) {
     25   request_builder_ = request_builder;
     26   connection_handler_.reset(new FakeConnectionHandler(read_callback,
     27                                                       write_callback));
     28 }
     29 
     30 ConnectionHandler* FakeConnectionFactory::GetConnectionHandler() const {
     31   return connection_handler_.get();
     32 }
     33 
     34 void FakeConnectionFactory::Connect() {
     35   mcs_proto::LoginRequest login_request;
     36   request_builder_.Run(&login_request);
     37   connection_handler_->Init(login_request, NULL);
     38 }
     39 
     40 bool FakeConnectionFactory::IsEndpointReachable() const {
     41   return connection_handler_.get() && connection_handler_->CanSendMessage();
     42 }
     43 
     44 std::string FakeConnectionFactory::GetConnectionStateString() const {
     45   return "";
     46 }
     47 
     48 base::TimeTicks FakeConnectionFactory::NextRetryAttempt() const {
     49   return base::TimeTicks();
     50 }
     51 
     52 void FakeConnectionFactory::SignalConnectionReset(
     53     ConnectionResetReason reason) {
     54   if (!delay_reconnect_)
     55     Connect();
     56   else
     57     reconnect_pending_ = true;
     58 }
     59 
     60 void FakeConnectionFactory::SetConnectionListener(
     61     ConnectionListener* listener) {
     62 }
     63 
     64 }  // namespace gcm
     65