Open Lighting Architecture
Latest Git
|
Public Member Functions | |
bool | Init () |
Initialize the socket. More... | |
bool | Bind (const IPV4SocketAddress &endpoint) |
Bind this socket to an external address:port. More... | |
bool | GetSocketAddress (IPV4SocketAddress *address) const |
Return the local address this socket is bound to. More... | |
bool | Close () |
Close the socket. More... | |
ola::io::DescriptorHandle | ReadDescriptor () const |
Returns the read descriptor for this socket. More... | |
ola::io::DescriptorHandle | WriteDescriptor () const |
Returns the write descriptor for this socket. More... | |
ssize_t | SendTo (const uint8_t *buffer, unsigned int size, const IPV4Address &ip, unsigned short port) const |
Send data on this UDPSocket. More... | |
ssize_t | SendTo (const uint8_t *buffer, unsigned int size, const IPV4SocketAddress &dest) const |
Send data on this UDPSocket. More... | |
ssize_t | SendTo (ola::io::IOVecInterface *data, const IPV4Address &ip, unsigned short port) const |
Send data from an IOVecInterface. More... | |
ssize_t | SendTo (ola::io::IOVecInterface *data, const IPV4SocketAddress &dest) const |
Send data from an IOVecInterface. More... | |
bool | RecvFrom (uint8_t *buffer, ssize_t *data_read) const |
Receive data. More... | |
bool | RecvFrom (uint8_t *buffer, ssize_t *data_read, IPV4Address &source) const |
Receive data. More... | |
bool | RecvFrom (uint8_t *buffer, ssize_t *data_read, IPV4Address &source, uint16_t &port) const |
Receive data and record the src address & port. More... | |
bool | RecvFrom (uint8_t *buffer, ssize_t *data_read, IPV4SocketAddress *source) |
Receive a datagram on the UDP Socket. More... | |
bool | EnableBroadcast () |
Enable broadcasting for this socket. More... | |
bool | SetMulticastInterface (const IPV4Address &iface) |
Set the outgoing interface to be used for multicast transmission. More... | |
bool | JoinMulticast (const IPV4Address &iface, const IPV4Address &group, bool multicast_loop=false) |
Join a multicast group. More... | |
bool | LeaveMulticast (const IPV4Address &iface, const IPV4Address &group) |
Leave a multicast group. More... | |
bool | SetTos (uint8_t tos) |
Set the tos field for a socket. More... | |
Public Member Functions inherited from ola::io::BidirectionalFileDescriptor | |
void | SetOnData (ola::Callback0< void > *on_read) |
Set the callback to be run when data is available for reading. More... | |
void | SetOnWritable (ola::Callback0< void > *on_write) |
Set the callback to be run when the descriptor can be written to. More... | |
void | PerformRead () |
Called when there is data available on the descriptor. More... | |
void | PerformWrite () |
Called when the descriptor can be written to. More... | |
Public Member Functions inherited from ola::io::ReadFileDescriptor | |
bool | ValidReadDescriptor () const |
Check if this file descriptor is valid. More... | |
Public Member Functions inherited from ola::io::WriteFileDescriptor | |
bool | ValidWriteDescriptor () const |
Check if this file descriptor is valid. More... | |
|
virtual |
Bind this socket to an external address:port.
endpoint | the local socket address to bind to. |
Implements ola::network::UDPSocketInterface.
|
virtual |
Close the socket.
Implements ola::network::UDPSocketInterface.
|
virtual |
Enable broadcasting for this socket.
Implements ola::network::UDPSocketInterface.
|
virtual |
Return the local address this socket is bound to.
[out] | address | the local socket address this socket is bound to. |
Implements ola::network::UDPSocketInterface.
|
virtual |
Initialize the socket.
Implements ola::network::UDPSocketInterface.
|
virtual |
Join a multicast group.
iface | the address of the interface to use. |
group | the address of the group to join |
multicast_loop | enable multicast loop |
Implements ola::network::UDPSocketInterface.
|
virtual |
Leave a multicast group.
iface | the address of the interface to use. |
group | the address of the group to join |
Implements ola::network::UDPSocketInterface.
|
inlinevirtual |
Returns the read descriptor for this socket.
Implements ola::network::UDPSocketInterface.
|
virtual |
Receive data.
buffer | the buffer to store the data |
data_read | the size of the buffer, updated with the number of bytes read |
Implements ola::network::UDPSocketInterface.
|
virtual |
Receive data.
buffer | the buffer to store the data |
data_read | the size of the buffer, updated with the number of bytes read |
source | the src ip of the packet |
Implements ola::network::UDPSocketInterface.
|
virtual |
Receive data and record the src address & port.
buffer | the buffer to store the data |
data_read | the size of the buffer, updated with the number of bytes read |
source | the src ip of the packet |
port | the src port of the packet in host byte order |
Implements ola::network::UDPSocketInterface.
|
virtual |
Receive a datagram on the UDP Socket.
buffer | the buffer to store the data |
data_read | the size of the buffer, updated with the number of bytes read |
source | the source of the datagram. |
Implements ola::network::UDPSocketInterface.
|
virtual |
Send data on this UDPSocket.
buffer | the data to send |
size | the length of the data |
ip | the IP to send to |
port | the port to send to in HOST byte order. |
Implements ola::network::UDPSocketInterface.
|
virtual |
Send data on this UDPSocket.
buffer | the data to send |
size | the length of the data |
dest | the IP:Port to send the datagram to. |
Implements ola::network::UDPSocketInterface.
|
virtual |
Send data from an IOVecInterface.
data | the IOVecInterface class to send. |
ip | the IP to send to |
port | the port to send to in HOST byte order. |
This will try to send as much data as possible. If the data exceeds the MTU the UDP packet will probably get fragmented at the IP layer (depends on OS really). Try to avoid this.
Implements ola::network::UDPSocketInterface.
|
virtual |
Send data from an IOVecInterface.
data | the IOVecInterface class to send. |
dest | the IPV4SocketAddress to send to |
This will try to send as much data as possible. If the data exceeds the MTU the UDP packet will probably get fragmented at the IP layer (depends on OS really). Try to avoid this.
Implements ola::network::UDPSocketInterface.
|
virtual |
Set the outgoing interface to be used for multicast transmission.
iface | the address of the interface to use. |
Implements ola::network::UDPSocketInterface.
|
virtual |
Set the tos field for a socket.
tos | the tos field |
Implements ola::network::UDPSocketInterface.
|
inlinevirtual |
Returns the write descriptor for this socket.
Implements ola::network::UDPSocketInterface.