#include <target_specification.h>
Collaboration diagram for TAO_Target_Specification:

Public Types | |
| enum | TAO_Target_Address { Key_Addr = 0, Profile_Addr, Reference_Addr } |
Public Member Functions | |
| TAO_Target_Specification (void) | |
| Ctor. | |
| void | target_specifier (const TAO::ObjectKey &key) |
| Set the target specification by giving the object key. | |
| void | target_specifier (IOP::TaggedProfile &profile) |
| Set the target specification by passing in an IOP::TaggedProfile. | |
| void | target_specifier (IOP::IOR &ior, CORBA::ULong prof_index) |
| const TAO::ObjectKey * | object_key (void) |
| const IOP::TaggedProfile * | profile (void) |
| CORBA::ULong | iop_ior (IOP::IOR *&ior) |
| TAO_Target_Address | specifier (void) |
| Access the TArget_Address specifier. | |
Private Attributes | |
| union { | |
| TAO::ObjectKey * object_key_ | |
| IOP::TaggedProfile * profile_ | |
| IOP::IOR * ior_ | |
| } | u_ |
| The union of all the possibilities. | |
| TAO_Target_Address | specifier_ |
| The enum identifier. | |
| CORBA::ULong | profile_index_ |
| The profile index. | |
Definition at line 57 of file target_specification.h.
|
|
Definition at line 63 of file target_specification.h.
00064 {
00065 // Note that this could be extended for other protocols
00066 Key_Addr = 0,
00067 Profile_Addr,
00068 Reference_Addr
00069 };
|
|
|
Ctor.
Definition at line 8 of file target_specification.inl.
00009 :specifier_ (TAO_Target_Specification::Key_Addr), 00010 profile_index_ (0) 00011 { 00012 //no-op 00013 } |
|
|
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. Definition at line 69 of file target_specification.inl. References Reference_Addr, specifier_, and u_. Referenced by TAO_GIOP_Message_Generator_Parser_12::marshall_target_spec().
00070 {
00071 if (this->specifier_ == TAO_Target_Specification::Reference_Addr)
00072 {
00073 ior = this->u_.ior_;
00074 return this->profile_index_;
00075 }
00076
00077 ior = 0;
00078 return 0;
00079 }
|
|
|
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 Definition at line 51 of file target_specification.inl. References Key_Addr, specifier_, and u_. Referenced by TAO_GIOP_Message_Generator_Parser_12::marshall_target_spec(), TAO_GIOP_Message_Generator_Parser_10::write_locate_request_header(), and TAO_GIOP_Message_Generator_Parser_10::write_request_header().
00052 {
00053 if (this->specifier_ == TAO_Target_Specification::Key_Addr)
00054 return this->u_.object_key_;
00055
00056 return 0;
00057 }
|
|
|
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 Definition at line 60 of file target_specification.inl. References Profile_Addr, specifier_, and u_. Referenced by TAO_GIOP_Message_Generator_Parser_12::marshall_target_spec().
00061 {
00062 if (this->specifier_ == TAO_Target_Specification::Profile_Addr)
00063 return this->u_.profile_;
00064
00065 return 0;
00066 }
|
|
|
Access the TArget_Address specifier.
Definition at line 82 of file target_specification.inl. References specifier_. Referenced by TAO_GIOP_Message_Generator_Parser_12::marshall_target_spec().
00083 {
00084 return this->specifier_;
00085 }
|
|
||||||||||||
|
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. Definition at line 41 of file target_specification.inl. References Reference_Addr, specifier_, and u_.
00043 {
00044 this->specifier_ = TAO_Target_Specification::Reference_Addr;
00045 this->u_.ior_ = const_cast<IOP::IOR *> (&ior);
00046 this->profile_index_ = prof_index;
00047
00048 }
|
|
|
Set the target specification by passing in an IOP::TaggedProfile.
Definition at line 32 of file target_specification.inl. References Profile_Addr, specifier_, and u_.
00034 {
00035 this->specifier_ = TAO_Target_Specification::Profile_Addr;
00036 this->u_.profile_ = const_cast<IOP::TaggedProfile *> (&profile);
00037
00038 }
|
|
|
Set the target specification by giving the object key.
Definition at line 16 of file target_specification.inl. References Key_Addr, specifier_, and u_. Referenced by TAO::Remote_Invocation::init_target_spec().
00017 {
00018 this->specifier_ = TAO_Target_Specification::Key_Addr;
00019 // @@ Bala: this is a good recipe for a crash, if the <key> was on
00020 // the stack or is otherwise destroyed then you are in big
00021 // trouble.
00022 // @@ Carlos: As suggested by you I have documented that in the
00023 // headerfile.
00024 // @@ Bala: beware, documentation is good, code that works in
00025 // general is better.... but you are probably right in this case, i
00026 // suspect this stuff goes right in the critical path, right? So
00027 // making a copy of the object key would be too expensive..
00028 this->u_.object_key_ = const_cast<TAO::ObjectKey *> (&key);
00029 }
|
|
|
Definition at line 119 of file target_specification.h. |
|
|
Definition at line 117 of file target_specification.h. |
|
|
Definition at line 118 of file target_specification.h. |
|
|
The profile index.
Definition at line 126 of file target_specification.h. |
|
|
The enum identifier.
Definition at line 123 of file target_specification.h. Referenced by iop_ior(), object_key(), profile(), specifier(), and target_specifier(). |
|
|
The union of all the possibilities.
Referenced by iop_ior(), object_key(), profile(), and target_specifier(). |
1.3.6