NAME

ACE_SOCK_Dgram_Mcast - Defines the member functions for the ACE socket wrapper for UDP/IP multicast.

SYNOPSIS

#include <ace/SOCK_Dgram_Mcast.h>

class ACE_SOCK_Dgram_Mcast : public ACE_SOCK_Dgram { public: ACE_SOCK_Dgram_Mcast (void); ~ACE_SOCK_Dgram_Mcast (void); int subscribe ( const ACE_INET_Addr &mcast_addr, int reuse_addr = 1, const ASYS_TCHAR *net_if = 0, int protocol_family = PF_INET, int protocol = 0 ); int subscribe ( const ACE_INET_Addr &mcast_addr, const ACE_QoS_Params &qos_params, int reuse_addr = 1, const ASYS_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 ); int unsubscribe ( const ACE_INET_Addr &mcast_addr, const ASYS_TCHAR *net_if = 0, int protocol_family = PF_INET, int protocol = 0 ); int unsubscribe (void); ssize_t send (const void *buf, size_t n, int flags = 0) const; ssize_t send (const iovec iov[], size_t n, int flags = 0) 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 send ( const void *buf, size_t n, const ACE_Addr &addr, int flags, ACE_OVERLAPPED *overlapped, ACE_OVERLAPPED_COMPLETION_FUNC func ) const; int set_option (int option, char optval); void dump (void) const; ACE_ALLOC_HOOK_DECLARE; private: int open ( const ACE_Addr &mcast_addr, int protocol_family = PF_INET, int protocol = 0, int reuse_addr = 0 ); int open ( const ACE_Addr &mcast_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 ); int subscribe_ifs ( const ACE_INET_Addr &mcast_addr, const ASYS_TCHAR *net_if, int protocol_family, int protocol, int reuse_addr ); int subscribe_ifs ( const ACE_INET_Addr &mcast_addr, const ACE_QoS_Params &qos_params, const ASYS_TCHAR *net_if, int protocol_family, int protocol, int reuse_addr, ACE_Protocol_Info *protocolinfo ); int unsubscribe_ifs ( const ACE_INET_Addr &mcast_addr, const ASYS_TCHAR *net_if = 0, int protocol_family = PF_INET, int protocol = 0 ); ssize_t send ( const void *buf, size_t n, const ACE_Addr &addr, int flags = 0 ) const; ssize_t send ( const iovec iov[], size_t n, const ACE_Addr &addr, int flags = 0 ) const; int make_multicast_address ( const ACE_INET_Addr &mcast_addr, const ASYS_TCHAR *net_if = ASYS_TEXT ("le0") ); int make_multicast_address_i ( const ACE_INET_Addr &mcast_addr, ip_mreq& multicast_address, const ASYS_TCHAR *net_if = ASYS_TEXT ("le0") ); ACE_INET_Addr mcast_addr_; ip_mreq mcast_request_if_; };

Initialization routine.

ACE_SOCK_Dgram_Mcast (void);

~ACE_SOCK_Dgram_Mcast (void);

Multicast group management routines.

int subscribe (
    const ACE_INET_Addr &mcast_addr,
    int reuse_addr = 1,
    const ASYS_TCHAR *net_if = 0,
    int protocol_family = PF_INET,
    int protocol = 0
    );

int subscribe (
    const ACE_INET_Addr &mcast_addr,
    const ACE_QoS_Params &qos_params,
    int reuse_addr = 1,
    const ASYS_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
    );

int unsubscribe (
    const ACE_INET_Addr &mcast_addr,
    const ASYS_TCHAR *net_if = 0,
    int protocol_family = PF_INET,
    int protocol = 0
    );

int unsubscribe (void);

Data transfer routines.

ssize_t send (const void *buf, size_t n, int flags = 0) const;

ssize_t send (const iovec iov[], size_t n, int flags = 0) 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 send (
    const void *buf,
    size_t n,
    const ACE_Addr &addr,
    int flags,
    ACE_OVERLAPPED *overlapped,
    ACE_OVERLAPPED_COMPLETION_FUNC func
    ) const;

Options.

int set_option (int option, char optval);

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

AUTHORS

Irfan Pyrali irfan@cs.wustl.edu, Tim Harrison harrison@cs.wustl.edu, and Douglas C. Schmidt schmidt@cs.wustl.edu

LIBRARY

ace