Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
roc::pipeline::SenderSlot Class Reference

Sender slot. More...

#include <sender_slot.h>

Inheritance diagram for roc::pipeline::SenderSlot:
Collaboration diagram for roc::pipeline::SenderSlot:

Public Member Functions

 SenderSlot (const SenderConfig &config, const rtp::FormatMap &format_map, audio::Fanout &fanout, packet::PacketFactory &packet_factory, core::BufferFactory< uint8_t > &byte_buffer_factory, core::BufferFactory< audio::sample_t > &sample_buffer_factory, core::IArena &arena)
 Initialize. More...
 
SenderEndpointadd_endpoint (address::Interface iface, address::Protocol proto, const address::SocketAddr &dest_address, packet::IWriter &dest_writer)
 Add endpoint. More...
 
audio::IFrameWriterwriter ()
 Get audio writer. More...
 
bool is_complete () const
 Check if slot configuration is complete. More...
 
core::nanoseconds_t refresh (core::nanoseconds_t current_time)
 Refresh pipeline according to current time. More...
 
void get_metrics (SenderSlotMetrics &slot_metrics, SenderSessionMetrics *sess_metrics) const
 Get metrics for slot and its session. More...
 
- Public Member Functions inherited from roc::core::RefCounted< SenderSlot, core::ArenaAllocation >
 RefCounted ()
 Initialize. More...
 
 RefCounted (const core::ArenaAllocation &policy)
 Initialize. More...
 
int getref () const
 Get reference counter. More...
 
void incref () const
 Increment reference counter. More...
 
void decref () const
 Decrement reference counter. More...
 
- Public Member Functions inherited from roc::core::ListNode
ListNodeDatalist_node_data () const
 Get list node data. More...
 

Additional Inherited Members

- Protected Member Functions inherited from roc::core::ArenaAllocation
IArenaarena () const
 Get arena. More...
 
 ArenaAllocation (IArena &arena)
 Initialize. More...
 
template<class T >
void destroy (T &object)
 Destroy object and return memory to arena. More...
 

Detailed Description

Sender slot.

Contains:

  • one or more related sender endpoints, one per each type
  • one session associated with those endpoints

Definition at line 37 of file sender_slot.h.

Constructor & Destructor Documentation

◆ SenderSlot()

roc::pipeline::SenderSlot::SenderSlot ( const SenderConfig config,
const rtp::FormatMap format_map,
audio::Fanout fanout,
packet::PacketFactory packet_factory,
core::BufferFactory< uint8_t > &  byte_buffer_factory,
core::BufferFactory< audio::sample_t > &  sample_buffer_factory,
core::IArena arena 
)

Initialize.

Member Function Documentation

◆ add_endpoint()

SenderEndpoint* roc::pipeline::SenderSlot::add_endpoint ( address::Interface  iface,
address::Protocol  proto,
const address::SocketAddr dest_address,
packet::IWriter dest_writer 
)

Add endpoint.

◆ get_metrics()

void roc::pipeline::SenderSlot::get_metrics ( SenderSlotMetrics slot_metrics,
SenderSessionMetrics sess_metrics 
) const

Get metrics for slot and its session.

◆ is_complete()

bool roc::pipeline::SenderSlot::is_complete ( ) const

Check if slot configuration is complete.

◆ refresh()

core::nanoseconds_t roc::pipeline::SenderSlot::refresh ( core::nanoseconds_t  current_time)

Refresh pipeline according to current time.

Returns
deadline (absolute time) when refresh should be invoked again if there are no frames

◆ writer()

audio::IFrameWriter* roc::pipeline::SenderSlot::writer ( )

Get audio writer.

Returns
NULL if slot is not ready.

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