diff options
author | bala <balanatarajan@users.noreply.github.com> | 1999-12-25 22:51:18 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 1999-12-25 22:51:18 +0000 |
commit | 315a5d5c743bd09210acaf33d1fea050962792d2 (patch) | |
tree | 4ad04e72aedeb0d1fcdf6e5886a83a4f2c73d840 | |
parent | 1b51d4f958a85aa79ad9fc3a308b2ff7bd9e5d2f (diff) | |
download | ATCD-315a5d5c743bd09210acaf33d1fea050962792d2.tar.gz |
*** empty log message ***
-rw-r--r-- | TAO/tao/GIOP_Accept_State.i | 3 | ||||
-rw-r--r-- | TAO/tao/GIOP_Acceptors.i | 33 | ||||
-rw-r--r-- | TAO/tao/GIOP_Assorted_Headers.cpp | 8 | ||||
-rw-r--r-- | TAO/tao/GIOP_Assorted_Headers.h | 77 | ||||
-rw-r--r-- | TAO/tao/GIOP_Assorted_Headers.i | 61 | ||||
-rw-r--r-- | TAO/tao/IOP_Defns.h | 105 |
6 files changed, 287 insertions, 0 deletions
diff --git a/TAO/tao/GIOP_Accept_State.i b/TAO/tao/GIOP_Accept_State.i new file mode 100644 index 00000000000..e2024633112 --- /dev/null +++ b/TAO/tao/GIOP_Accept_State.i @@ -0,0 +1,3 @@ +//$Id$ + + diff --git a/TAO/tao/GIOP_Acceptors.i b/TAO/tao/GIOP_Acceptors.i new file mode 100644 index 00000000000..46733b6e452 --- /dev/null +++ b/TAO/tao/GIOP_Acceptors.i @@ -0,0 +1,33 @@ +//$Id$ +ACE_INLINE +TAO_GIOP_Acceptor_1_1::TAO_GIOP_Acceptor_1_1 (void) + : our_major_version_ (1), + our_minor_version_ (1) +{ + // no-op +} + +ACE_INLINE const CORBA::Octet& +TAO_GIOP_Acceptor_1_1::major_version (void) +{ + + return this->our_major_version_; +} + +ACE_INLINE const CORBA::Octet& +TAO_GIOP_Acceptor_1_1::minor_version (void) +{ + return this->our_minor_version_; +} + +ACE_INLINE size_t +TAO_GIOP_Acceptor_1_1::header_length (void) +{ + return TAO_GIOP_HEADER_LEN; +} + +ACE_INLINE size_t +TAO_GIOP_Acceptor_1_1::offset_length (void) +{ + return TAO_GIOP_MESSAGE_SIZE_OFFSET; +} diff --git a/TAO/tao/GIOP_Assorted_Headers.cpp b/TAO/tao/GIOP_Assorted_Headers.cpp new file mode 100644 index 00000000000..eda2d48623f --- /dev/null +++ b/TAO/tao/GIOP_Assorted_Headers.cpp @@ -0,0 +1,8 @@ +//$Id$ +#include "tao/GIOP_Assorted_Headers.h" + +#if !defined (__ACE_INLINE__) +# include "tao/GIOP_Assorted_Headers.i" +#endif /* __ACE_INLINE__ */ + + diff --git a/TAO/tao/GIOP_Assorted_Headers.h b/TAO/tao/GIOP_Assorted_Headers.h new file mode 100644 index 00000000000..66b46969818 --- /dev/null +++ b/TAO/tao/GIOP_Assorted_Headers.h @@ -0,0 +1,77 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO +// +// = FILENAME +// GIOP_Assorted_Header.h +// +// = DESCRIPTION +// Some assorted GIOP structure mappings +// +// = AUTHOR +// Balachandran Natarajan <bala@cs.wustl.edu> +// +// ============================================================================ +#ifndef _TAO_GIOP_ASSORTED_HEADERS_H_ +#define _TAO_GIOP_ASSORTED_HEADERS_H_ +#include "tao/GIOPC.h" + + +class TAO_GIOP_Locate_Request_Header +{ + // = TITLE + // Location service support +public: + + TAO_GIOP_Locate_Request_Header (TAO_InputCDR &msg); + // Constructor + + void request_id (CORBA::ULong id); + // Set the id + + CORBA::ULong request_id (void); + // Get the request id + + void addressing_disposition (CORBA::Short discriminant); + // Set the addressing the disposition + + CORBA::Short addressing_disposition (void); + // Return the addressing disposition + + const GIOP::TargetAddress &target_address (void) const; + // Get in read mode + + GIOP::TargetAddress &target_address (void); + // Get in read/write mode + + // TAO_ObjectKey &object_key_ref (void); + // Get the Object Key in read/write mode + + TAO_InputCDR &incoming_stream (void); + // Get the CDR stream for read/write + +private: + CORBA::ULong request_id_; + // Request id + + CORBA::Short addressing_disposition_; + // This is the discrminant type for the union encapsulated in + // TargetAddress. + + GIOP::TargetAddress target_address_; + // Introduced by GIOP 1.2. Will not cause us any harm if it is there + // for other versions. + + TAO_InputCDR *incoming_; + // Incoming CDR stream +}; + +#if defined (__ACE_INLINE__) +# include "tao/GIOP_Assorted_Headers.i" +#endif /* __ACE_INLINE__ */ + +#endif /*_TAO_GIOP_ASSORTED_HEADERS_H_*/ diff --git a/TAO/tao/GIOP_Assorted_Headers.i b/TAO/tao/GIOP_Assorted_Headers.i new file mode 100644 index 00000000000..5d804b5db57 --- /dev/null +++ b/TAO/tao/GIOP_Assorted_Headers.i @@ -0,0 +1,61 @@ +//$Id$ + +ACE_INLINE +TAO_GIOP_Locate_Request_Header::TAO_GIOP_Locate_Request_Header (TAO_InputCDR &msg) + : request_id_ (0), + addressing_disposition_ (0), + incoming_ (&msg) +{ +} + +ACE_INLINE void +TAO_GIOP_Locate_Request_Header::request_id (CORBA::ULong id) +{ + this->request_id_ = id; +} + +ACE_INLINE CORBA::ULong +TAO_GIOP_Locate_Request_Header::request_id (void) +{ + return this->request_id_; +} + +ACE_INLINE void +TAO_GIOP_Locate_Request_Header::addressing_disposition (CORBA::Short + add) +{ + this->addressing_disposition_ = add; +} + +ACE_INLINE CORBA::Short +TAO_GIOP_Locate_Request_Header::addressing_disposition (void) +{ + return this->addressing_disposition_; +} + +ACE_INLINE const GIOP::TargetAddress & +TAO_GIOP_Locate_Request_Header::target_address (void) const +{ + return this->target_address_; +} + +ACE_INLINE GIOP::TargetAddress & +TAO_GIOP_Locate_Request_Header::target_address (void) +{ + return this->target_address_; +} + +ACE_INLINE TAO_InputCDR & +TAO_GIOP_Locate_Request_Header::incoming_stream (void) +{ + return *this->incoming_; +} + +/*TAO_ObjectKey & +TAO_GIOP_Locate_Request_Header::object_key_ref (void) +{ + // Not a good idea, need to check here.. + return this->target_address_.object_key (); + // For the rest do the checeks here +} +*/ diff --git a/TAO/tao/IOP_Defns.h b/TAO/tao/IOP_Defns.h new file mode 100644 index 00000000000..da83220b9d5 --- /dev/null +++ b/TAO/tao/IOP_Defns.h @@ -0,0 +1,105 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO +// +// = FILENAME +// IOP_Defn.h +// +// = DESCRIPTION +// Definitions for IOP related classes. IOP definitions are part of +// the Interoperability model specified by the CORBA spec. +// +// = AUTHOR +// Balachandran Natarajan <bala@cs.wustl.edu> +// ============================================================================ +#ifndef _TAO_IOP_DEFN_H_ +#define _TAO_IOP_DEFN_H_ + +// These were all in the GIOP.h file. They shouldn't be combined with +// GIOP as they are not specific to GIOP. They are part of the CORBA +// Interoperable reference model. + +// namespace TAO_IOP + +// Assigned Protocol/Profile tag values. ORB protcols may be uniquely +// identified by tags such as these. This allows each ORB's own +// objref profiles to be interchanged using IORs. +// +// Email to tag-request@omg.org to allocate tags. +typedef CORBA::ULong TAO_IOP_Profile_ID; + +class TAO_IOP_Tagged_Profile +{ + // = TITLE + // One per protocol. +public: + TAO_IOP_Profile_ID tag; + TAO_opaque profile_data; +}; + +typedef TAO_Unbounded_Sequence<TAO_IOP_Tagged_Profile> + TAO_IOP_Tagged_Profile_Sequence; + +class TAO_IOP_IOR +{ + // = TITLE + // InteroperableObjectReference + // + // = DESCRIPTION + // ... a set of protocol-specific protocol profiles, plus a type + // ID. Only one object is denoted by all of this information. + // It's OK to delete all profiles except the one for the single + // protocol actually being used. + +public: + char *type_id; + TAO_IOP_Tagged_Profile_Sequence profiles; +}; + +// Some protocols can be factored into a set of optional components. +// Use of such components is defined by the protocol's specification. +// +// Email to tag-request@omg.org to allocate tags. + +typedef CORBA::ULong TAO_IOP_ComponentId; + +enum +{ + // = DESCRIPTION + // These are all defined by DCE-CIOP in OMG TC document 95-3-10. + // We don't use them in TAO, it is a left over from the SunSoft + // IIOP engine times! + + TAO_IOP_TAG_DCE_STRING_BINDING = 100,// string binding handle + TAO_IOP_TAG_DCE_BINDING_NAME = 101, // CDS/GDS/... name + TAO_IOP_TAG_DCE_NO_PIPES = 102, // no component data + TAO_IOP_TAG_OBJECT_KEY = 10, // opaque + TAO_IOP_TAG_ENDPOINT_ID = 11, // uuid + TAO_IOP_TAG_LOCATION_POLICY = 12 // octet/enum +}; + +class TAO_IOP_TaggedComponent +{ + // = DESCRIPTION + // One way to represent multicomponent profiles, e.g. as done by + // the DCE-CIOP protocol. One of these gets encapsulated in + // Tagged_Profile::profile_data. TAG_MULTIPLE_COMPONENTS may be + // used to represent protocol profiles structured in that way, but + // protocol-specific tags facilitate simpler scanning of IORs + // since you can be assured that each profile only has data used + // within a single ORB protocol. +public: + + TAO_IOP_ComponentId tag; + TAO_opaque component_data; +}; + +// **************************************************************** + +typedef TAO_Unbounded_Sequence<TAO_IOP_TaggedComponent> + TAO_IOP_MultipleComponentProfile; + +#endif /*_TAO_IOP_DEFN_H_*/ |