![]() |
TSDuck v3.43-4480
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.