Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(491)

Unified Diff: remoting/protocol/jingle_session.h

Issue 10823323: Add support for multiplexed channels in remoting::protocol::Session interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/protocol/fake_session.cc ('k') | remoting/protocol/jingle_session.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/protocol/jingle_session.h
diff --git a/remoting/protocol/jingle_session.h b/remoting/protocol/jingle_session.h
index 202fb05c3a363627b8ecaf095723f97593d423af..774322986c21d937b006db323c7804209bf72825 100644
--- a/remoting/protocol/jingle_session.h
+++ b/remoting/protocol/jingle_session.h
@@ -15,6 +15,7 @@
#include "net/base/completion_callback.h"
#include "remoting/jingle_glue/iq_sender.h"
#include "remoting/protocol/authenticator.h"
+#include "remoting/protocol/channel_factory.h"
#include "remoting/protocol/jingle_messages.h"
#include "remoting/protocol/session.h"
#include "remoting/protocol/session_config.h"
@@ -28,12 +29,14 @@ class StreamSocket;
namespace remoting {
namespace protocol {
+class ChannelMultiplexer;
class JingleSessionManager;
// JingleSessionManager and JingleSession implement the subset of the
// Jingle protocol used in Chromoting. Instances of this class are
// created by the JingleSessionManager.
class JingleSession : public Session,
+ public ChannelFactory,
public Transport::EventHandler {
public:
virtual ~JingleSession();
@@ -41,6 +44,15 @@ class JingleSession : public Session,
// Session interface.
virtual void SetEventHandler(Session::EventHandler* event_handler) OVERRIDE;
virtual ErrorCode error() OVERRIDE;
+ virtual const std::string& jid() OVERRIDE;
+ virtual const CandidateSessionConfig* candidate_config() OVERRIDE;
+ virtual const SessionConfig& config() OVERRIDE;
+ virtual void set_config(const SessionConfig& config) OVERRIDE;
+ virtual ChannelFactory* GetTransportChannelFactory() OVERRIDE;
+ virtual ChannelFactory* GetMultiplexedChannelFactory() OVERRIDE;
+ virtual void Close() OVERRIDE;
+
+ // ChannelFactory interface.
virtual void CreateStreamChannel(
const std::string& name,
const StreamChannelCallback& callback) OVERRIDE;
@@ -48,11 +60,6 @@ class JingleSession : public Session,
const std::string& name,
const DatagramChannelCallback& callback) OVERRIDE;
virtual void CancelChannelCreation(const std::string& name) OVERRIDE;
- virtual const std::string& jid() OVERRIDE;
- virtual const CandidateSessionConfig* candidate_config() OVERRIDE;
- virtual const SessionConfig& config() OVERRIDE;
- virtual void set_config(const SessionConfig& config) OVERRIDE;
- virtual void Close() OVERRIDE;
// Transport::EventHandler interface.
virtual void OnTransportCandidate(
@@ -142,6 +149,7 @@ class JingleSession : public Session,
std::list<IqRequest*> pending_requests_;
ChannelsMap channels_;
+ scoped_ptr<ChannelMultiplexer> channel_multiplexer_;
base::OneShotTimer<JingleSession> transport_infos_timer_;
std::list<JingleMessage::NamedCandidate> pending_candidates_;
« no previous file with comments | « remoting/protocol/fake_session.cc ('k') | remoting/protocol/jingle_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698