diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 1998-06-18 04:07:34 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 1998-06-18 04:07:34 +0000 |
commit | dfdc610629ae7e8fd4839082737dbaad95da9847 (patch) | |
tree | bb5bb9690ce49b7c8292dd6ded567bff40d73a2d /ace/CLASSIX/Port.h | |
parent | 8f712b526c16318191816fe5155ede4330836f8b (diff) | |
download | ATCD-dfdc610629ae7e8fd4839082737dbaad95da9847.tar.gz |
*** empty log message ***
Diffstat (limited to 'ace/CLASSIX/Port.h')
-rw-r--r-- | ace/CLASSIX/Port.h | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/ace/CLASSIX/Port.h b/ace/CLASSIX/Port.h new file mode 100644 index 00000000000..db6acc9856d --- /dev/null +++ b/ace/CLASSIX/Port.h @@ -0,0 +1,158 @@ +/* -*- C++ -*- */ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// ipp_ace +// +// = FILENAME +// CLASSIX_Port.h +// +// = AUTHOR +// Wei Chiang +// +// = COPYRIGHT +// Copyright 1998 Nokia Telecommunications +// +// ============================================================================ + +#if !defined (ACE_CLASSIX_PORT_H) +#define ACE_CLASSIX_PORT_H + +#include "ace/Singleton.h" +#include "CLASSIX/OS.h" +#include "CLASSIX/Addr.h" + + +class ACE_Export ACE_CLASSIX_Port : public ACE_CLASSIX_Addr +{ + // = TITLE + // Defines the ClassiX IPC Port address format for "ACE Socket" like + // interfaces + // + // = DESCRIPTION + // The port address contains two fields: + // a global unique identifier and a local identifier. + // The global unique identifier is also referred to as the port address + // and the local identifier as the port no. + // + // = NOTE + // In Chorus, one can always convert from a port unique identifier to + // a port no and vice versa. This class is implemented based on this + // premise. + // + // = SEE ALSO + // <ACE_CLASSIX_PORT_Default>, <ACE_CLASSIX_Port_Core> + // +public: + /* -----------------------------------------------------*/ + // = Initialization methods. + ACE_CLASSIX_Port (); + // Default constructor. + // The address corresponds to the default port of the actor. + + ACE_CLASSIX_Port (const ACE_CLASSIX_Port &); + // Copy constructor. + ACE_CLASSIX_Port (const ACE_Addr &); + // Copy constructor. + + ACE_CLASSIX_Port (const ACE_CLASSIX_Port_Core&); + // Creates an <ACE_CLASSIX_Port> from <ACE_CLASSIX_Port_Core> + + ACE_CLASSIX_Port (const KnUniqueId& /* port_id */); + // Creates an <ACE_CLASSIX_Port> from the given <port_id> + + ACE_CLASSIX_Port (ACE_HANDLE /* port_no */); + // Creates an <ACE_CLASSIX_Port> from the given <port_no> + + ACE_CLASSIX_Port (void* /* location */, int /* length */); + // Create an <ACE_CLASSIX_Port> from the address in raw format. + + ACE_CLASSIX_Port const& operator =(ACE_Addr const&); + + + /* -----------------------------------------------------*/ + // = ACCESS + + virtual int addr_to_string (ASYS_TCHAR addr[], size_t) const; + // Transform the current <ACE_CLASSIX_Port> address into string format, + // which is in the form "actor-id:port-number" + + int set (const KnUniqueId& /* port_id */); + // Sets the <ACE_CLASSIX_Port_Basic> from a <port_id> + + virtual void set_addr (void * /* addr location */, + int /* len */); + // Set the address as the one pointed to by the location pointer. + // The address contains <len> bytes. + // Would prefer to return the status, but the base class uses void. + int set_handle (ACE_HANDLE /* port_no */); + // Sets the <addr_> field from a <port_no> + + virtual void *get_addr (void) const; + // Returns a pointer to the address:, + // <ACE_CLASSIX_Port_Core::ipp_port_addr> + virtual const KnUniqueId& get_id (void) const; + // Returns a reference to the port id. + virtual ACE_HANDLE get_handle (void) const; + // Returns the port no. + int is_configured(void) const; + // Returns 1, if address information is proper; Returns 0 otherwise + virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const; + // returns PORT type + + /* -----------------------------------------------------*/ + // = Control + // + virtual int enable(int /* receive priority */) const; + // Puts the port into the set of monitored ports. + virtual int disable(void) const; + // Removes the port from the set of monitored ports. + virtual void clear(void); + // Remove port information + + /* -----------------------------------------------------*/ + // = Comparison + // + int operator == (const ACE_CLASSIX_Port &) const; + // Compare two addresses for equality. The addresses are considered + // equal if they have the same content in the KnUniqueId address structure. + + int operator != (const ACE_CLASSIX_Port &) const; + // Compare two addresses for inequality. + + /* -----------------------------------------------------*/ + // = Helper + // + void dump (void) const; + // Dump the state of an object. + + + ACE_ALLOC_HOOK_DECLARE; + // Declare the dynamic allocation hooks. + +private: + /* -----------------------------------------------------*/ + // = Direct initialization methods (useful after the object has been + // constructed). + // Will create/reset the port only if the port no was <ACE_CLASSIX_ANY> + // Returns 0 on success, -1 otherwise. + // + + int set_ (const ACE_Addr &); + // Sets the <ACE_CLASSIX_Port_Basic> from another <ACE_CLASSIX_Port_Basic>. + + + +private: + ACE_CLASSIX_Port_Core::Addr addr_; +}; + +/* ------------------------------------------------------------------------- */ +#if defined (__ACE_INLINE__) +#include "CLASSIX/Port.i" +#endif /* __ACE_INLINE__ */ + + +#endif /* ACE_CLASSIX_PORT_H */ |