#include <SOCK_Dgram.h>
Public Types | |
typedef ACE_INET_Addr | PEER_ADDR |
Public Member Functions | |
ACE_SOCK_Dgram (void) | |
Default constructor. | |
ACE_SOCK_Dgram (const ACE_Addr &local, int protocol_family=ACE_PROTOCOL_FAMILY_INET, int protocol=0, int reuse_addr=0) | |
ACE_SOCK_Dgram (const ACE_Addr &local, int protocol_family, int protocol, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g=0, u_long flags=0, int reuse_addr=0) | |
int | open (const ACE_Addr &local, int protocol_family=ACE_PROTOCOL_FAMILY_INET, int protocol=0, int reuse_addr=0) |
int | open (const ACE_Addr &local, int protocol_family, int protocol, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g=0, u_long flags=0, int reuse_addr=0) |
~ACE_SOCK_Dgram (void) | |
Default dtor. | |
ssize_t | send (const void *buf, size_t n, const ACE_Addr &addr, int flags=0) const |
Send an n byte buf to the datagram socket (uses <sendto(3)>). | |
ssize_t | recv (void *buf, size_t n, ACE_Addr &addr, int flags=0) const |
ssize_t | recv (iovec *io_vec, ACE_Addr &addr, int flags=0, const ACE_Time_Value *timeout=0) const |
ssize_t | send (const iovec iov[], int n, const ACE_Addr &addr, int flags=0) const |
ssize_t | recv (iovec iov[], int n, ACE_Addr &addr, int flags=0) const |
ssize_t | recv (void *buf, size_t n, ACE_Addr &addr, int flags, const ACE_Time_Value *timeout) const |
ssize_t | send (const void *buf, size_t n, const ACE_Addr &addr, int flags, const ACE_Time_Value *timeout) const |
ssize_t | send (const iovec buffers[], int buffer_count, size_t &number_of_bytes_sent, int flags, const ACE_Addr &addr, ACE_OVERLAPPED *overlapped, ACE_OVERLAPPED_COMPLETION_FUNC func) const |
ssize_t | recv (iovec buffers[], int buffer_count, size_t &number_of_bytes_recvd, int &flags, ACE_Addr &addr, ACE_OVERLAPPED *overlapped, ACE_OVERLAPPED_COMPLETION_FUNC func) const |
ssize_t | send (const void *buf, size_t n, const ACE_Addr &addr, int flags, ACE_OVERLAPPED *overlapped, ACE_OVERLAPPED_COMPLETION_FUNC func) const |
Send an n byte buf to the datagram socket (uses <WSASendTo>). | |
ssize_t | recv (void *buf, size_t n, ACE_Addr &addr, int flags, ACE_OVERLAPPED *overlapped, ACE_OVERLAPPED_COMPLETION_FUNC func) const |
void | dump (void) const |
Dump the state of an object. | |
int | set_nic (const ACE_TCHAR *net_if, int addr_family=AF_UNSPEC) |
Set NIC to use as multicast interface. | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. | |
Protected Member Functions | |
int | shared_open (const ACE_Addr &local, int protocol_family) |
Open is shared by this and by <LSOCK_Dgram>. | |
int | make_multicast_ifaddr (ip_mreq *mreq, const ACE_INET_Addr &mcast_addr, const ACE_TCHAR *net_if) |
int | make_multicast_ifaddr6 (ipv6_mreq *mreq, const ACE_INET_Addr &mcast_addr, const ACE_TCHAR *net_if) |
Private Member Functions | |
int | get_remote_addr (ACE_Addr &) const |
Do not allow this function to percolate up to this interface... |
ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_SOCK_Dgram::ACE_SOCK_Dgram | ( | void | ) |
Default constructor.
ACE_SOCK_Dgram::ACE_SOCK_Dgram | ( | const ACE_Addr & | local, | |
int | protocol_family = ACE_PROTOCOL_FAMILY_INET , |
|||
int | protocol = 0 , |
|||
int | reuse_addr = 0 | |||
) |
This is a BSD-style method (i.e., no QoS) for initiating a socket dgram that will accept datagrams at the <local> address.
ACE_SOCK_Dgram::ACE_SOCK_Dgram | ( | const ACE_Addr & | local, | |
int | protocol_family, | |||
int | protocol, | |||
ACE_Protocol_Info * | protocolinfo, | |||
ACE_SOCK_GROUP | g = 0 , |
|||
u_long | flags = 0 , |
|||
int | reuse_addr = 0 | |||
) |
This is a QoS-enabed method for initiating a socket dgram that will accept datagrams at the <local> address. The qos_params are passed to <ACE_OS::join_leaf>.
ACE_INLINE ACE_SOCK_Dgram::~ACE_SOCK_Dgram | ( | void | ) |
Default dtor.
int ACE_SOCK_Dgram::open | ( | const ACE_Addr & | local, | |
int | protocol_family = ACE_PROTOCOL_FAMILY_INET , |
|||
int | protocol = 0 , |
|||
int | reuse_addr = 0 | |||
) |
This is a BSD-style method (i.e., no QoS) for initiating a socket dgram that will accept datagrams at the <local> address.
int ACE_SOCK_Dgram::open | ( | const ACE_Addr & | local, | |
int | protocol_family, | |||
int | protocol, | |||
ACE_Protocol_Info * | protocolinfo, | |||
ACE_SOCK_GROUP | g = 0 , |
|||
u_long | flags = 0 , |
|||
int | reuse_addr = 0 | |||
) |
This is a QoS-enabed method for initiating a socket dgram that will accept datagrams at the <local> address. The qos_params are passed to <ACE_OS::join_leaf>.
ACE_INLINE ssize_t ACE_SOCK_Dgram::send | ( | const void * | buf, | |
size_t | n, | |||
const ACE_Addr & | addr, | |||
int | flags = 0 | |||
) | const |
Send an n byte buf to the datagram socket (uses <sendto(3)>).
Reimplemented in ACE_SOCK_Dgram_Bcast.
ACE_INLINE ssize_t ACE_SOCK_Dgram::recv | ( | void * | buf, | |
size_t | n, | |||
ACE_Addr & | addr, | |||
int | flags = 0 | |||
) | const |
Receive an n byte buf from the datagram socket (uses <recvfrom(3)>).
ssize_t ACE_SOCK_Dgram::recv | ( | iovec * | io_vec, | |
ACE_Addr & | addr, | |||
int | flags = 0 , |
|||
const ACE_Time_Value * | timeout = 0 | |||
) | const |
Allows a client to read from a socket without having to provide a buffer to read. This method determines how much data is in the socket, allocates a buffer of this size, reads in the data, and returns the number of bytes read. The caller is responsible for deleting the member in the <iov_base> field of <io_vec> using the ``delete []'' syntax.
ssize_t ACE_SOCK_Dgram::send | ( | const iovec | iov[], | |
int | n, | |||
const ACE_Addr & | addr, | |||
int | flags = 0 | |||
) | const |
Send an <iovec> of size n to the datagram socket (uses <sendmsg(3)>).
Reimplemented in ACE_SOCK_Dgram_Bcast.
Recv an <iovec> of size n to the datagram socket (uses <recvmsg(3)>).
ssize_t ACE_SOCK_Dgram::recv | ( | void * | buf, | |
size_t | n, | |||
ACE_Addr & | addr, | |||
int | flags, | |||
const ACE_Time_Value * | timeout | |||
) | const |
Wait up to timeout amount of time to receive a datagram into buf. The ACE_Time_Value indicates how long to blocking trying to receive. If timeout == 0, the caller will block until action is possible, else will wait until the relative time specified in *timeout elapses). If <recv> times out a -1 is returned with errno
== ETIME. If it succeeds the number of bytes received is returned.
ssize_t ACE_SOCK_Dgram::send | ( | const void * | buf, | |
size_t | n, | |||
const ACE_Addr & | addr, | |||
int | flags, | |||
const ACE_Time_Value * | timeout | |||
) | const |
Wait up to timeout amount of time to send a datagram to buf. The ACE_Time_Value indicates how long to blocking trying to receive. If timeout == 0, the caller will block until action is possible, else will wait until the relative time specified in *timeout elapses). If <send> times out a -1 is returned with errno
== ETIME. If it succeeds the number of bytes sent is returned.
ACE_INLINE ssize_t ACE_SOCK_Dgram::send | ( | const iovec | buffers[], | |
int | buffer_count, | |||
size_t & | number_of_bytes_sent, | |||
int | flags, | |||
const ACE_Addr & | addr, | |||
ACE_OVERLAPPED * | overlapped, | |||
ACE_OVERLAPPED_COMPLETION_FUNC | func | |||
) | const |
Send <buffer_count> worth of buffers to addr using overlapped I/O (uses <WSASendTo>). Returns 0 on success.
ACE_INLINE ssize_t ACE_SOCK_Dgram::recv | ( | iovec | buffers[], | |
int | buffer_count, | |||
size_t & | number_of_bytes_recvd, | |||
int & | flags, | |||
ACE_Addr & | addr, | |||
ACE_OVERLAPPED * | overlapped, | |||
ACE_OVERLAPPED_COMPLETION_FUNC | func | |||
) | const |
Recv <buffer_count> worth of buffers from addr using overlapped I/O (uses <WSARecvFrom>). Returns 0 on success.
ACE_INLINE ssize_t ACE_SOCK_Dgram::send | ( | const void * | buf, | |
size_t | n, | |||
const ACE_Addr & | addr, | |||
int | flags, | |||
ACE_OVERLAPPED * | overlapped, | |||
ACE_OVERLAPPED_COMPLETION_FUNC | func | |||
) | const |
Send an n byte buf to the datagram socket (uses <WSASendTo>).
ACE_INLINE ssize_t ACE_SOCK_Dgram::recv | ( | void * | buf, | |
size_t | n, | |||
ACE_Addr & | addr, | |||
int | flags, | |||
ACE_OVERLAPPED * | overlapped, | |||
ACE_OVERLAPPED_COMPLETION_FUNC | func | |||
) | const |
Receive an n byte buf from the datagram socket (uses <WSARecvFrom>).
ACE_BEGIN_VERSIONED_NAMESPACE_DECL void ACE_SOCK_Dgram::dump | ( | void | ) | const |
Dump the state of an object.
Reimplemented from ACE_SOCK.
Reimplemented in ACE_LSOCK_Dgram, ACE_SOCK_Dgram_Bcast, and ACE_SOCK_Dgram_Mcast.
int ACE_SOCK_Dgram::set_nic | ( | const ACE_TCHAR * | net_if, | |
int | addr_family = AF_UNSPEC | |||
) |
Set NIC to use as multicast interface.
int ACE_SOCK_Dgram::shared_open | ( | const ACE_Addr & | local, | |
int | protocol_family | |||
) | [protected] |
Open is shared by this and by <LSOCK_Dgram>.
int ACE_SOCK_Dgram::make_multicast_ifaddr | ( | ip_mreq * | mreq, | |
const ACE_INET_Addr & | mcast_addr, | |||
const ACE_TCHAR * | net_if | |||
) | [protected] |
Create a multicast addr/if pair, in format useful for system calls. If mreq param is NULL, just verify the passed addr/interface specs.
int ACE_SOCK_Dgram::make_multicast_ifaddr6 | ( | ipv6_mreq * | mreq, | |
const ACE_INET_Addr & | mcast_addr, | |||
const ACE_TCHAR * | net_if | |||
) | [protected] |
Create a multicast addr/if pair, in format useful for system calls. If mreq param is NULL, just verify the passed addr/interface specs.
int ACE_SOCK_Dgram::get_remote_addr | ( | ACE_Addr & | ) | const [private] |
Do not allow this function to percolate up to this interface...
Reimplemented from ACE_SOCK.
Reimplemented in ACE_SOCK_Dgram_Bcast.
Declare the dynamic allocation hooks.
Reimplemented from ACE_SOCK.
Reimplemented in ACE_LSOCK_Dgram, ACE_SOCK_Dgram_Bcast, and ACE_SOCK_Dgram_Mcast.