// // Created by Théo Monnom on 03/08/2022. // #ifndef PEER_CONNECTION_FACTORY_H #define PEER_CONNECTION_FACTORY_H #include "api/peer_connection_interface.h" #include "peer_connection.h" #include "rust_types.h" namespace livekit { using NativeRTCConfiguration = webrtc::PeerConnectionInterface::RTCConfiguration; class PeerConnectionFactory { public: PeerConnectionFactory(); std::unique_ptr create_peer_connection(std::unique_ptr config, std::unique_ptr observer) const; private: std::unique_ptr network_thread_; std::unique_ptr worker_thread_; std::unique_ptr signaling_thread_; rtc::scoped_refptr peer_factory_; }; std::unique_ptr create_peer_connection_factory(); std::unique_ptr create_rtc_configuration(RTCConfiguration conf); } // livekit #endif //PEER_CONNECTION_FACTORY_H