![]() |
TSDuck v3.43-4441
MPEG Transport Stream Toolkit
|
Secure Reliable Transport (SRT) Socket. More...
#include <tsSRTSocket.h>
Public Member Functions | |
SRTSocket () | |
Constructor. | |
~SRTSocket () | |
Destructor. | |
bool | close (Report &report=(ts::CerrReport::Instance())) |
Close the socket. | |
void | defineArgs (Args &args) |
Add command line option definitions in an Args. | |
bool | getMessageApi () const |
Check if the SRT socket uses the Message API. | |
bool | getPeers (IPSocketAddress &local, IPSocketAddress &remote, Report &report=(ts::CerrReport::Instance())) |
Get the socket peers, local and remote. | |
int | getSocket () const |
Get the underlying SRT socket handle (use with care). | |
bool | getSockOpt (int optName, const char *optNameStr, void *optval, int &optlen, Report &report=(ts::CerrReport::Instance())) const |
Get SRT option. | |
bool | loadArgs (DuckContext &duck, Args &args) |
Load arguments from command line. | |
bool | open (size_t max_payload=NPOS, Report &report=(ts::CerrReport::Instance())) |
Open the socket using parameters from the command line. | |
bool | open (SRTSocketMode mode, const IPSocketAddress &local, const IPSocketAddress &remote, size_t max_payload=NPOS, Report &report=(ts::CerrReport::Instance())) |
Open the socket. | |
bool | peerDisconnected () const |
Check if the connection was disconnected by the peer. | |
bool | receive (void *data, size_t max_size, size_t &ret_size, cn::microseconds ×tamp, Report &report=(ts::CerrReport::Instance())) |
Receive a message with timestamp. | |
bool | receive (void *data, size_t max_size, size_t &ret_size, Report &report=(ts::CerrReport::Instance())) |
Receive a message. | |
bool | reportStatistics (SRTStatMode mode=SRTStatMode::ALL, Report &report=(ts::CerrReport::Instance())) |
Get statistics about the socket and report them. | |
bool | send (const void *data, size_t size, Report &report=(ts::CerrReport::Instance())) |
Send a message to the default destination address and port. | |
bool | setAddresses (const IPSocketAddress &listener, const IPSocketAddress &caller, const IPAddress &local=IPAddress(), Report &report=(ts::CerrReport::Instance())) |
Preset local and remote socket addresses in string form. | |
size_t | totalReceivedBytes () const |
Get the total number of received bytes since the socket was opened. | |
size_t | totalSentBytes () const |
Get the total number of sent bytes since the socket was opened. | |
Static Public Member Functions | |
static UString | GetLibraryVersion () |
Get the version of the SRT library. | |
Secure Reliable Transport (SRT) Socket.
If the libsrt is not available during compilation of this class, all methods will fail with an error status.
|
inline |
Open the socket using parameters from the command line.
[in] | max_payload | Maximum payload size in bytes. Unset if NPOS. |
[in,out] | report | Where to report error. |
bool ts::SRTSocket::open | ( | SRTSocketMode | mode, |
const IPSocketAddress & | local, | ||
const IPSocketAddress & | remote, | ||
size_t | max_payload = NPOS , |
||
Report & | report = (ts::CerrReport::Instance()) |
||
) |
Open the socket.
[in] | mode | SRT socket mode. If set to DEFAULT, the mode must have been specified in the command line options. |
[in] | local | Local socket address. Ignored in DEFAULT mode. Optional local IP address used in CALLER mode. |
[in] | remote | Remote socket address. Ignored in DEFAULT and LISTENER modes. |
[in] | max_payload | Maximum payload size in bytes. Unset if NPOS. |
[in,out] | report | Where to report error. |
bool ts::SRTSocket::close | ( | Report & | report = (ts::CerrReport::Instance()) | ) |
Close the socket.
[in,out] | report | Where to report error. |
void ts::SRTSocket::defineArgs | ( | Args & | args | ) |
Add command line option definitions in an Args.
[in,out] | args | Command line arguments to update. |
bool ts::SRTSocket::loadArgs | ( | DuckContext & | duck, |
Args & | args | ||
) |
Load arguments from command line.
Args error indicator is set in case of incorrect arguments.
[in,out] | duck | TSDuck execution context. |
[in,out] | args | Command line arguments. |
|
inline |
Preset local and remote socket addresses in string form.
[in] | listener | Local "[address:]port". |
[in] | caller | Remote "address:port". |
[in] | local | Optional, can be empty. In caller mode, specify the local outgoing IP address. |
[in,out] | report | Where to report error. |
bool ts::SRTSocket::getPeers | ( | IPSocketAddress & | local, |
IPSocketAddress & | remote, | ||
Report & | report = (ts::CerrReport::Instance()) |
||
) |
Get the socket peers, local and remote.
[out] | local | Local socket address. |
[out] | remote | Remote socket address. |
[in,out] | report | Where to report error. |
bool ts::SRTSocket::send | ( | const void * | data, |
size_t | size, | ||
Report & | report = (ts::CerrReport::Instance()) |
||
) |
Send a message to the default destination address and port.
[in] | data | Address of the message to send. |
[in] | size | Size in bytes of the message to send. |
[in,out] | report | Where to report error. |
bool ts::SRTSocket::receive | ( | void * | data, |
size_t | max_size, | ||
size_t & | ret_size, | ||
Report & | report = (ts::CerrReport::Instance()) |
||
) |
Receive a message.
[out] | data | Address of the buffer for the received message. |
[in] | max_size | Size in bytes of the reception buffer. |
[out] | ret_size | Size in bytes of the received message. Will never be larger than max_size. |
[in,out] | report | Where to report error. |
bool ts::SRTSocket::receive | ( | void * | data, |
size_t | max_size, | ||
size_t & | ret_size, | ||
cn::microseconds & | timestamp, | ||
Report & | report = (ts::CerrReport::Instance()) |
||
) |
Receive a message with timestamp.
[out] | data | Address of the buffer for the received message. |
[in] | max_size | Size in bytes of the reception buffer. |
[out] | ret_size | Size in bytes of the received message. Will never be larger than max_size. |
[out] | timestamp | Source timestamp in micro-seconds, negative if not available. |
[in,out] | report | Where to report error. |
size_t ts::SRTSocket::totalSentBytes | ( | ) | const |
Get the total number of sent bytes since the socket was opened.
size_t ts::SRTSocket::totalReceivedBytes | ( | ) | const |
Get the total number of received bytes since the socket was opened.
bool ts::SRTSocket::peerDisconnected | ( | ) | const |
Check if the connection was disconnected by the peer.
This can be used after a send/receive error to differentiate between "end of session" and actual error.
bool ts::SRTSocket::reportStatistics | ( | SRTStatMode | mode = SRTStatMode::ALL , |
Report & | report = (ts::CerrReport::Instance()) |
||
) |
Get statistics about the socket and report them.
[in] | mode | Type of statistics to report (or'ing bitmask values is allowed). |
[in,out] | report | Where to report statistics and errors. |
bool ts::SRTSocket::getSockOpt | ( | int | optName, |
const char * | optNameStr, | ||
void * | optval, | ||
int & | optlen, | ||
Report & | report = (ts::CerrReport::Instance()) |
||
) | const |
Get SRT option.
[in] | optName | Option name as enumeration. The possible values for optName are given by the enumeration type SRT_SOCKOPT in libsrt. The profile of this method uses "int" to remain portable in the absence of libsrt, but the actual values come from SRT_SOCKOPT in libsrt. |
[in] | optNameStr | Option name as ASCII string. |
[out] | optval | Address of returned value. |
[in,out] | optlen | Size of returned buffer (input), updated to size of returned value. |
[in,out] | report | Where to report error. |
int ts::SRTSocket::getSocket | ( | ) | const |
Get the underlying SRT socket handle (use with care).
This method is reserved for low-level operations and should not be used by normal applications.
bool ts::SRTSocket::getMessageApi | ( | ) | const |
Check if the SRT socket uses the Message API.
|
static |
Get the version of the SRT library.