summaryrefslogtreecommitdiff
path: root/ace/SOCK_Dgram_Mcast.h
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-11-01 22:17:39 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-11-01 22:17:39 +0000
commit53284e215e3d3351a7d7e9c4b68f14b427fb4377 (patch)
tree97236ece363cff48fd287c780db4290da39b02cb /ace/SOCK_Dgram_Mcast.h
parent7b7c52ad2abd228138ba1a948d5e28bf6dc3b880 (diff)
downloadATCD-53284e215e3d3351a7d7e9c4b68f14b427fb4377.tar.gz
ChangeLogTag:Wed Nov 1 14:11:48 2000 Carlos O'Ryan <coryan@uci.edu>
Diffstat (limited to 'ace/SOCK_Dgram_Mcast.h')
-rw-r--r--ace/SOCK_Dgram_Mcast.h157
1 files changed, 82 insertions, 75 deletions
diff --git a/ace/SOCK_Dgram_Mcast.h b/ace/SOCK_Dgram_Mcast.h
index 1d11961d3ef..7d9269f0bd4 100644
--- a/ace/SOCK_Dgram_Mcast.h
+++ b/ace/SOCK_Dgram_Mcast.h
@@ -1,20 +1,17 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// SOCK_Dgram_Mcast.h
-//
-// = AUTHORS
-// Irfan Pyrali <irfan@cs.wustl.edu>,
-// Tim Harrison <harrison@cs.wustl.edu>, and
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file SOCK_Dgram_Mcast.h
+ *
+ * $Id$
+ *
+ * @author Irfan Pyrali <irfan@cs.wustl.edu>
+ * @author Tim Harrison <harrison@cs.wustl.edu>
+ * @author and Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_SOCK_DGRAM_MCAST_H
#define ACE_SOCK_DGRAM_MCAST_H
@@ -28,99 +25,111 @@
#include "ace/INET_Addr.h"
+/**
+ * @class ACE_SOCK_Dgram_Mcast
+ *
+ * @brief Defines the member functions for the ACE socket wrapper
+ * for UDP/IP multicast.
+ */
class ACE_Export ACE_SOCK_Dgram_Mcast : public ACE_SOCK_Dgram
{
- // = TITLE
- // Defines the member functions for the ACE socket wrapper
- // for UDP/IP multicast.
public:
// = Initialization routine.
+ /**
+ * Note that there is no public <open> method. Therefore, this
+ * class cannot be used unless you <subscribe> to a multicast group.
+ * If you just want to send (and not listen) to a multicast group,
+ * use <ACE_SOCK_Dgram> or <ACE_SOCK_CODgram> instead.
+ */
ACE_SOCK_Dgram_Mcast (void);
- // Note that there is no public <open> method. Therefore, this
- // class cannot be used unless you <subscribe> to a multicast group.
- // If you just want to send (and not listen) to a multicast group,
- // use <ACE_SOCK_Dgram> or <ACE_SOCK_CODgram> instead.
+ /// Default dtor.
~ACE_SOCK_Dgram_Mcast (void);
- // Default dtor.
// = Multicast group management routines.
+ /**
+ * This is a BSD-style method (i.e., no QoS) for joining a multicast
+ * group. 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 <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 subscribe (const ACE_INET_Addr &mcast_addr,
int reuse_addr = 1,
const ACE_TCHAR *net_if = 0,
int protocol_family = PF_INET,
int protocol = 0);
- // This is a BSD-style method (i.e., no QoS) for joining a multicast
- // group. 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 <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>.
+ /**
+ * Leave a multicast group identified by <mcast_addr>. The <net_if>
+ * interface is hardware specific. Use something like "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 unsubscribe (const ACE_INET_Addr &mcast_addr,
const ACE_TCHAR *net_if = 0,
int protocol_family = PF_INET,
int protocol = 0);
- // Leave a multicast group identified by <mcast_addr>. The <net_if>
- // interface is hardware specific. Use something like "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>.
+ /// Unsubscribe from a multicast group. Returns -1 if the call
+ /// fails.
int unsubscribe (void);
- // Unsubscribe from a multicast group. Returns -1 if the call
- // fails.
// = Data transfer routines.
+ /// Send <n> bytes in <buf>.
ssize_t send (const void *buf,
size_t n,
int flags = 0) const;
- // Send <n> bytes in <buf>.
+ /// Send <n> <iovecs>.
ssize_t send (const iovec iov[],
size_t n,
int flags = 0) const;
- // Send <n> <iovecs>.
// = Options.
- int set_option (int option,
+ /**
+ * Set an ip option that takes a char as input, such as
+ * <IP_MULTICAST_LOOP> or <IP_MULTICAST_TTL>. This is just a more
+ * concise nice interface to a subset of possible
+ * <ACE_SOCK::set_option> calls. Returns 0 on success, -1 on
+ * failure.
+ */
+ int set_option (int option,
char optval);
- // Set an ip option that takes a char as input, such as
- // <IP_MULTICAST_LOOP> or <IP_MULTICAST_TTL>. This is just a more
- // concise nice interface to a subset of possible
- // <ACE_SOCK::set_option> calls. Returns 0 on success, -1 on
- // failure.
+ /// Dump the state of an object.
void dump (void) const;
- // Dump the state of an object.
+ /// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
private:
// = Disable public <open> method to ensure class used properly.
+ /// Not publically visible.
int open (const ACE_Addr &mcast_addr,
int protocol_family = PF_INET,
int protocol = 0,
int reuse_addr = 0);
- // Not publically visible.
+ /// Not publically visible.
int open (const ACE_Addr &mcast_addr,
const ACE_QoS_Params &qos_params,
int protocol_family = PF_INET,
@@ -129,24 +138,23 @@ private:
ACE_SOCK_GROUP g = 0,
u_long flags = 0,
int reuse_addr = 0);
- // Not publically visible.
+ /// Subscribe to the multicast interface using BSD-style semantics
+ /// (no QoS).
int subscribe_ifs (const ACE_INET_Addr &mcast_addr,
const ACE_TCHAR *net_if,
int protocol_family,
int protocol,
int reuse_addr);
- // Subscribe to the multicast interface using BSD-style semantics
- // (no QoS).
+ /// Unsubscribe to multicast interfaces subscribed to previously by
+ /// <subscribe_ifs>.
int unsubscribe_ifs (const ACE_INET_Addr &mcast_addr,
const ACE_TCHAR *net_if = 0,
int protocol_family = PF_INET,
int protocol = 0);
- // Unsubscribe to multicast interfaces subscribed to previously by
- // <subscribe_ifs>.
- // = Disable public use of <ACE_SOCK_Dgram::send>s
+ // = Disable public use of <ACE_SOCK_Dgram::send>s
// This forces <ACE_SOCK_Dgram_Mcast::send>s inline.
ssize_t send (const void *buf,
@@ -159,22 +167,22 @@ private:
int flags = 0) const;
protected:
+ /// Initialize the <multicast_address_> IP address.
int make_multicast_address (const ACE_INET_Addr &mcast_addr,
const ACE_TCHAR *net_if = ACE_LIB_TEXT ("le0"));
- // Initialize the <multicast_address_> IP address.
+ /// Initialize a multicast address. This method factors out common
+ /// code called by <make_multicast_address> and <subscribe>.
int make_multicast_address_i (const ACE_INET_Addr &mcast_addr,
ip_mreq& multicast_address,
const ACE_TCHAR *net_if = ACE_LIB_TEXT ("le0"));
- // Initialize a multicast address. This method factors out common
- // code called by <make_multicast_address> and <subscribe>.
+ /// A copy of the address that we use to <send> multicasts.
ACE_INET_Addr mcast_addr_;
- // A copy of the address that we use to <send> multicasts.
+ /// IP address of the interface upon which we're receiving
+ /// multicasts.
ip_mreq mcast_request_if_;
- // IP address of the interface upon which we're receiving
- // multicasts.
};
#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
@@ -183,4 +191,3 @@ protected:
#include "ace/post.h"
#endif /* ACE_SOCK_DGRAM_MCAST_H */
-