/usr/include/ace/ATM_Connector.h is in libace-dev 6.0.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | /* -*- C++ -*- */
//=============================================================================
/**
* @file ATM_Connector.h
*
* $Id: ATM_Connector.h 82723 2008-09-16 09:35:44Z johnnyw $
*
* @author Joe Hoffert <joeh@cs.wustl.edu>
*/
//=============================================================================
#ifndef ACE_ATM_CONNECTOR_H
#define ACE_ATM_CONNECTOR_H
#include /**/ "ace/pre.h"
#include /**/ "ace/config-all.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#if defined (ACE_HAS_ATM)
#include "ace/ATM_Stream.h"
#include "ace/ATM_Params.h"
#include "ace/ATM_QoS.h"
#if defined (ACE_WIN32) || defined (ACE_HAS_LINUX_ATM)
#include "ace/SOCK_Connector.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
typedef ACE_SOCK_Connector ATM_Connector;
ACE_END_VERSIONED_NAMESPACE_DECL
#else
#include "ace/XTI_ATM_Mcast.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
typedef ACE_XTI_ATM_Mcast ATM_Connector;
// Open versioned namespace, if enabled by the user.
ACE_END_VERSIONED_NAMESPACE_DECL
#endif
// Open versioned namespace, if enabled by the user.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_ATM_Connector
*
* @brief Defines an active connection factory for the ACE_ATM C++
* wrappers.
*/
class ACE_Export ACE_ATM_Connector
{
public:
// = Initialization methods.
/// Default constructor.
ACE_ATM_Connector (void);
/**
* Actively connect and produce a @a new_stream if things go well.
* The @a remote_sap is the address that we are trying to connect
* with. The <params> are the parameters needed for either socket
* or XTI/ATM connections. The @a timeout is the amount of time to
* wait to connect. If it's 0 then we block indefinitely. If
* *timeout == {0, 0} then the connection is done using non-blocking
* mode. In this case, if the connection can't be made immediately
* the value of -1 is returned with @c errno == EWOULDBLOCK. If
* *timeout > {0, 0} then this is the maximum amount of time to wait before
* timing out. If the time expires before the connection is made
* @c errno == ETIME. The @a local_sap is the value of local address
* to bind to. If it's the default value of <ACE_ATM_Addr::sap_any> then
* the user is letting the OS do the binding. If @a reuse_addr == 1
* then the <local_addr> is reused, even if it hasn't been cleanedup yet.
*/
ACE_ATM_Connector (ACE_ATM_Stream &new_stream,
const ACE_ATM_Addr &remote_sap,
ACE_ATM_Params params = ACE_ATM_Params(),
ACE_ATM_QoS options = ACE_ATM_QoS(),
ACE_Time_Value *timeout = 0,
const ACE_ATM_Addr &local_sap = ACE_ATM_Addr( "", 0 ),
int reuse_addr = 0,
#if defined (ACE_WIN32)
int flags = 0,
#else
int flags = O_RDWR,
#endif /* ACE_WIN32 */
int perms = 0);
/**
* Actively connect and produce a @a new_stream if things go well.
* The @a remote_sap is the address that we are trying to connect
* with. The <params> are the parameters needed for either socket
* or XTI/ATM connections. The @a timeout is the amount of time to
* wait to connect. If it's 0 then we block indefinitely. If
* *timeout == {0, 0} then the connection is done using non-blocking
* mode. In this case, if the connection can't be made immediately
* the value of -1 is returned with @c errno == EWOULDBLOCK. If
* *timeout > {0, 0} then this is the maximum amount of time to wait before
* timing out. If the time expires before the connection is made
* @c errno == ETIME. The @a local_sap is the value of local address
* to bind to. If it's the default value of <ACE_ATM_Addr::sap_any> then
* the user is letting the OS do the binding. If @a reuse_addr == 1
* then the <local_addr> is reused, even if it hasn't been cleanedup yet.
*/
int connect (ACE_ATM_Stream &new_stream,
const ACE_ATM_Addr &remote_sap,
ACE_ATM_Params params = ACE_ATM_Params(),
ACE_ATM_QoS options = ACE_ATM_QoS(),
ACE_Time_Value *timeout = 0,
const ACE_ATM_Addr &local_sap = ACE_ATM_Addr( "",
0 ),
int reuse_addr = 0,
#if defined (ACE_WIN32)
int flags = 0,
#else
int flags = O_RDWR,
#endif /* ACE_WIN32 */
int perms = 0);
/**
* Try to complete a non-blocking connection.
* If connection completion is successful then @a new_stream contains
* the connected ACE_SOCK_Stream. If @a remote_sap is non-NULL then it
* will contain the address of the connected peer.
*/
int complete (ACE_ATM_Stream &new_stream,
ACE_ATM_Addr *remote_sap,
ACE_Time_Value *tv);
/**
* Actively add a leaf to the root (i.e., point-to-multipoint). The
* @a remote_sap is the address of the leaf that we
* are trying to add.
*/
int add_leaf (ACE_ATM_Stream ¤t_stream,
const ACE_Addr &remote_sap,
ACE_ATM_QoS &qos);
/// Resets any event associations on this handle
bool reset_new_handle (ACE_HANDLE handle);
// = Meta-type info
typedef ACE_ATM_Addr PEER_ADDR;
typedef ACE_ATM_Stream PEER_STREAM;
/// Dump the state of an object.
void dump (void) const;
/// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;
private:
ATM_Connector connector_;
};
// Open versioned namespace, if enabled by the user.
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
#include "ace/ATM_Connector.inl"
#endif /* __ACE_INLINE__ */
#endif /* ACE_HAS_ATM */
#include /**/ "ace/post.h"
#endif /* ACE_ATM_CONNECTOR_H */
|