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]

List of all members.

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


Detailed Description

Defines the member functions for the ACE_SOCK datagram abstraction.

Member Typedef Documentation


Constructor & Destructor Documentation

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.


Member Function Documentation

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.

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

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.


Member Data Documentation

Declare the dynamic allocation hooks.

Reimplemented from ACE_SOCK.

Reimplemented in ACE_LSOCK_Dgram, ACE_SOCK_Dgram_Bcast, and ACE_SOCK_Dgram_Mcast.


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

Generated on Wed Apr 23 02:41:39 2008 for ACE by  doxygen 1.5.5