Index: talk/app/webrtc/webrtcsessiondescriptionfactory.h |
diff --git a/talk/app/webrtc/webrtcsessiondescriptionfactory.h b/talk/app/webrtc/webrtcsessiondescriptionfactory.h |
deleted file mode 100644 |
index 3281bb5c8848dc2298e90d9dae93819ddc861466..0000000000000000000000000000000000000000 |
--- a/talk/app/webrtc/webrtcsessiondescriptionfactory.h |
+++ /dev/null |
@@ -1,193 +0,0 @@ |
-/* |
- * libjingle |
- * Copyright 2013 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 TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ |
-#define TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ |
- |
-#include "talk/app/webrtc/dtlsidentitystore.h" |
-#include "talk/app/webrtc/peerconnectioninterface.h" |
-#include "talk/session/media/mediasession.h" |
-#include "webrtc/base/messagehandler.h" |
-#include "webrtc/base/rtccertificate.h" |
-#include "webrtc/p2p/base/transportdescriptionfactory.h" |
- |
-namespace cricket { |
-class ChannelManager; |
-class TransportDescriptionFactory; |
-} // namespace cricket |
- |
-namespace webrtc { |
-class CreateSessionDescriptionObserver; |
-class MediaConstraintsInterface; |
-class SessionDescriptionInterface; |
-class WebRtcSession; |
- |
-// DTLS identity request callback class. |
-class WebRtcIdentityRequestObserver : public DtlsIdentityRequestObserver, |
- public sigslot::has_slots<> { |
- public: |
- // DtlsIdentityRequestObserver overrides. |
- void OnFailure(int error) override; |
- void OnSuccess(const std::string& der_cert, |
- const std::string& der_private_key) override; |
- void OnSuccess(rtc::scoped_ptr<rtc::SSLIdentity> identity) override; |
- |
- sigslot::signal1<int> SignalRequestFailed; |
- sigslot::signal1<const rtc::scoped_refptr<rtc::RTCCertificate>&> |
- SignalCertificateReady; |
-}; |
- |
-struct CreateSessionDescriptionRequest { |
- enum Type { |
- kOffer, |
- kAnswer, |
- }; |
- |
- CreateSessionDescriptionRequest( |
- Type type, |
- CreateSessionDescriptionObserver* observer, |
- const cricket::MediaSessionOptions& options) |
- : type(type), |
- observer(observer), |
- options(options) {} |
- |
- Type type; |
- rtc::scoped_refptr<CreateSessionDescriptionObserver> observer; |
- cricket::MediaSessionOptions options; |
-}; |
- |
-// This class is used to create offer/answer session description with regards to |
-// the async DTLS identity generation for WebRtcSession. |
-// It queues the create offer/answer request until the DTLS identity |
-// request has completed, i.e. when OnIdentityRequestFailed or OnIdentityReady |
-// is called. |
-class WebRtcSessionDescriptionFactory : public rtc::MessageHandler, |
- public sigslot::has_slots<> { |
- public: |
- // Construct with DTLS disabled. |
- WebRtcSessionDescriptionFactory(rtc::Thread* signaling_thread, |
- cricket::ChannelManager* channel_manager, |
- WebRtcSession* session, |
- const std::string& session_id); |
- |
- // Construct with DTLS enabled using the specified |dtls_identity_store| to |
- // generate a certificate. |
- WebRtcSessionDescriptionFactory( |
- rtc::Thread* signaling_thread, |
- cricket::ChannelManager* channel_manager, |
- rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store, |
- WebRtcSession* session, |
- const std::string& session_id); |
- |
- // Construct with DTLS enabled using the specified (already generated) |
- // |certificate|. |
- WebRtcSessionDescriptionFactory( |
- rtc::Thread* signaling_thread, |
- cricket::ChannelManager* channel_manager, |
- const rtc::scoped_refptr<rtc::RTCCertificate>& certificate, |
- WebRtcSession* session, |
- const std::string& session_id); |
- virtual ~WebRtcSessionDescriptionFactory(); |
- |
- static void CopyCandidatesFromSessionDescription( |
- const SessionDescriptionInterface* source_desc, |
- SessionDescriptionInterface* dest_desc); |
- |
- void CreateOffer( |
- CreateSessionDescriptionObserver* observer, |
- const PeerConnectionInterface::RTCOfferAnswerOptions& options, |
- const cricket::MediaSessionOptions& session_options); |
- void CreateAnswer(CreateSessionDescriptionObserver* observer, |
- const MediaConstraintsInterface* constraints, |
- const cricket::MediaSessionOptions& session_options); |
- |
- void SetSdesPolicy(cricket::SecurePolicy secure_policy); |
- cricket::SecurePolicy SdesPolicy() const; |
- |
- sigslot::signal1<const rtc::scoped_refptr<rtc::RTCCertificate>&> |
- SignalCertificateReady; |
- |
- // For testing. |
- bool waiting_for_certificate_for_testing() const { |
- return certificate_request_state_ == CERTIFICATE_WAITING; |
- } |
- |
- private: |
- enum CertificateRequestState { |
- CERTIFICATE_NOT_NEEDED, |
- CERTIFICATE_WAITING, |
- CERTIFICATE_SUCCEEDED, |
- CERTIFICATE_FAILED, |
- }; |
- |
- WebRtcSessionDescriptionFactory( |
- rtc::Thread* signaling_thread, |
- cricket::ChannelManager* channel_manager, |
- rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store, |
- const rtc::scoped_refptr<WebRtcIdentityRequestObserver>& |
- identity_request_observer, |
- WebRtcSession* session, |
- const std::string& session_id, |
- bool dtls_enabled); |
- |
- // MessageHandler implementation. |
- virtual void OnMessage(rtc::Message* msg); |
- |
- void InternalCreateOffer(CreateSessionDescriptionRequest request); |
- void InternalCreateAnswer(CreateSessionDescriptionRequest request); |
- // Posts failure notifications for all pending session description requests. |
- void FailPendingRequests(const std::string& reason); |
- void PostCreateSessionDescriptionFailed( |
- CreateSessionDescriptionObserver* observer, |
- const std::string& error); |
- void PostCreateSessionDescriptionSucceeded( |
- CreateSessionDescriptionObserver* observer, |
- SessionDescriptionInterface* description); |
- |
- void OnIdentityRequestFailed(int error); |
- void SetCertificate( |
- const rtc::scoped_refptr<rtc::RTCCertificate>& certificate); |
- |
- std::queue<CreateSessionDescriptionRequest> |
- create_session_description_requests_; |
- rtc::Thread* const signaling_thread_; |
- cricket::TransportDescriptionFactory transport_desc_factory_; |
- cricket::MediaSessionDescriptionFactory session_desc_factory_; |
- uint64_t session_version_; |
- const rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store_; |
- const rtc::scoped_refptr<WebRtcIdentityRequestObserver> |
- identity_request_observer_; |
- // TODO(jiayl): remove the dependency on session once bug 2264 is fixed. |
- WebRtcSession* const session_; |
- const std::string session_id_; |
- CertificateRequestState certificate_request_state_; |
- |
- RTC_DISALLOW_COPY_AND_ASSIGN(WebRtcSessionDescriptionFactory); |
-}; |
-} // namespace webrtc |
- |
-#endif // TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ |