#include <Profile.h>
Inheritance diagram for TAO_Unknown_Profile:
Public Member Functions | |
TAO_Unknown_Profile (CORBA::ULong tag, TAO_ORB_Core *orb_core) | |
Create the profile. | |
virtual void | parse_string (const char *string) |
virtual char | object_key_delimiter (void) const |
The object key delimiter. | |
virtual char * | to_string (void) |
virtual int | decode (TAO_InputCDR &cdr) |
Initialize this object using the given CDR octet string. | |
virtual int | encode (TAO_OutputCDR &stream) const |
Encode this profile in a stream, i.e. marshal it. | |
virtual int | encode_endpoints (void) |
virtual TAO::ObjectKey * | _key (void) const |
virtual TAO_Endpoint * | endpoint (void) |
virtual CORBA::ULong | endpoint_count (void) const |
Return how many endpoints this profile contains. | |
virtual CORBA::ULong | hash (CORBA::ULong max) |
Return a hash value for this object. | |
virtual int | decode_profile (TAO_InputCDR &cdr) |
Decode the protocol specific profile details. | |
virtual int | decode_endpoints (void) |
Protected Member Functions | |
virtual CORBA::Boolean | do_is_equivalent (const TAO_Profile *other_profile) |
Profile equivalence template method invoked on subclasses. | |
virtual TAO_Service_Callbacks::Profile_Equivalence | is_equivalent_hook (const TAO_Profile *other_profile) |
Allow services to apply their own definition of "equivalence.". | |
Private Member Functions | |
virtual void | create_profile_body (TAO_OutputCDR &encap) const |
Creates an encapsulation of the ProfileBody struct in the cdr. | |
virtual void | parse_string_i (const char *string) |
Protocol specific implementation of parse_string (). | |
Private Attributes | |
TAO_opaque | body_ |
The CORBA spec implies that ORBs must be prepared to save and pass around profiles for protocols it does not recognize. It is not mandatory to *use* those profiles but they shouldn't be dropped. This class stores the information required to marshal and demarshal an unknown profile, but simply returns an error if any of the TAO internal methods are invoked.
Definition at line 424 of file Profile.h.
|
Create the profile.
Definition at line 805 of file Profile.cpp. References TAO_DEF_GIOP_MAJOR, and TAO_DEF_GIOP_MINOR.
00807 : TAO_Profile (tag, 00808 orb_core, 00809 TAO_GIOP_Message_Version (TAO_DEF_GIOP_MAJOR, 00810 TAO_DEF_GIOP_MINOR)) 00811 { 00812 } |
|
Obtain the object key, return 0 if the profile cannot be parsed. The memory is owned by the caller! Reimplemented from TAO_Profile. Definition at line 888 of file Profile.cpp.
00889 {
00890 return 0;
00891 }
|
|
Creates an encapsulation of the ProfileBody struct in the cdr.
Implements TAO_Profile. Definition at line 921 of file Profile.cpp.
00922 { 00923 // No idea about the profile body! Just return 00924 return; 00925 } |
|
Initialize this object using the given CDR octet string.
Reimplemented from TAO_Profile. Definition at line 852 of file Profile.cpp. References body_.
00853 { 00854 if ((cdr >> this->body_) == 0) 00855 { 00856 return -1; 00857 } 00858 00859 return 0; 00860 } |
|
Helper for decode(). Decodes endpoints from a tagged component. Decode only if RTCORBA is enabled. Furthermore, we may not find TAO_TAG_ENDPOINTS component, e.g., if we are talking to nonRT version of TAO or some other ORB. This is not an error, and we must proceed. Return 0 on success and -1 on failure. Implements TAO_Profile. Definition at line 869 of file Profile.cpp.
00870 {
00871 return 0;
00872 }
|
|
Decode the protocol specific profile details.
Implements TAO_Profile. Definition at line 863 of file Profile.cpp.
00864 {
00865 return 0;
00866 }
|
|
Profile equivalence template method invoked on subclasses. TAO_Profile subclasses must implement this template method so that they can apply their own definition of profile equivalence. Implements TAO_Profile. Definition at line 894 of file Profile.cpp. References body_.
00895 { 00896 const TAO_Unknown_Profile * op = 00897 dynamic_cast <const TAO_Unknown_Profile *> (other_profile); 00898 00899 return (CORBA::Boolean) (op == 0 ? 0 : this->body_ == op->body_); 00900 } |
|
Encode this profile in a stream, i.e. marshal it.
Reimplemented from TAO_Profile. Definition at line 875 of file Profile.cpp. References body_, and ACE_OutputCDR::write_ulong().
00876 { 00877 stream.write_ulong (this->tag ()); 00878 return (stream << this->body_); 00879 } |
|
Encodes this profile's endpoints into a tagged component. This is done only if RTCORBA is enabled, since currently this is the only case when we have more than one endpoint per profile. Implements TAO_Profile. Definition at line 882 of file Profile.cpp.
00883 {
00884 return 0;
00885 }
|
|
Return a pointer to this profile's endpoint. If the profile contains more than one endpoint, i.e., a list, the method returns the head of the list. Implements TAO_Profile. Definition at line 815 of file Profile.cpp.
00816 {
00817 return 0;
00818 }
|
|
Return how many endpoints this profile contains.
Implements TAO_Profile. Definition at line 821 of file Profile.cpp.
00822 {
00823 return 0;
00824 }
|
|
Return a hash value for this object.
Implements TAO_Profile. Definition at line 912 of file Profile.cpp. References body_, ACE::hash_pjw(), and TAO::unbounded_value_sequence< T >::length().
00914 { 00915 return (ACE::hash_pjw (reinterpret_cast <const char*> 00916 (this->body_.get_buffer ()), 00917 this->body_.length ()) % max); 00918 } |
|
Allow services to apply their own definition of "equivalence.".
This method differs from the Reimplemented from TAO_Profile. Definition at line 903 of file Profile.cpp.
00904 { 00905 // Override the default implementation since we don't need the 00906 // additional checks it performs. 00907 00908 return TAO_Service_Callbacks::DONT_KNOW; 00909 } |
|
The object key delimiter.
Implements TAO_Profile. Definition at line 839 of file Profile.cpp.
00840 {
00841 return 0;
00842 }
|
|
Initialize this object using the given input string. Supports URL style of object references Reimplemented from TAO_Profile. Definition at line 827 of file Profile.cpp.
00828 {
00829 // @@ THROW something????
00830 }
|
|
Protocol specific implementation of parse_string ().
Implements TAO_Profile. Definition at line 833 of file Profile.cpp.
00834 {
00835 // @@ THROW something????
00836 }
|
|
Return a string representation for this profile. Client must deallocate memory. Only one endpoint is included into the string. Implements TAO_Profile. Definition at line 845 of file Profile.cpp.
00846 { 00847 // @@ THROW something? 00848 return 0; 00849 } |
|
Definition at line 458 of file Profile.h. Referenced by decode(), do_is_equivalent(), encode(), and hash(). |