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

Side by Side Diff: talk/app/webrtc/webrtcsessiondescriptionfactory.h

Issue 1176383004: DtlsIdentityStore[Interface/Impl] updated, DtlsIdentityService to be removed (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: queue instead of list & merge with master Created 5 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 unified diff | Download patch
OLDNEW
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
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"
33 #include "talk/session/media/mediasession.h"
32 #include "webrtc/p2p/base/transportdescriptionfactory.h" 34 #include "webrtc/p2p/base/transportdescriptionfactory.h"
33 #include "talk/session/media/mediasession.h"
34 #include "webrtc/base/messagehandler.h" 35 #include "webrtc/base/messagehandler.h"
35 36
36 namespace cricket { 37 namespace cricket {
37 class ChannelManager; 38 class ChannelManager;
38 class TransportDescriptionFactory; 39 class TransportDescriptionFactory;
39 } // namespace cricket 40 } // namespace cricket
40 41
41 namespace webrtc { 42 namespace webrtc {
42 class CreateSessionDescriptionObserver; 43 class CreateSessionDescriptionObserver;
43 class MediaConstraintsInterface; 44 class MediaConstraintsInterface;
44 class MediaStreamSignaling; 45 class MediaStreamSignaling;
45 class SessionDescriptionInterface; 46 class SessionDescriptionInterface;
46 class WebRtcSession; 47 class WebRtcSession;
47 48
48 // DTLS identity request callback class. 49 // DTLS identity request callback class.
49 class WebRtcIdentityRequestObserver : public DTLSIdentityRequestObserver, 50 class WebRtcIdentityRequestObserver : public DtlsIdentityRequestObserver,
50 public sigslot::has_slots<> { 51 public sigslot::has_slots<> {
51 public: 52 public:
52 // DTLSIdentityRequestObserver overrides. 53 // DtlsIdentityRequestObserver overrides.
53 void OnFailure(int error) override; 54 void OnFailure(int error) override;
54 void OnSuccess(const std::string& der_cert, 55 void OnSuccess(const std::string& der_cert,
55 const std::string& der_private_key) override; 56 const std::string& der_private_key) override;
56 void OnSuccessWithIdentityObj( 57 void OnSuccess(rtc::scoped_ptr<rtc::SSLIdentity> identity) override;
57 rtc::scoped_ptr<rtc::SSLIdentity> identity) override;
58 58
59 sigslot::signal1<int> SignalRequestFailed; 59 sigslot::signal1<int> SignalRequestFailed;
60 sigslot::signal1<rtc::SSLIdentity*> SignalIdentityReady; 60 sigslot::signal1<rtc::SSLIdentity*> SignalIdentityReady;
61 }; 61 };
62 62
63 struct CreateSessionDescriptionRequest { 63 struct CreateSessionDescriptionRequest {
64 enum Type { 64 enum Type {
65 kOffer, 65 kOffer,
66 kAnswer, 66 kAnswer,
67 }; 67 };
(...skipping 10 matching lines...) Expand all
78 rtc::scoped_refptr<CreateSessionDescriptionObserver> observer; 78 rtc::scoped_refptr<CreateSessionDescriptionObserver> observer;
79 cricket::MediaSessionOptions options; 79 cricket::MediaSessionOptions options;
80 }; 80 };
81 81
82 // This class is used to create offer/answer session description with regards to 82 // This class is used to create offer/answer session description with regards to
83 // the async DTLS identity generation for WebRtcSession. 83 // the async DTLS identity generation for WebRtcSession.
84 // It queues the create offer/answer request until the DTLS identity 84 // It queues the create offer/answer request until the DTLS identity
85 // request has completed, i.e. when OnIdentityRequestFailed or OnIdentityReady 85 // request has completed, i.e. when OnIdentityRequestFailed or OnIdentityReady
86 // is called. 86 // is called.
87 class WebRtcSessionDescriptionFactory : public rtc::MessageHandler, 87 class WebRtcSessionDescriptionFactory : public rtc::MessageHandler,
88 public sigslot::has_slots<> { 88 public sigslot::has_slots<> {
89 public: 89 public:
90 WebRtcSessionDescriptionFactory( 90 WebRtcSessionDescriptionFactory(
91 rtc::Thread* signaling_thread, 91 rtc::Thread* signaling_thread,
92 cricket::ChannelManager* channel_manager, 92 cricket::ChannelManager* channel_manager,
93 MediaStreamSignaling* mediastream_signaling, 93 MediaStreamSignaling* mediastream_signaling,
94 DTLSIdentityServiceInterface* dtls_identity_service, 94 rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store,
95 // TODO(jiayl): remove the dependency on session once b/10226852 is fixed. 95 // TODO(jiayl): remove the dependency on session once bug 2264 is fixed.
96 WebRtcSession* session, 96 WebRtcSession* session,
97 const std::string& session_id, 97 const std::string& session_id,
98 cricket::DataChannelType dct, 98 cricket::DataChannelType dct,
99 bool dtls_enabled); 99 bool dtls_enabled);
100 virtual ~WebRtcSessionDescriptionFactory(); 100 virtual ~WebRtcSessionDescriptionFactory();
101 101
102 static void CopyCandidatesFromSessionDescription( 102 static void CopyCandidatesFromSessionDescription(
103 const SessionDescriptionInterface* source_desc, 103 const SessionDescriptionInterface* source_desc,
104 SessionDescriptionInterface* dest_desc); 104 SessionDescriptionInterface* dest_desc);
105 105
(...skipping 12 matching lines...) Expand all
118 // For testing. 118 // For testing.
119 bool waiting_for_identity() const { 119 bool waiting_for_identity() const {
120 return identity_request_state_ == IDENTITY_WAITING; 120 return identity_request_state_ == IDENTITY_WAITING;
121 } 121 }
122 122
123 private: 123 private:
124 enum IdentityRequestState { 124 enum IdentityRequestState {
125 IDENTITY_NOT_NEEDED, 125 IDENTITY_NOT_NEEDED,
126 IDENTITY_WAITING, 126 IDENTITY_WAITING,
127 IDENTITY_SUCCEEDED, 127 IDENTITY_SUCCEEDED,
128 IDENTITY_FAILED, 128 IDENTITY_FAILED,
hbos 2015/08/04 11:38:49 (IDENTITY_FAILED no longer used, will remove)
129 }; 129 };
130 130
131 // MessageHandler implementation. 131 // MessageHandler implementation.
132 virtual void OnMessage(rtc::Message* msg); 132 virtual void OnMessage(rtc::Message* msg);
133 133
134 void InternalCreateOffer(CreateSessionDescriptionRequest request); 134 void InternalCreateOffer(CreateSessionDescriptionRequest request);
135 void InternalCreateAnswer(CreateSessionDescriptionRequest request); 135 void InternalCreateAnswer(CreateSessionDescriptionRequest request);
136 // Posts failure notifications for all pending session description requests. 136 // Posts failure notifications for all pending session description requests.
137 void FailPendingRequests(const std::string& reason); 137 void FailPendingRequests(const std::string& reason);
138 void PostCreateSessionDescriptionFailed( 138 void PostCreateSessionDescriptionFailed(
139 CreateSessionDescriptionObserver* observer, 139 CreateSessionDescriptionObserver* observer,
140 const std::string& error); 140 const std::string& error);
141 void PostCreateSessionDescriptionSucceeded( 141 void PostCreateSessionDescriptionSucceeded(
142 CreateSessionDescriptionObserver* observer, 142 CreateSessionDescriptionObserver* observer,
143 SessionDescriptionInterface* description); 143 SessionDescriptionInterface* description);
144 144
145 void OnIdentityRequestFailed(int error); 145 void OnIdentityRequestFailed(int error);
146 void SetIdentity(rtc::SSLIdentity* identity); 146 void SetIdentity(rtc::SSLIdentity* identity);
147 147
148 std::queue<CreateSessionDescriptionRequest> 148 std::queue<CreateSessionDescriptionRequest>
149 create_session_description_requests_; 149 create_session_description_requests_;
150 rtc::Thread* const signaling_thread_; 150 rtc::Thread* const signaling_thread_;
151 MediaStreamSignaling* const mediastream_signaling_; 151 MediaStreamSignaling* const mediastream_signaling_;
152 cricket::TransportDescriptionFactory transport_desc_factory_; 152 cricket::TransportDescriptionFactory transport_desc_factory_;
153 cricket::MediaSessionDescriptionFactory session_desc_factory_; 153 cricket::MediaSessionDescriptionFactory session_desc_factory_;
154 uint64 session_version_; 154 uint64 session_version_;
155 rtc::scoped_ptr<DTLSIdentityServiceInterface> identity_service_; 155 rtc::scoped_ptr<DtlsIdentityStoreInterface> dtls_identity_store_;
156 rtc::scoped_refptr<WebRtcIdentityRequestObserver> identity_request_observer_; 156 rtc::scoped_refptr<WebRtcIdentityRequestObserver> identity_request_observer_;
157 WebRtcSession* const session_; 157 WebRtcSession* const session_;
158 const std::string session_id_; 158 const std::string session_id_;
159 const cricket::DataChannelType data_channel_type_; 159 const cricket::DataChannelType data_channel_type_;
160 IdentityRequestState identity_request_state_; 160 IdentityRequestState identity_request_state_;
161 161
162 DISALLOW_COPY_AND_ASSIGN(WebRtcSessionDescriptionFactory); 162 DISALLOW_COPY_AND_ASSIGN(WebRtcSessionDescriptionFactory);
163 }; 163 };
164 } // namespace webrtc 164 } // namespace webrtc
165 165
166 #endif // TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_ 166 #endif // TALK_APP_WEBRTC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_
OLDNEW
« no previous file with comments | « talk/app/webrtc/webrtcsession_unittest.cc ('k') | talk/app/webrtc/webrtcsessiondescriptionfactory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698