VISR  0.12.0
Versatile Interactive Scene Renderer
visr::rcl::UdpSender Class Reference

#include <udp_sender.hpp>

Inheritance diagram for visr::rcl::UdpSender:
visr::AtomicComponent visr::Component

Public Types

enum  Mode { Mode::Synchronous, Mode::Asynchronous, Mode::ExternalServiceObject }
 

Public Member Functions

 UdpSender (SignalFlowContext const &context, char const *name, CompositeComponent *parent, std::size_t sendPort, std::string const &receiverAddress, std::size_t receiverPort, Mode mode, boost::asio::io_service *externalIoService=nullptr)
 
virtual ~UdpSender ()
 
void process () override
 
- Public Member Functions inherited from visr::AtomicComponent
 AtomicComponent (SignalFlowContext const &context, char const *name, CompositeComponent *parent=nullptr)
 
 AtomicComponent (AtomicComponent const &)=delete
 
 AtomicComponent (AtomicComponent &&)=delete
 
virtual ~AtomicComponent () override
 
- Public Member Functions inherited from visr::Component
 Component (SignalFlowContext const &context, char const *componentName, CompositeComponent *parent)
 
 Component (SignalFlowContext const &context, std::string const &componentName, CompositeComponent *parent)
 
 Component (Component const &)=delete
 
 Component (Component &&)=delete
 
Componentoperator= (Component const &)=delete
 
Componentoperator= (Component &&)=delete
 
virtual ~Component ()
 
std::string const & name () const
 
std::string fullName () const
 
void status (StatusMessage::Kind status, char const *message)
 
template<typename ... MessageArgs>
void status (StatusMessage::Kind status, MessageArgs ... args)
 
bool isComposite () const
 
AudioPortBaseaudioPort (char const *portName)
 
AudioPortBase const & audioPort (char const *portName) const
 
AudioPortBaseaudioPort (std::string const &portName)
 
AudioPortBase const & audioPort (std::string const &portName) const
 
ParameterPortBaseparameterPort (char const *portName)
 
ParameterPortBase const & parameterPort (char const *portName) const
 
ParameterPortBaseparameterPort (std::string const &portName)
 
ParameterPortBase const & parameterPort (std::string const &portName) const
 
SamplingFrequencyType samplingFrequency () const
 
std::size_t period () const
 
bool isTopLevel () const
 
impl::ComponentImplementationimplementation ()
 
impl::ComponentImplementation const & implementation () const
 

Static Public Attributes

static std::size_t const cMaxMessageLength = 8192
 

Additional Inherited Members

- Static Public Member Functions inherited from visr::Component
static const std::string & nameSeparator ()
 
- Protected Member Functions inherited from visr::Component
 Component (impl::ComponentImplementation *impl)
 

Detailed Description

A component to send messages over UDP. The message can operate either synchronously (messages are sent when the process() method is called) or asynchronously (the messages queued for sending and then send non-blocking in an extra thread.

Member Enumeration Documentation

◆ Mode

Enumerator
Synchronous 

The messages are sent within the process() call, blocking the call

Asynchronous 

The messages are stored in a queue, and send non-blocking, asynchronously when the network stack is ready.

ExternalServiceObject 

Same as asynchronous, but using a boost::asio::io_service object provided externally.

Constructor & Destructor Documentation

◆ UdpSender()

visr::rcl::UdpSender::UdpSender ( SignalFlowContext const &  context,
char const *  name,
CompositeComponent parent,
std::size_t  sendPort,
std::string const &  receiverAddress,
std::size_t  receiverPort,
UdpSender::Mode  mode,
boost::asio::io_service *  externalIoService = nullptr 
)
explicit

Constructor.

Parameters
contextConfiguration object containing basic execution parameters.
nameThe name of the component. Must be unique within the containing composite component (if there is one).
parentPointer to a containing component if there is one. Specify nullptr in case of a top-level component
sendPortLocal UDP port number for sending.
receiverAddressThe name of the reciver (either numeric IP or DNS name)
receiverPortRemote UDP port number.
modeAsynchronity mode of the network communication
externalIoServicePointer to an external network IO service (or nullptr if there is none). Must be non-null if and only if mode == Mode::ExternalServiceObject

◆ ~UdpSender()

visr::rcl::UdpSender::~UdpSender ( )
virtual

Destructor.

Member Function Documentation

◆ process()

void visr::rcl::UdpSender::process ( )
overridevirtual

The process function.

Implements visr::AtomicComponent.

Member Data Documentation

◆ cMaxMessageLength

std::size_t const visr::rcl::UdpSender::cMaxMessageLength = 8192
static

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