| Index: webrtc/libjingle/session/tunnel/tunnelsessionclient.h
|
| diff --git a/webrtc/libjingle/session/tunnel/tunnelsessionclient.h b/webrtc/libjingle/session/tunnel/tunnelsessionclient.h
|
| deleted file mode 100644
|
| index 5fa121c157fa88d033da6a63ee58387b46986ef6..0000000000000000000000000000000000000000
|
| --- a/webrtc/libjingle/session/tunnel/tunnelsessionclient.h
|
| +++ /dev/null
|
| @@ -1,182 +0,0 @@
|
| -/*
|
| - * libjingle
|
| - * Copyright 2004--2008, Google Inc.
|
| - *
|
| - * Redistribution and use in source and binary forms, with or without
|
| - * modification, are permitted provided that the following conditions are met:
|
| - *
|
| - * 1. Redistributions of source code must retain the above copyright notice,
|
| - * this list of conditions and the following disclaimer.
|
| - * 2. Redistributions in binary form must reproduce the above copyright notice,
|
| - * this list of conditions and the following disclaimer in the documentation
|
| - * and/or other materials provided with the distribution.
|
| - * 3. The name of the author may not be used to endorse or promote products
|
| - * derived from this software without specific prior written permission.
|
| - *
|
| - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
| - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
| - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
| - * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
| - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
| - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
| - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
| - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
| - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| - */
|
| -
|
| -#ifndef __TUNNELSESSIONCLIENT_H__
|
| -#define __TUNNELSESSIONCLIENT_H__
|
| -
|
| -#include <vector>
|
| -
|
| -#include "webrtc/base/criticalsection.h"
|
| -#include "webrtc/base/stream.h"
|
| -#include "webrtc/libjingle/session/sessionclient.h"
|
| -#include "webrtc/libjingle/session/sessionmanager.h"
|
| -#include "webrtc/libjingle/xmllite/qname.h"
|
| -#include "webrtc/libjingle/xmpp/constants.h"
|
| -#include "webrtc/p2p/base/constants.h"
|
| -#include "webrtc/p2p/base/pseudotcp.h"
|
| -#include "webrtc/p2p/base/session.h"
|
| -#include "webrtc/p2p/base/sessiondescription.h"
|
| -
|
| -namespace cricket {
|
| -
|
| -class TunnelSession;
|
| -class TunnelStream;
|
| -
|
| -enum TunnelSessionRole { INITIATOR, RESPONDER };
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -// TunnelSessionClient
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -
|
| -// Base class is still abstract
|
| -class TunnelSessionClientBase
|
| - : public SessionClient, public rtc::MessageHandler {
|
| -public:
|
| - TunnelSessionClientBase(const buzz::Jid& jid, SessionManager* manager,
|
| - const std::string &ns);
|
| - virtual ~TunnelSessionClientBase();
|
| -
|
| - const buzz::Jid& jid() const { return jid_; }
|
| - SessionManager* session_manager() const { return session_manager_; }
|
| -
|
| - void OnSessionCreate(Session* session, bool received);
|
| - void OnSessionDestroy(Session* session);
|
| -
|
| - // This can be called on any thread. The stream interface is
|
| - // thread-safe, but notifications must be registered on the creating
|
| - // thread.
|
| - rtc::StreamInterface* CreateTunnel(const buzz::Jid& to,
|
| - const std::string& description);
|
| -
|
| - rtc::StreamInterface* AcceptTunnel(Session* session);
|
| - void DeclineTunnel(Session* session);
|
| -
|
| - // Invoked on an incoming tunnel
|
| - virtual void OnIncomingTunnel(const buzz::Jid &jid, Session *session) = 0;
|
| -
|
| - // Invoked on an outgoing session request
|
| - virtual SessionDescription* CreateOffer(
|
| - const buzz::Jid &jid, const std::string &description) = 0;
|
| - // Invoked on a session request accept to create
|
| - // the local-side session description
|
| - virtual SessionDescription* CreateAnswer(
|
| - const SessionDescription* offer) = 0;
|
| -
|
| -protected:
|
| -
|
| - void OnMessage(rtc::Message* pmsg);
|
| -
|
| - // helper method to instantiate TunnelSession. By overriding this,
|
| - // subclasses of TunnelSessionClient are able to instantiate
|
| - // subclasses of TunnelSession instead.
|
| - virtual TunnelSession* MakeTunnelSession(Session* session,
|
| - rtc::Thread* stream_thread,
|
| - TunnelSessionRole role);
|
| -
|
| - buzz::Jid jid_;
|
| - SessionManager* session_manager_;
|
| - std::vector<TunnelSession*> sessions_;
|
| - std::string namespace_;
|
| - bool shutdown_;
|
| -};
|
| -
|
| -class TunnelSessionClient
|
| - : public TunnelSessionClientBase, public sigslot::has_slots<> {
|
| -public:
|
| - TunnelSessionClient(const buzz::Jid& jid, SessionManager* manager);
|
| - TunnelSessionClient(const buzz::Jid& jid, SessionManager* manager,
|
| - const std::string &ns);
|
| - virtual ~TunnelSessionClient();
|
| -
|
| - virtual bool ParseContent(SignalingProtocol protocol,
|
| - const buzz::XmlElement* elem,
|
| - ContentDescription** content,
|
| - ParseError* error);
|
| - virtual bool WriteContent(SignalingProtocol protocol,
|
| - const ContentDescription* content,
|
| - buzz::XmlElement** elem,
|
| - WriteError* error);
|
| -
|
| - // Signal arguments are this, initiator, description, session
|
| - sigslot::signal4<TunnelSessionClient*, buzz::Jid, std::string, Session*>
|
| - SignalIncomingTunnel;
|
| -
|
| - virtual void OnIncomingTunnel(const buzz::Jid &jid,
|
| - Session *session);
|
| - virtual SessionDescription* CreateOffer(
|
| - const buzz::Jid &jid, const std::string &description);
|
| - virtual SessionDescription* CreateAnswer(
|
| - const SessionDescription* offer);
|
| -};
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -// TunnelSession
|
| -// Note: The lifetime of TunnelSession is complicated. It needs to survive
|
| -// until the following three conditions are true:
|
| -// 1) TunnelStream has called Close (tracked via non-null stream_)
|
| -// 2) PseudoTcp has completed (tracked via non-null tcp_)
|
| -// 3) Session has been destroyed (tracked via non-null session_)
|
| -// This is accomplished by calling CheckDestroy after these indicators change.
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -// TunnelStream
|
| -// Note: Because TunnelStream provides a stream interface, its lifetime is
|
| -// controlled by the owner of the stream pointer. As a result, we must support
|
| -// both the TunnelSession disappearing before TunnelStream, and vice versa.
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -
|
| -class PseudoTcpChannel;
|
| -
|
| -class TunnelSession : public sigslot::has_slots<> {
|
| - public:
|
| - // Signalling thread methods
|
| - TunnelSession(TunnelSessionClientBase* client, Session* session,
|
| - rtc::Thread* stream_thread);
|
| -
|
| - virtual rtc::StreamInterface* GetStream();
|
| - bool HasSession(Session* session);
|
| - Session* ReleaseSession(bool channel_exists);
|
| -
|
| - protected:
|
| - virtual ~TunnelSession();
|
| -
|
| - virtual void OnSessionState(BaseSession* session, BaseSession::State state);
|
| - virtual void OnInitiate();
|
| - virtual void OnAccept();
|
| - virtual void OnTerminate();
|
| - virtual void OnChannelClosed(PseudoTcpChannel* channel);
|
| -
|
| - TunnelSessionClientBase* client_;
|
| - Session* session_;
|
| - PseudoTcpChannel* channel_;
|
| -};
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -
|
| -} // namespace cricket
|
| -
|
| -#endif // __TUNNELSESSIONCLIENT_H__
|
|
|