12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #ifndef PC_DTLS_TRANSPORT_H_
- #define PC_DTLS_TRANSPORT_H_
- #include <memory>
- #include "api/dtls_transport_interface.h"
- #include "api/ice_transport_interface.h"
- #include "api/scoped_refptr.h"
- #include "p2p/base/dtls_transport.h"
- #include "rtc_base/synchronization/mutex.h"
- namespace webrtc {
- class IceTransportWithPointer;
- class DtlsTransport : public DtlsTransportInterface,
- public sigslot::has_slots<> {
- public:
-
-
-
-
-
- explicit DtlsTransport(
- std::unique_ptr<cricket::DtlsTransportInternal> internal);
- rtc::scoped_refptr<IceTransportInterface> ice_transport() override;
- DtlsTransportInformation Information() override;
- void RegisterObserver(DtlsTransportObserverInterface* observer) override;
- void UnregisterObserver() override;
- void Clear();
- cricket::DtlsTransportInternal* internal() {
- MutexLock lock(&lock_);
- return internal_dtls_transport_.get();
- }
- const cricket::DtlsTransportInternal* internal() const {
- MutexLock lock(&lock_);
- return internal_dtls_transport_.get();
- }
- protected:
- ~DtlsTransport();
- private:
- void OnInternalDtlsState(cricket::DtlsTransportInternal* transport,
- cricket::DtlsTransportState state);
- void UpdateInformation();
- DtlsTransportObserverInterface* observer_ = nullptr;
- rtc::Thread* owner_thread_;
- mutable Mutex lock_;
- DtlsTransportInformation info_ RTC_GUARDED_BY(lock_);
- std::unique_ptr<cricket::DtlsTransportInternal> internal_dtls_transport_
- RTC_GUARDED_BY(lock_);
- const rtc::scoped_refptr<IceTransportWithPointer> ice_transport_;
- };
- }
- #endif
|