summaryrefslogtreecommitdiff
path: root/ace/CLASSIX/CLASSIX_SAP.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/CLASSIX/CLASSIX_SAP.h')
-rw-r--r--ace/CLASSIX/CLASSIX_SAP.h139
1 files changed, 139 insertions, 0 deletions
diff --git a/ace/CLASSIX/CLASSIX_SAP.h b/ace/CLASSIX/CLASSIX_SAP.h
new file mode 100644
index 00000000000..5301c2e226e
--- /dev/null
+++ b/ace/CLASSIX/CLASSIX_SAP.h
@@ -0,0 +1,139 @@
+/* -*- C++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// ace
+//
+// = FILENAME
+// CLASSIX_SAP.h
+//
+// = AUTHOR(S)
+// Nokia Telecommunications
+//
+// ============================================================================
+
+#ifndef ACE_CLASSIX_SAP_H
+#define ACE_CLASSIX_SAP_H
+
+/* ------------------------------------------------------------------------- */
+#include "ace/CLASSIX/CLASSIX_Port.h"
+
+class ACE_CLASSIX_SAP
+ // = TITLE
+ // Class implementing the SAP over a Chorus port.
+ //
+ // = DESCRIPTION
+ // A SAP has a port which is referred to as the local port.
+ // This class provides methods to manipulate this port.
+ //
+ // The SAP will always put the port in DISABLED state on exit.
+ //
+ // In CLASSIX, a local SAP is always a port, a peer SAP can be
+ // a port or a group of port. This class is for local SAP and
+ // <ACE_Peer_SAP> is for peer SAP.
+ //
+ // = SEE ALSO
+ // <ACE_Peer_SAP>
+ //
+{
+ public:
+ enum
+ {
+ DEFAULT_PRIORITY = 10
+ };
+
+ // = INITIALIZATION
+ ACE_CLASSIX_SAP(void);
+ // Creates a SAP, using the address of the actor's default port.
+ ACE_CLASSIX_SAP(const ACE_Addr&);
+ // Creates a SAP, using the specified address as the local address.
+ virtual ~ACE_CLASSIX_SAP(void);
+
+ // = ACCESS
+ void set_addr(const ACE_Addr&);
+ void set_addr(const ACE_CLASSIX_Port_Core&);
+ // Sets the <local_addr_> based on the given address information.
+ // The caller should make sure that the original address can be removed!
+ int set(const ACE_Addr&);
+ // Returns 0, if successful; returns -1, otherwise
+ // same as set_addr(const ACE_Addr&);
+ int set(const ACE_CLASSIX_Port_Core&);
+ // Returns 0, if successful; returns -1, otherwise
+ // same as void set_addr(const ACE_CLASSIX_Port_Core&);
+ int set (const KnUniqueId&);
+ // Returns 0, if successful; returns -1, otherwise
+
+ void set_handle (ACE_HANDLE /* port_no */);
+ // Sets the port address according to <port_no>
+
+ int get_addr(ACE_Addr& /* return_addr */) const;
+ // Returns address information to the supplied location.
+ // if successful, return 0 and the return_addr parameter contains the
+ // address info.
+ // Otherwise, return -1
+ const ACE_CLASSIX_Port& get_addr(void) const;
+ // Returns a reference to the address information
+ ACE_HANDLE get_handle(void) const;
+ // Get handles that the Reactor uses
+ virtual int is_configured(void) const;
+ // Returns 1, if address information is proper; Returns 0 otherwise
+ int is_selectable(void) const;
+ // Retruns 1, if the local SAP is enabled.
+
+ // = CONTROL
+ int selectable(int = ACE_CLASSIX_SAP::DEFAULT_PRIORITY /* priority */);
+ // Puts the SAP in the ENABLED state so that data the port associated
+ // with its local addess can be monitored by the CLASSIX's Reactor.
+
+ int unselectable(int = 0 /* not used */);
+ // Makes the SAP DISABLED and therefore the SAP can not be monitored
+ // by the CLASSIX's Reactor..
+ int open(const ACE_Addr&);
+ int open(const ACE_CLASSIX_Port_Core*);
+ // Sets the address information according to the supplied port
+ // Returns 0 on success; returns -1 otherwise
+ int close(void);
+ // removes the port information
+ // Returns 0 on success (always); returns -1 otherwise
+
+ void clear(void);
+ // erase local port info
+
+#if 0
+ int control(u_int = K_BROADMODE);
+ int control(u_int, /* mode */ int /* site */ );
+ // Interface for CLASSIX' send mode
+#endif
+
+
+ // = HELPER
+ void dump(void) const;
+ // dump the state of an object
+
+ ACE_ALLOC_HOOK_DECLARE;
+ // declare the dynamic allocation hooks
+
+ protected:
+#if 0
+ virtual set_mode_(u_int = K_BROADMODE); /* theMode */
+ // Sets the addressing mode with the current setting of coTarget
+ virtual set_mode_(u_int, /* mode */ int /* site */);
+ // Sets the addressing mode as well as the coTarget
+#endif
+ // Disable copy constructor/assignment
+ ACE_CLASSIX_SAP(ACE_CLASSIX_SAP const&);
+ ACE_CLASSIX_SAP const& operator=(ACE_CLASSIX_SAP const&);
+
+ ACE_CLASSIX_Port local_addr_;
+ int enabled_; // 1 if enabled, 0 if disabled (Default)
+};
+
+/* ------------------------------------------------------------------------- */
+
+#if defined (__ACE_INLINE__)
+#include "ace/CLASSIX/CLASSIX_SAP.i"
+#endif /* __ACE_INLINE__ */
+
+#endif /* ACE_CLASSIX_SAP_H */