ACE
6.1.8
|
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. More... | |
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. More... | |
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)>). More... | |
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>). More... | |
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. More... | |
int | set_nic (const ACE_TCHAR *net_if, int addr_family=AF_UNSPEC) |
Set NIC to use as multicast interface. More... | |
![]() | |
int | set_option (int level, int option, void *optval, int optlen) const |
Wrapper around the setsockopt system call. More... | |
int | get_option (int level, int option, void *optval, int *optlen) const |
Wrapper around the getsockopt system call. More... | |
int | close (void) |
int | get_local_addr (ACE_Addr &) const |
int | get_remote_addr (ACE_Addr &) const |
void | dump (void) const |
Dump the state of an object. More... | |
int | open (int type, int protocol_family, int protocol, int reuse_addr) |
Wrapper around the BSD-style socket system call (no QoS). More... | |
int | open (int type, int protocol_family, int protocol, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr) |
Wrapper around the QoS-enabled WSASocket function. More... | |
![]() | |
int | control (int cmd, void *) const |
Interface for <ioctl>. More... | |
int | enable (int value) const |
int | disable (int value) const |
ACE_HANDLE | get_handle (void) const |
Get the underlying handle. More... | |
void | set_handle (ACE_HANDLE handle) |
Set the underlying handle. More... | |
void | dump (void) const |
Dump the state of an object. More... | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. More... | |
![]() | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. More... | |
![]() | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. More... | |
Protected Member Functions | |
int | shared_open (const ACE_Addr &local, int protocol_family) |
Open is shared by this and by <LSOCK_Dgram>. More... | |
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) |
![]() | |
ACE_SOCK (int type, int protocol_family, int protocol=0, int reuse_addr=0) | |
ACE_SOCK (int type, int protocol_family, int protocol, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr) | |
ACE_SOCK (void) | |
~ACE_SOCK (void) | |
Protected destructor. More... | |
![]() | |
ACE_IPC_SAP (void) | |
Default constructor. More... | |
~ACE_IPC_SAP (void) | |
Protected destructor. More... | |
Private Member Functions | |
int | get_remote_addr (ACE_Addr &) const |
Do not allow this function to percolate up to this interface... More... | |
Defines the member functions for the ACE_SOCK datagram abstraction.
|
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>.
|
inline |
Default dtor.
void ACE_SOCK_Dgram::dump | ( | void | ) | const |
Dump the state of an object.
|
private |
Do not allow this function to percolate up to this interface...
|
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.
|
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>.
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.
|
inline |
Recv <buffer_count> worth of buffers from addr using overlapped I/O (uses <WSARecvFrom>). Returns 0 on success.
|
inline |
Receive an n byte buf from the datagram socket (uses <WSARecvFrom>).
|
inline |
Send an n byte buf to the datagram socket (uses <sendto(3)>).
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)>).
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.
|
inline |
Send <buffer_count> worth of buffers to addr using overlapped I/O (uses <WSASendTo>). Returns 0 on success.
|
inline |
Send an n byte buf to the datagram socket (uses <WSASendTo>).
Set NIC to use as multicast interface.
|
protected |
Open is shared by this and by <LSOCK_Dgram>.
ACE_SOCK_Dgram::ACE_ALLOC_HOOK_DECLARE |
Declare the dynamic allocation hooks.