summaryrefslogtreecommitdiff
path: root/ACE/ace/Sock_Connect.h
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2006-07-24 15:50:30 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2006-07-24 15:50:30 +0000
commitc44379cc7d9c7aa113989237ab0f56db12aa5219 (patch)
tree66a84b20d47f2269d8bdc6e0323f338763424d3a /ACE/ace/Sock_Connect.h
parent3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c (diff)
downloadATCD-c44379cc7d9c7aa113989237ab0f56db12aa5219.tar.gz
Repo restructuring
Diffstat (limited to 'ACE/ace/Sock_Connect.h')
-rw-r--r--ACE/ace/Sock_Connect.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/ACE/ace/Sock_Connect.h b/ACE/ace/Sock_Connect.h
new file mode 100644
index 00000000000..90e9ecf1c07
--- /dev/null
+++ b/ACE/ace/Sock_Connect.h
@@ -0,0 +1,91 @@
+// -*- C++ -*-
+
+//==========================================================================
+/**
+ * @file Sock_Connect.h
+ *
+ * $Id$
+ *
+ * @author Priyanka Gontla <pgontla@ece.uci.edu>
+ * @author Based on code that existed formerly in ACE.h.
+ */
+//==========================================================================
+
+#ifndef ACE_SOCK_CONNECT_H
+#define ACE_SOCK_CONNECT_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/ACE_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Basic_Types.h"
+#include "ace/os_include/netinet/os_in.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+// Forward Declarations
+class ACE_INET_Addr;
+
+namespace ACE
+{
+ // = Socket connection establishment calls.
+
+ /// Bind a new unused port to @a handle.
+ extern ACE_Export int bind_port (ACE_HANDLE handle,
+ ACE_UINT32 ip_addr = INADDR_ANY,
+ int address_family = AF_UNSPEC);
+
+ /**
+ * Get our broadcast address based on our @a host_addr. If
+ * @a hostname is non-0 we'll use it to determine our IP address. If
+ * @a handle is not ACE_INVALID_HANDLE then we'll use this to
+ * determine our broadcast address, otherwise we'll have to create a
+ * socket internally (and free it). Returns -1 on failure and 0 on
+ * success.
+ */
+ extern ACE_Export int get_bcast_addr (
+ ACE_UINT32 &bcast_addr,
+ const ACE_TCHAR *hostname = 0,
+ ACE_UINT32 host_addr = 0,
+ ACE_HANDLE handle = ACE_INVALID_HANDLE);
+
+ /**
+ * Return count and array of all configured IP interfaces on this
+ * host, rc = 0 on success (count == number of interfaces else -1).
+ * Caller is responsible for calling delete [] on @a addr_array.
+ */
+ extern ACE_Export int get_ip_interfaces (size_t &count,
+ ACE_INET_Addr *&addr_array);
+
+ /**
+ * Helper routine for get_ip_interfaces, differs by UNIX platform so
+ * put into own subroutine. perform some ioctls to retrieve ifconf
+ * list of ifreq structs.
+ */
+ extern ACE_Export int count_interfaces (ACE_HANDLE handle,
+ size_t &how_many);
+
+ /// Routine to return a handle from which @c ioctl requests can be
+ /// made. Caller must close the handle.
+ extern ACE_Export ACE_HANDLE get_handle (void);
+
+ /**
+ * Returns 1 if IPv6 is enabled on the current host; 0 if not.
+ * This is an execution-time check. If ACE has not been compiled
+ * with ACE_HAS_IPV6, it always returns 0. If ACE_HAS_IPV6 is
+ * enabled, this function tries to create a PF_INET6 socket,
+ * returning 1 if it succeeds, and 0 if it fails. Caches the result
+ * so it only gets checked once.
+ */
+ extern ACE_Export int ipv6_enabled (void);
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+
+#endif /* ACE_SOCK_CONNECT_H */