Android-cuttlefish cvd tool
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
cuttlefish::webrtc_streaming::ClientHandler Class Reference

#include <client_handler.h>

Inheritance diagram for cuttlefish::webrtc_streaming::ClientHandler:
Inheritance graph
[legend]
Collaboration diagram for cuttlefish::webrtc_streaming::ClientHandler:
Collaboration graph
[legend]

Classes

struct  DisplayTrackAndSender
 

Public Member Functions

 ~ClientHandler () override=default
 
bool AddDisplay (rtc::scoped_refptr< webrtc::VideoTrackInterface > track, const std::string &label)
 
bool RemoveDisplay (const std::string &label)
 
bool AddAudio (rtc::scoped_refptr< webrtc::AudioTrackInterface > track, const std::string &label)
 
ClientVideoTrackInterfaceGetCameraStream ()
 
void HandleMessage (const Json::Value &client_message)
 
void OnConnectionStateChange (Result< webrtc::PeerConnectionInterface::PeerConnectionState > new_state) override
 
void OnDataChannel (rtc::scoped_refptr< webrtc::DataChannelInterface > data_channel) override
 
void OnTrack (rtc::scoped_refptr< webrtc::RtpTransceiverInterface > transceiver) override
 
void OnRemoveTrack (rtc::scoped_refptr< webrtc::RtpReceiverInterface > receiver) override
 
Result< void > SendMessage (const Json::Value &msg) override
 
Result< rtc::scoped_refptr< webrtc::PeerConnectionInterface > > Build (webrtc::PeerConnectionObserver &observer, const std::vector< webrtc::PeerConnectionInterface::IceServer > &per_connection_servers) override
 
- Public Member Functions inherited from cuttlefish::webrtc_streaming::ConnectionController::Observer
virtual ~Observer ()=default
 
virtual void OnConnectionStateChange (Result< webrtc::PeerConnectionInterface::PeerConnectionState > status)=0
 
virtual void OnTrack (rtc::scoped_refptr< webrtc::RtpTransceiverInterface > transceiver)=0
 
virtual void OnRemoveTrack (rtc::scoped_refptr< webrtc::RtpReceiverInterface > receiver)=0
 
virtual void OnDataChannel (rtc::scoped_refptr< webrtc::DataChannelInterface > data_channel)=0
 
- Public Member Functions inherited from cuttlefish::webrtc_streaming::PeerConnectionBuilder
virtual ~PeerConnectionBuilder ()=default
 
virtual Result< rtc::scoped_refptr< webrtc::PeerConnectionInterface > > Build (webrtc::PeerConnectionObserver &observer, const std::vector< webrtc::PeerConnectionInterface::IceServer > &per_connection_servers)=0
 
- Public Member Functions inherited from cuttlefish::webrtc_streaming::PeerSignalingHandler
virtual ~PeerSignalingHandler ()=default
 
virtual Result< void > SendMessage (const Json::Value &msg)=0
 

Static Public Member Functions

static std::shared_ptr< ClientHandlerCreate (int client_id, std::shared_ptr< ConnectionObserver > observer, PeerConnectionBuilder &connection_builder, std::function< void(const Json::Value &)> send_to_client_cb, std::function< void(bool)> on_connection_changed_cb)
 

Private Member Functions

 ClientHandler (int client_id, std::shared_ptr< ConnectionObserver > observer, PeerConnectionBuilder &connection_builder, std::function< void(const Json::Value &)> send_to_client_cb, std::function< void(bool)> on_connection_changed_cb)
 
void Close ()
 
void LogAndReplyError (const std::string &error_msg) const
 
rtc::scoped_refptr< webrtc::RtpSenderInterface > AddTrackToConnection (rtc::scoped_refptr< webrtc::MediaStreamTrackInterface > track, rtc::scoped_refptr< webrtc::PeerConnectionInterface > peer_connection, const std::string &label)
 

Private Attributes

int client_id_
 
std::shared_ptr< ConnectionObserverobserver_
 
std::function< void(const Json::Value &)> send_to_client_
 
std::function< void(bool)> on_connection_changed_cb_
 
PeerConnectionBuilderconnection_builder_
 
ConnectionController controller_
 
DataChannelHandlers data_channels_handler_
 
std::unique_ptr< ClientVideoTrackImplcamera_track_
 
std::map< std::string, DisplayTrackAndSenderdisplays_
 
std::vector< std::pair< rtc::scoped_refptr< webrtc::AudioTrackInterface >, std::string > > audio_streams_
 

Constructor & Destructor Documentation

◆ ~ClientHandler()

cuttlefish::webrtc_streaming::ClientHandler::~ClientHandler ( )
overridedefault

◆ ClientHandler()

cuttlefish::webrtc_streaming::ClientHandler::ClientHandler ( int  client_id,
std::shared_ptr< ConnectionObserver observer,
PeerConnectionBuilder connection_builder,
std::function< void(const Json::Value &)>  send_to_client_cb,
std::function< void(bool)>  on_connection_changed_cb 
)
private

Member Function Documentation

◆ AddAudio()

bool cuttlefish::webrtc_streaming::ClientHandler::AddAudio ( rtc::scoped_refptr< webrtc::AudioTrackInterface >  track,
const std::string &  label 
)

◆ AddDisplay()

bool cuttlefish::webrtc_streaming::ClientHandler::AddDisplay ( rtc::scoped_refptr< webrtc::VideoTrackInterface >  track,
const std::string &  label 
)

◆ AddTrackToConnection()

rtc::scoped_refptr< webrtc::RtpSenderInterface > cuttlefish::webrtc_streaming::ClientHandler::AddTrackToConnection ( rtc::scoped_refptr< webrtc::MediaStreamTrackInterface >  track,
rtc::scoped_refptr< webrtc::PeerConnectionInterface >  peer_connection,
const std::string &  label 
)
private

◆ Build()

Result< rtc::scoped_refptr< webrtc::PeerConnectionInterface > > cuttlefish::webrtc_streaming::ClientHandler::Build ( webrtc::PeerConnectionObserver &  observer,
const std::vector< webrtc::PeerConnectionInterface::IceServer > &  per_connection_servers 
)
overridevirtual

◆ Close()

void cuttlefish::webrtc_streaming::ClientHandler::Close ( )
private

◆ Create()

std::shared_ptr< ClientHandler > cuttlefish::webrtc_streaming::ClientHandler::Create ( int  client_id,
std::shared_ptr< ConnectionObserver observer,
PeerConnectionBuilder connection_builder,
std::function< void(const Json::Value &)>  send_to_client_cb,
std::function< void(bool)>  on_connection_changed_cb 
)
static

◆ GetCameraStream()

ClientVideoTrackInterface * cuttlefish::webrtc_streaming::ClientHandler::GetCameraStream ( )

◆ HandleMessage()

void cuttlefish::webrtc_streaming::ClientHandler::HandleMessage ( const Json::Value &  client_message)

◆ LogAndReplyError()

void cuttlefish::webrtc_streaming::ClientHandler::LogAndReplyError ( const std::string &  error_msg) const
private

◆ OnConnectionStateChange()

void cuttlefish::webrtc_streaming::ClientHandler::OnConnectionStateChange ( Result< webrtc::PeerConnectionInterface::PeerConnectionState >  new_state)
overridevirtual

◆ OnDataChannel()

void cuttlefish::webrtc_streaming::ClientHandler::OnDataChannel ( rtc::scoped_refptr< webrtc::DataChannelInterface >  data_channel)
overridevirtual

◆ OnRemoveTrack()

void cuttlefish::webrtc_streaming::ClientHandler::OnRemoveTrack ( rtc::scoped_refptr< webrtc::RtpReceiverInterface >  receiver)
overridevirtual

◆ OnTrack()

void cuttlefish::webrtc_streaming::ClientHandler::OnTrack ( rtc::scoped_refptr< webrtc::RtpTransceiverInterface >  transceiver)
overridevirtual

◆ RemoveDisplay()

bool cuttlefish::webrtc_streaming::ClientHandler::RemoveDisplay ( const std::string &  label)

◆ SendMessage()

Result< void > cuttlefish::webrtc_streaming::ClientHandler::SendMessage ( const Json::Value &  msg)
overridevirtual

Member Data Documentation

◆ audio_streams_

std::vector< std::pair<rtc::scoped_refptr<webrtc::AudioTrackInterface>, std::string> > cuttlefish::webrtc_streaming::ClientHandler::audio_streams_
private

◆ camera_track_

std::unique_ptr<ClientVideoTrackImpl> cuttlefish::webrtc_streaming::ClientHandler::camera_track_
private

◆ client_id_

int cuttlefish::webrtc_streaming::ClientHandler::client_id_
private

◆ connection_builder_

PeerConnectionBuilder& cuttlefish::webrtc_streaming::ClientHandler::connection_builder_
private

◆ controller_

ConnectionController cuttlefish::webrtc_streaming::ClientHandler::controller_
private

◆ data_channels_handler_

DataChannelHandlers cuttlefish::webrtc_streaming::ClientHandler::data_channels_handler_
private

◆ displays_

std::map<std::string, DisplayTrackAndSender> cuttlefish::webrtc_streaming::ClientHandler::displays_
private

◆ observer_

std::shared_ptr<ConnectionObserver> cuttlefish::webrtc_streaming::ClientHandler::observer_
private

◆ on_connection_changed_cb_

std::function<void(bool)> cuttlefish::webrtc_streaming::ClientHandler::on_connection_changed_cb_
private

◆ send_to_client_

std::function<void(const Json::Value&)> cuttlefish::webrtc_streaming::ClientHandler::send_to_client_
private

The documentation for this class was generated from the following files: