diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-21 23:35:24 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-21 23:35:24 +0000 |
commit | 2deab81fb7d992a24ab6bd7b60d80589b746d836 (patch) | |
tree | 80de37fb5ab107fa2b005e14889ba347de62efb0 /remoting/jingle_glue/javascript_signal_strategy.cc | |
parent | a4105bfd5b2b41c1f88fa93bfea409ee56426933 (diff) | |
download | chromium_src-2deab81fb7d992a24ab6bd7b60d80589b746d836.zip chromium_src-2deab81fb7d992a24ab6bd7b60d80589b746d836.tar.gz chromium_src-2deab81fb7d992a24ab6bd7b60d80589b746d836.tar.bz2 |
Move SignalStrategy and its implementations to separate files.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/7219014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89929 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/jingle_glue/javascript_signal_strategy.cc')
-rw-r--r-- | remoting/jingle_glue/javascript_signal_strategy.cc | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/remoting/jingle_glue/javascript_signal_strategy.cc b/remoting/jingle_glue/javascript_signal_strategy.cc new file mode 100644 index 0000000..b3f14dd --- /dev/null +++ b/remoting/jingle_glue/javascript_signal_strategy.cc @@ -0,0 +1,55 @@ +// Copyright (c) 2011 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 "remoting/jingle_glue/javascript_signal_strategy.h" + +#include "remoting/jingle_glue/iq_request.h" +#include "remoting/jingle_glue/xmpp_proxy.h" + +namespace remoting { + +JavascriptSignalStrategy::JavascriptSignalStrategy(const std::string& your_jid) + : your_jid_(your_jid) { +} + +JavascriptSignalStrategy::~JavascriptSignalStrategy() { +} + +void JavascriptSignalStrategy::AttachXmppProxy( + scoped_refptr<XmppProxy> xmpp_proxy) { + xmpp_proxy_ = xmpp_proxy; + xmpp_proxy_->AttachCallback(iq_registry_.AsWeakPtr()); +} + +void JavascriptSignalStrategy::Init(StatusObserver* observer) { + // Blast through each state since for a JavascriptSignalStrategy, we're + // already connected. + // + // TODO(ajwong): Clarify the status API contract to see if we have to actually + // walk through each state. + observer->OnStateChange(StatusObserver::START); + observer->OnStateChange(StatusObserver::CONNECTING); + observer->OnJidChange(your_jid_); + observer->OnStateChange(StatusObserver::CONNECTED); +} + +void JavascriptSignalStrategy::StartSession( + cricket::SessionManager* session_manager) { + session_start_request_.reset( + new SessionStartRequest(CreateIqRequest(), session_manager)); + session_start_request_->Run(); +} + +void JavascriptSignalStrategy::EndSession() { + if (xmpp_proxy_) { + xmpp_proxy_->DetachCallback(); + } + xmpp_proxy_ = NULL; +} + +JavascriptIqRequest* JavascriptSignalStrategy::CreateIqRequest() { + return new JavascriptIqRequest(&iq_registry_, xmpp_proxy_); +} + +} // namespace remoting |