diff options
Diffstat (limited to 'TAO/tao/target_specification.h')
-rw-r--r-- | TAO/tao/target_specification.h | 124 |
1 files changed, 66 insertions, 58 deletions
diff --git a/TAO/tao/target_specification.h b/TAO/tao/target_specification.h index 907b0d184e5..488511a0ca8 100644 --- a/TAO/tao/target_specification.h +++ b/TAO/tao/target_specification.h @@ -1,21 +1,19 @@ //-*- C++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO -// -// = FILENAME -// target_identifier.h -// -// = DESCRIPTION -// A class that encapsulates the target identification details. -// -// -// = AUTHOR -// Balachandran Natarajan <bala@cs.wustl.edu> -// ============================================================================ + +//============================================================================= +/** + * @file target_specification.h + * + * $Id$ + * + * A class that encapsulates the target identification details. + * + * + * + * @author Balachandran Natarajan <bala@cs.wustl.edu> + */ +//============================================================================= + #ifndef TAO_TARGET_SPECIFICATION_H #define TAO_TARGET_SPECIFICATION_H @@ -25,30 +23,32 @@ #include "tao/IOPC.h" +/** + * @class TAO_Target_Specification + * + * @brief A class to encapsulate all the ways of specifying targets. + * + * @@ Bala: do we have examples of how other protocols map object + * keys? + * @@ Carlos: The way HTTP-NG does is not quite intuitive. But + * they too have a sequnce of Octet which more or less fits this + * model. You are also allowed to specify is a Cache Index (14 + * bits). I think that can also be worked out and shouldn't be + * a big deal. + * @@ Bala:What if they pass something around that does not fit + * this model? + * @@ Carlos:As long as we dont know it is ok. But then if we get + * to some point where we have something floating around, + * obviously we would have well defined data structure in + * TAO. BTW, in IMHO it is not possible for me to think the + * myriad data structures that a designer can come up with. So, + * I can look ahead possibily a couple of days but not a life + * time :-) But you have a good question though. Please sont + * remove these discussions. It could be useful for someone + * someday. + */ class TAO_Export TAO_Target_Specification { - // = TITLE - // A class to encapsulate all the ways of specifying targets. - // - // = DESCRIPTION - // @@ Bala: do we have examples of how other protocols map object - // keys? - // @@ Carlos: The way HTTP-NG does is not quite intuitive. But - // they too have a sequnce of Octet which more or less fits this - // model. You are also allowed to specify is a Cache Index (14 - // bits). I think that can also be worked out and shouldn't be - // a big deal. - // @@ Bala:What if they pass something around that does not fit - // this model? - // @@ Carlos:As long as we dont know it is ok. But then if we get - // to some point where we have something floating around, - // obviously we would have well defined data structure in - // TAO. BTW, in IMHO it is not possible for me to think the - // myriad data structures that a designer can come up with. So, - // I can look ahead possibily a couple of days but not a life - // time :-) But you have a good question though. Please sont - // remove these discussions. It could be useful for someone - // someday. // @@ Bala: i hate to be picky on these matters, but you are not // writing a novel or your memoirs, 'I foresee' does not look like @@ -67,8 +67,8 @@ class TAO_Export TAO_Target_Specification // required. public: + /// Ctor TAO_Target_Specification (void); - // Ctor enum TAO_Target_Address { // Note that this could be extended for other protocols @@ -80,38 +80,46 @@ public: // Note: Please do not pass in a identifiers that is allocated on // stack. These methods does not make a copy but holds the pointer // passed in. + /// Set the target specification by giving the object key. void target_specifier (const TAO_ObjectKey &key); - // Set the target specification by giving the object key. + /// Set the target specification by passing in an IOP::TaggedProfile. void target_specifier (IOP::TaggedProfile &profile); - // Set the target specification by passing in an IOP::TaggedProfile. + /** + * Specify the target by passing in the IOP::IOR with a profile + * index. Please see the header file IOPC.h on why a profile index + * is required. + */ void target_specifier (IOP::IOR &ior, CORBA::ULong prof_index); - // Specify the target by passing in the IOP::IOR with a profile - // index. Please see the header file IOPC.h on why a profile index - // is required. + /** + * Returns the object key after a check of the stored specifier. If + * the stored specifier is not of the right type then this would + * return a NULL + */ const TAO_ObjectKey* object_key (void); - // Returns the object key after a check of the stored specifier. If - // the stored specifier is not of the right type then this would - // return a NULL + /** + * Returns the IOP::TaggedProfile after a check of the stored specifier. If + * the stored specifier is not of the right type then this would + * return a NULL + */ const IOP::TaggedProfile *profile (void); - // Returns the IOP::TaggedProfile after a check of the stored specifier. If - // the stored specifier is not of the right type then this would - // return a NULL + /** + * Returns a pointer to IOP::IOR through the parameters and the + * index of the selected profile as a return parameter after a check + * of the stored specifier. If the stored specifier is not of the + * right type then this would return a NULL. + */ CORBA::ULong iop_ior (IOP::IOR *&ior); - // Returns a pointer to IOP::IOR through the parameters and the - // index of the selected profile as a return parameter after a check - // of the stored specifier. If the stored specifier is not of the - // right type then this would return a NULL. + /// Access the TArget_Address specifier TAO_Target_Address specifier (void); - // Access the TArget_Address specifier private: union @@ -122,11 +130,11 @@ private: } u_; // The union of all the possibilities + /// The enum identifier TAO_Target_Address specifier_; - // The enum identifier + /// The profile index CORBA::ULong profile_index_; - // The profile index }; #if defined (__ACE_INLINE__) |