ACE 8.0.1
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Private Member Functions | List of all members
ACE_SOCK_Dgram Class Reference

Defines the member functions for the ACE_SOCK datagram abstraction. More...

#include <SOCK_Dgram.h>

Inheritance diagram for ACE_SOCK_Dgram:
Inheritance graph
[legend]
Collaboration diagram for ACE_SOCK_Dgram:
Collaboration graph
[legend]

Public Types

typedef ACE_INET_Addr PEER_ADDR
 

Public Member Functions

 ACE_SOCK_Dgram ()
 Default constructor.
 
 ACE_SOCK_Dgram (const ACE_Addr &local, int protocol_family=ACE_PROTOCOL_FAMILY_INET, int protocol=0, int reuse_addr=0, int ipv6_only=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 ipv6_only=0)
 
int open (const ACE_Addr &local, int protocol_family=ACE_PROTOCOL_FAMILY_INET, int protocol=0, int reuse_addr=0, int ipv6_only=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, int ipv6_only=0)
 
 ~ACE_SOCK_Dgram ()
 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, ACE_INET_Addr *to_addr=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 () 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 Member Functions inherited from ACE_SOCK
int set_option (int level, int option, void *optval, int optlen) const
 Wrapper around the setsockopt system call.
 
int get_option (int level, int option, void *optval, int *optlen) const
 Wrapper around the getsockopt system call.
 
int close ()
 
int get_local_addr (ACE_Addr &) const
 
int get_remote_addr (ACE_Addr &) const
 
void dump () const
 Dump the state of an object.
 
int open (int type, int protocol_family, int protocol, int reuse_addr)
 Wrapper around the BSD-style socket system call (no QoS).
 
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.
 
- Public Member Functions inherited from ACE_IPC_SAP
int control (int cmd, void *) const
 Interface for <ioctl>.
 
int enable (int value) const
 
int disable (int value) const
 
ACE_HANDLE get_handle () const
 Get the underlying handle.
 
void set_handle (ACE_HANDLE handle)
 Set the underlying handle.
 
void dump () const
 Dump the state of an object.
 

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.
 
- Public Attributes inherited from ACE_SOCK
 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.
 
- Public Attributes inherited from ACE_IPC_SAP
 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.
 

Protected Member Functions

int shared_open (const ACE_Addr &local, int protocol_family, int ipv6_only=0)
 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)
 
- Protected Member Functions inherited from ACE_SOCK
 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 ()
 
 ~ACE_SOCK ()=default
 Protected destructor.
 
- Protected Member Functions inherited from ACE_IPC_SAP
 ACE_IPC_SAP ()
 Default constructor.
 
 ~ACE_IPC_SAP ()
 Protected destructor.
 

Private Member Functions

int get_remote_addr (ACE_Addr &) const
 Do not allow this function to percolate up to this interface...
 

Detailed Description

Defines the member functions for the ACE_SOCK datagram abstraction.

Member Typedef Documentation

◆ PEER_ADDR

Constructor & Destructor Documentation

◆ ACE_SOCK_Dgram() [1/3]

ACE_SOCK_Dgram::ACE_SOCK_Dgram ( )
inline

Default constructor.

◆ ACE_SOCK_Dgram() [2/3]

ACE_SOCK_Dgram::ACE_SOCK_Dgram ( const ACE_Addr & local,
int protocol_family = ACE_PROTOCOL_FAMILY_INET,
int protocol = 0,
int reuse_addr = 0,
int ipv6_only = 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() [3/3]

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,
int ipv6_only = 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::~ACE_SOCK_Dgram ( )
inline

Default dtor.

Member Function Documentation

◆ dump()

void ACE_SOCK_Dgram::dump ( ) const

Dump the state of an object.

◆ get_remote_addr()

int ACE_SOCK_Dgram::get_remote_addr ( ACE_Addr & ) const
private

Do not allow this function to percolate up to this interface...

◆ make_multicast_ifaddr()

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.

◆ make_multicast_ifaddr6()

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.

◆ open() [1/2]

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,
int ipv6_only = 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>.

◆ open() [2/2]

int ACE_SOCK_Dgram::open ( const ACE_Addr & local,
int protocol_family = ACE_PROTOCOL_FAMILY_INET,
int protocol = 0,
int reuse_addr = 0,
int ipv6_only = 0 )

This is a BSD-style method (i.e., no QoS) for initiating a socket dgram that will accept datagrams at the <local> address.

◆ recv() [1/6]

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() [2/6]

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.

◆ recv() [3/6]

ssize_t ACE_SOCK_Dgram::recv ( iovec iov[],
int n,
ACE_Addr & addr,
int flags = 0,
ACE_INET_Addr * to_addr = 0 ) const

Recv an <iovec> of size n to the datagram socket (uses <recvmsg(3)>). The IP destination address will be placed in *to_addr if it is not null and set_option has been called with 1) level IPPROTO_IP, option ACE_RECVPKTINFO, and value 1 for IPV4 addresses or 2) IPPROTO_IPV6, option ACE_RECVPKTINFO6, and value 1 for IPV6 addresses.

◆ recv() [4/6]

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>).

◆ recv() [5/6]

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.

◆ recv() [6/6]

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)>).

◆ send() [1/5]

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.

◆ send() [2/5]

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)>).

Send an iovec of size N to ADDR as a datagram (connectionless version).

◆ send() [3/5]

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>).

◆ send() [4/5]

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.

◆ send() [5/5]

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)>).

◆ set_nic()

int ACE_SOCK_Dgram::set_nic ( const ACE_TCHAR * net_if,
int addr_family = AF_UNSPEC )

Set NIC to use as multicast interface.

◆ shared_open()

int ACE_SOCK_Dgram::shared_open ( const ACE_Addr & local,
int protocol_family,
int ipv6_only = 0 )
protected

Open is shared by this and by <LSOCK_Dgram>.

Member Data Documentation

◆ ACE_ALLOC_HOOK_DECLARE

ACE_SOCK_Dgram::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.


The documentation for this class was generated from the following files: