# ACE_SOCK_Dgram_Mcast_QoS Class Reference

Defines the member functions for the ACE QoS enabled socket wrapper for UDP/IP multicast. More...

`#include <SOCK_Dgram_Mcast_QoS.h>`

Inheritance diagram for ACE_SOCK_Dgram_Mcast_QoS:

[legend]
Collaboration diagram for ACE_SOCK_Dgram_Mcast_QoS:

[legend]
List of all members.

## Public Member Functions

| ACE_SOCK_Dgram_Mcast_QoS (options opts=DEFOPTS)
| Ctor, has same defaults as ACE_SOCK_Dgram_Mcast.
| ~ACE_SOCK_Dgram_Mcast_QoS (void)
| Default dtor.
int | subscribe (const ACE_INET_Addr &mcast_addr, const ACE_QoS_Params &qos_params, int reuse_addr=1, const ACE_TCHAR *net_if=0, int protocol_family=PF_INET, int protocol=0, ACE_Protocol_Info *protocolinfo=0, ACE_SOCK_GROUP g=0, u_long flags=0, ACE_QoS_Session *qos_session=0)
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 | 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 <wsasentto>).
ACE_QoS_Manager | qos_manager (void)
| Returns the QoS manager for this socket.
int | open (const ACE_INET_Addr &addr, const ACE_QoS_Params &qos_params, int protocol_family=PF_INET, int protocol=0, ACE_Protocol_Info *protocolinfo=0, ACE_SOCK_GROUP g=0, u_long flags=0, int reuse_addr=0)

## Public Attributes

| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.

## Private Member Functions

int | subscribe_ifs (const ACE_INET_Addr &mcast_addr, const ACE_QoS_Params &qos_params, const ACE_TCHAR *net_if, int protocol_family, int protocol, int reuse_addr, ACE_Protocol_Info *protocolinfo)
| Subscribe to the multicast interface using QoS-enabled semantics.

## Private Attributes

ACE_QoS_Manager | qos_manager_
| Manages the QoS sessions that this socket subscribes to.

## Detailed Description

Defines the member functions for the ACE QoS enabled socket wrapper for UDP/IP multicast.

## Constructor & Destructor Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_SOCK_Dgram_Mcast_QoS::ACE_SOCK_Dgram_Mcast_QoS | ( | options | opts = `DEFOPTS` | ) |

| Ctor, has same defaults as ACE_SOCK_Dgram_Mcast.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_SOCK_Dgram_Mcast_QoS::~ACE_SOCK_Dgram_Mcast_QoS | ( | void |  | ) |

| Default dtor.

## Member Function Documentation

int ACE_SOCK_Dgram_Mcast_QoS::open | ( | const ACE_INET_Addr & | addr,
|  | const ACE_QoS_Params & | qos_params,
|  | int | protocol_family = `PF_INET`,
|  | int | protocol = `0`,
|  | ACE_Protocol_Info * | protocolinfo = `0`,
|  | ACE_SOCK_GROUP | g = `0`,
|  | u_long | flags = `0`,
|  | int | reuse_addr = `0`
| ) |

ACE_INLINE ACE_QoS_Manager ACE_SOCK_Dgram_Mcast_QoS::qos_manager | ( | void |  | ) |

| Returns the QoS manager for this socket.

ACE_INLINE ssize_t ACE_SOCK_Dgram_Mcast_QoS::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 <wsasentto>). Reimplemented from ACE_SOCK_Dgram.

ACE_INLINE ssize_t ACE_SOCK_Dgram_Mcast_QoS::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 <wsasentto>). Returns 0 on success. Reimplemented from ACE_SOCK_Dgram.

int ACE_SOCK_Dgram_Mcast_QoS::subscribe | ( | const ACE_INET_Addr & | mcast_addr,
|  | const ACE_QoS_Params & | qos_params,
|  | int | reuse_addr = `1`,
|  | const ACE_TCHAR * | net_if = `0`,
|  | int | protocol_family = `PF_INET`,
|  | int | protocol = `0`,
|  | ACE_Protocol_Info * | protocolinfo = `0`,
|  | ACE_SOCK_GROUP | g = `0`,
|  | u_long | flags = `0`,
|  | ACE_QoS_Session * | qos_session = `0`
| ) |

This is a QoS-enabled method for joining a multicast group, which passes <qos_params> via <ACE_OS::join_leaf>. The network interface device driver is instructed to accept datagrams with <mcast_addr> multicast addresses. If the socket has already been opened, <subscribe> closes the socket and opens a new socket bound to the <mcast_addr>. The session object specifies the QoS session that the socket wants to subscribe to. A socket may subscribe to multiple QoS sessions by calling this method multiple times with different session objects.

The <net_if> interface is hardware specific, e.g., use "netstat -i" to find whether your interface is, such as "le0" or something else. If net_if == 0, <subscribe> uses the default mcast interface. Returns: -1 if the call fails.

Note that some platforms, such as pSoS, support only number, not names, for network interfaces. For these platforms, just give these numbers in alphanumeric form and <subscribe> will convert them into numbers via <ACE_OS::atoi>.

int ACE_SOCK_Dgram_Mcast_QoS::subscribe_ifs | ( | const ACE_INET_Addr & | mcast_addr,
|  | const ACE_QoS_Params & | qos_params,
|  | const ACE_TCHAR * | net_if,
|  | int | protocol_family,
|  | int | protocol,
|  | int | reuse_addr,
|  | ACE_Protocol_Info * | protocolinfo
| ) | `[private]`

| Subscribe to the multicast interface using QoS-enabled semantics.

## Member Data Documentation

ACE_SOCK_Dgram_Mcast_QoS::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented from ACE_SOCK_Dgram_Mcast.

ACE_QoS_Manager ACE_SOCK_Dgram_Mcast_QoS::qos_manager_`[private]`

| Manages the QoS sessions that this socket subscribes to.

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

- SOCK_Dgram_Mcast_QoS.h
- SOCK_Dgram_Mcast_QoS.cpp
- SOCK_Dgram_Mcast_QoS.i