| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  * libjingle |    2  * libjingle | 
|    3  * Copyright 2013 Google Inc. |    3  * Copyright 2013 Google Inc. | 
|    4  * |    4  * | 
|    5  * Redistribution and use in source and binary forms, with or without |    5  * Redistribution and use in source and binary forms, with or without | 
|    6  * modification, are permitted provided that the following conditions are met: |    6  * modification, are permitted provided that the following conditions are met: | 
|    7  * |    7  * | 
|    8  *  1. Redistributions of source code must retain the above copyright notice, |    8  *  1. Redistributions of source code must retain the above copyright notice, | 
|    9  *     this list of conditions and the following disclaimer. |    9  *     this list of conditions and the following disclaimer. | 
|   10  *  2. Redistributions in binary form must reproduce the above copyright notice, |   10  *  2. Redistributions in binary form must reproduce the above copyright notice, | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
|   21  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |   21  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | 
|   22  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |   22  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | 
|   23  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |   23  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | 
|   24  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |   24  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | 
|   25  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |   25  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
|   26  */ |   26  */ | 
|   27  |   27  | 
|   28 #ifndef TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ |   28 #ifndef TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ | 
|   29 #define TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ |   29 #define TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ | 
|   30  |   30  | 
 |   31 #include "talk/app/webrtc/dtlsidentitystore.h" | 
|   31 #include "talk/app/webrtc/peerconnectioninterface.h" |   32 #include "talk/app/webrtc/peerconnectioninterface.h" | 
|   32 #include "webrtc/p2p/base/transportdescriptionfactory.h" |  | 
|   33 #include "talk/session/media/mediasession.h" |   33 #include "talk/session/media/mediasession.h" | 
|   34 #include "webrtc/base/messagehandler.h" |   34 #include "webrtc/base/messagehandler.h" | 
 |   35 #include "webrtc/base/sslidentity.h" | 
 |   36 #include "webrtc/p2p/base/transportdescriptionfactory.h" | 
|   35  |   37  | 
|   36 namespace cricket { |   38 namespace cricket { | 
|   37 class ChannelManager; |   39 class ChannelManager; | 
|   38 class TransportDescriptionFactory; |   40 class TransportDescriptionFactory; | 
|   39 }  // namespace cricket |   41 }  // namespace cricket | 
|   40  |   42  | 
|   41 namespace webrtc { |   43 namespace webrtc { | 
|   42 class CreateSessionDescriptionObserver; |   44 class CreateSessionDescriptionObserver; | 
|   43 class MediaConstraintsInterface; |   45 class MediaConstraintsInterface; | 
|   44 class MediaStreamSignaling; |   46 class MediaStreamSignaling; | 
|   45 class SessionDescriptionInterface; |   47 class SessionDescriptionInterface; | 
|   46 class WebRtcSession; |   48 class WebRtcSession; | 
|   47  |   49  | 
|   48 // DTLS identity request callback class. |   50 // DTLS identity request callback class. | 
|   49 class WebRtcIdentityRequestObserver : public DTLSIdentityRequestObserver, |   51 class WebRtcIdentityRequestObserver : public DtlsIdentityRequestObserver, | 
|   50                                       public sigslot::has_slots<> { |   52                                       public sigslot::has_slots<> { | 
|   51  public: |   53  public: | 
|   52   // DTLSIdentityRequestObserver overrides. |   54   // DtlsIdentityRequestObserver overrides. | 
|   53   void OnFailure(int error) override; |   55   void OnFailure(int error) override; | 
|   54   void OnSuccess(const std::string& der_cert, |   56   void OnSuccess(const std::string& der_cert, | 
|   55                  const std::string& der_private_key) override; |   57                  const std::string& der_private_key) override; | 
|   56   void OnSuccessWithIdentityObj( |   58   void OnSuccessWithIdentityObj( | 
|   57       rtc::scoped_ptr<rtc::SSLIdentity> identity) override; |   59       rtc::scoped_ptr<rtc::SSLIdentity> identity) override; | 
|   58  |   60  | 
|   59   sigslot::signal1<int> SignalRequestFailed; |   61   sigslot::signal1<int> SignalRequestFailed; | 
|   60   sigslot::signal1<rtc::SSLIdentity*> SignalIdentityReady; |   62   sigslot::signal1<rtc::SSLIdentity*> SignalIdentityReady; | 
|   61 }; |   63 }; | 
|   62  |   64  | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
|   84 // It queues the create offer/answer request until the DTLS identity |   86 // It queues the create offer/answer request until the DTLS identity | 
|   85 // request has completed, i.e. when OnIdentityRequestFailed or OnIdentityReady |   87 // request has completed, i.e. when OnIdentityRequestFailed or OnIdentityReady | 
|   86 // is called. |   88 // is called. | 
|   87 class WebRtcSessionDescriptionFactory : public rtc::MessageHandler, |   89 class WebRtcSessionDescriptionFactory : public rtc::MessageHandler, | 
|   88                                         public sigslot::has_slots<>  { |   90                                         public sigslot::has_slots<>  { | 
|   89  public: |   91  public: | 
|   90   WebRtcSessionDescriptionFactory( |   92   WebRtcSessionDescriptionFactory( | 
|   91       rtc::Thread* signaling_thread, |   93       rtc::Thread* signaling_thread, | 
|   92       cricket::ChannelManager* channel_manager, |   94       cricket::ChannelManager* channel_manager, | 
|   93       MediaStreamSignaling* mediastream_signaling, |   95       MediaStreamSignaling* mediastream_signaling, | 
|   94       DTLSIdentityServiceInterface* dtls_identity_service, |   96       DtlsIdentityStoreInterface* dtls_identity_store, | 
|   95       // TODO(jiayl): remove the dependency on session once b/10226852 is fixed. |   97       // TODO(jiayl): remove the dependency on session once b/10226852 is fixed. | 
|   96       WebRtcSession* session, |   98       WebRtcSession* session, | 
|   97       const std::string& session_id, |   99       const std::string& session_id, | 
|   98       cricket::DataChannelType dct, |  100       cricket::DataChannelType dct, | 
|   99       bool dtls_enabled); |  101       bool dtls_enabled, | 
 |  102       rtc::KeyType key_type); | 
|  100   virtual ~WebRtcSessionDescriptionFactory(); |  103   virtual ~WebRtcSessionDescriptionFactory(); | 
|  101  |  104  | 
|  102   static void CopyCandidatesFromSessionDescription( |  105   static void CopyCandidatesFromSessionDescription( | 
|  103     const SessionDescriptionInterface* source_desc, |  106     const SessionDescriptionInterface* source_desc, | 
|  104     SessionDescriptionInterface* dest_desc); |  107     SessionDescriptionInterface* dest_desc); | 
|  105  |  108  | 
|  106   void CreateOffer( |  109   void CreateOffer( | 
|  107       CreateSessionDescriptionObserver* observer, |  110       CreateSessionDescriptionObserver* observer, | 
|  108       const PeerConnectionInterface::RTCOfferAnswerOptions& options); |  111       const PeerConnectionInterface::RTCOfferAnswerOptions& options); | 
|  109   void CreateAnswer( |  112   void CreateAnswer( | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  143   void OnIdentityRequestFailed(int error); |  146   void OnIdentityRequestFailed(int error); | 
|  144   void SetIdentity(rtc::SSLIdentity* identity); |  147   void SetIdentity(rtc::SSLIdentity* identity); | 
|  145  |  148  | 
|  146   std::queue<CreateSessionDescriptionRequest> |  149   std::queue<CreateSessionDescriptionRequest> | 
|  147       create_session_description_requests_; |  150       create_session_description_requests_; | 
|  148   rtc::Thread* signaling_thread_; |  151   rtc::Thread* signaling_thread_; | 
|  149   MediaStreamSignaling* mediastream_signaling_; |  152   MediaStreamSignaling* mediastream_signaling_; | 
|  150   cricket::TransportDescriptionFactory transport_desc_factory_; |  153   cricket::TransportDescriptionFactory transport_desc_factory_; | 
|  151   cricket::MediaSessionDescriptionFactory session_desc_factory_; |  154   cricket::MediaSessionDescriptionFactory session_desc_factory_; | 
|  152   uint64 session_version_; |  155   uint64 session_version_; | 
|  153   rtc::scoped_ptr<DTLSIdentityServiceInterface> identity_service_; |  156   // TODO(hbos): who should have the ownership? us or caller? it's not refptr, i
     t's ptr! | 
 |  157 //  rtc::scoped_ptr<DtlsIdentityStoreInterface> identity_store_;  // should not 
     have the ownership | 
 |  158   DtlsIdentityStoreInterface* identity_store_; | 
|  154   rtc::scoped_refptr<WebRtcIdentityRequestObserver> |  159   rtc::scoped_refptr<WebRtcIdentityRequestObserver> | 
|  155       identity_request_observer_; |  160       identity_request_observer_; | 
|  156   WebRtcSession* session_; |  161   WebRtcSession* session_; | 
|  157   std::string session_id_; |  162   std::string session_id_; | 
|  158   cricket::DataChannelType data_channel_type_; |  163   cricket::DataChannelType data_channel_type_; | 
|  159   IdentityRequestState identity_request_state_; |  164   IdentityRequestState identity_request_state_; | 
 |  165   // Key type to use when generating identity (SSLIdentity::Generate). | 
 |  166   rtc::KeyType key_type_; | 
|  160  |  167  | 
|  161   DISALLOW_COPY_AND_ASSIGN(WebRtcSessionDescriptionFactory); |  168   DISALLOW_COPY_AND_ASSIGN(WebRtcSessionDescriptionFactory); | 
|  162 }; |  169 }; | 
|  163 }  // namespace webrtc |  170 }  // namespace webrtc | 
|  164  |  171  | 
|  165 #endif  // TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ |  172 #endif  // TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ | 
| OLD | NEW |