summaryrefslogtreecommitdiff
path: root/ACE/ace/TLI.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/TLI.h')
-rw-r--r--ACE/ace/TLI.h116
1 files changed, 116 insertions, 0 deletions
diff --git a/ACE/ace/TLI.h b/ACE/ace/TLI.h
new file mode 100644
index 00000000000..20fcec2841a
--- /dev/null
+++ b/ACE/ace/TLI.h
@@ -0,0 +1,116 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file TLI.h
+ *
+ * $Id$
+ *
+ * @author Doug Schmidt
+ */
+//=============================================================================
+
+
+#ifndef ACE_TLI_H
+#define ACE_TLI_H
+#include /**/ "ace/pre.h"
+
+#include "ace/config-lite.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/OS_TLI.h"
+
+#if defined (ACE_HAS_TLI)
+
+#include "ace/IPC_SAP.h"
+#include "ace/Addr.h"
+#include "ace/os_include/os_fcntl.h"
+
+// There's not a universal device name for TLI devices. If the platform
+// needs something other than /dev/tcp, it needs to be set up in the config.h
+// file as ACE_TLI_TCP_DEVICE.
+#ifndef ACE_TLI_TCP_DEVICE
+#define ACE_TLI_TCP_DEVICE "/dev/tcp"
+#endif
+
+// There's not a universal device name for XTI/ATM devices. If the platform
+// needs something other than /dev/xtisvc0, it needs to be set up in the
+// config.h file as ACE_XTI_ATM_DEVICE. This may be FORE vendor specific and
+// there may be no good default.
+#ifndef ACE_XTI_ATM_DEVICE
+#define ACE_XTI_ATM_DEVICE "/dev/xtisvc0"
+#endif
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @class ACE_TLI
+ *
+ * @brief Defines the member functions for the base class of the
+ * ACE_TLI abstraction.
+ */
+class ACE_Export ACE_TLI : public ACE_IPC_SAP
+{
+public:
+ // = Initialization and termination methods.
+ /// Initialize a TLI endpoint.
+ ACE_HANDLE open (const char device[],
+ int oflag = O_RDWR,
+ struct t_info *info = 0);
+
+ /// Close a TLI endpoint and release resources.
+ int close (void);
+
+ /// Set underlying protocol options.
+ int set_option (int level, int option, void *optval, int optlen);
+
+ /// Get underlying protocol options.
+ int get_option (int level, int option, void *optval, int &optlen);
+
+ // = Calls to underlying TLI operations.
+ int look (void) const;
+ int rcvdis (struct t_discon * = 0) const;
+ int snddis (struct t_call * = 0) const;
+ int sndrel (void) const;
+ int rcvrel (void) const;
+
+ /// Return our local endpoint address.
+ int get_local_addr (ACE_Addr &) const;
+
+ /// Dump the state of an object.
+ void dump (void) const;
+
+ /// Declare the dynamic allocation hooks.
+ ACE_ALLOC_HOOK_DECLARE;
+
+protected:
+ // = Ensure we are an abstract class.
+ /// Default constructor.
+ ACE_TLI (void);
+
+ /// Destructor.
+ ~ACE_TLI (void);
+
+ /// Initialize a TLI endpoint.
+ ACE_TLI (const char device[], int oflag = O_RDWR, struct t_info *info = 0);
+
+private:
+#if defined (ACE_HAS_SVR4_TLI)
+ // XTI/TLI option management.
+ struct t_optmgmt so_opt_req;
+ struct t_optmgmt so_opt_ret;
+#endif /* ACE_HAS_SVR4_TLI */
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/TLI.inl"
+#endif /* __ACE_INLINE__ */
+
+#endif /* ACE_HAS_TLI */
+#include /**/ "ace/post.h"
+#endif /* ACE_TLI_H */