|
ACE
6.0.6
|
Defines the member functions for the ACE_SOCK datagram abstraction. More...
#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... | |
Defines the member functions for the ACE_SOCK datagram abstraction.
| ACE_SOCK_Dgram::ACE_SOCK_Dgram | ( | void | ) | [inline] |
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_SOCK_Dgram::~ACE_SOCK_Dgram | ( | void | ) | [inline] |
Default dtor.
| void ACE_SOCK_Dgram::dump | ( | void | ) | const |
Dump the state of an object.
Reimplemented from ACE_SOCK.
Reimplemented in ACE_SOCK_Dgram_Mcast, ACE_SOCK_Dgram_Bcast, and ACE_LSOCK_Dgram.
| 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.
| 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::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>.
| ssize_t ACE_SOCK_Dgram::recv | ( | void * | buf, |
| size_t | n, | ||
| ACE_Addr & | addr, | ||
| int | flags = 0 |
||
| ) | const [inline] |
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.
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::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 [inline] |
Recv <buffer_count> worth of buffers from addr using overlapped I/O (uses <WSARecvFrom>). Returns 0 on success.
| 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 [inline] |
Receive an n byte buf from the datagram socket (uses <WSARecvFrom>).
| ssize_t ACE_SOCK_Dgram::send | ( | const void * | buf, |
| size_t | n, | ||
| const ACE_Addr & | addr, | ||
| int | flags = 0 |
||
| ) | const [inline] |
Send an n byte buf to the datagram socket (uses <sendto(3)>).
Reimplemented in ACE_SOCK_Dgram_Bcast.
| 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.
| 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.
| 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 [inline] |
Send <buffer_count> worth of buffers to addr using overlapped I/O (uses <WSASendTo>). Returns 0 on success.
| 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 [inline] |
Send an n byte buf to the datagram socket (uses <WSASendTo>).
| 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>.
Declare the dynamic allocation hooks.
Reimplemented from ACE_SOCK.
Reimplemented in ACE_SOCK_Dgram_Mcast, ACE_SOCK_Dgram_Bcast, and ACE_LSOCK_Dgram.
1.7.5