diff options
author | Phil Mesnier <mesnier_p@ociweb.com> | 2006-07-01 15:46:08 +0000 |
---|---|---|
committer | Phil Mesnier <mesnier_p@ociweb.com> | 2006-07-01 15:46:08 +0000 |
commit | 0c915687c29ab36116372207284a04ffecfde53b (patch) | |
tree | bb9ecfc2e4b36143822b5371112d895b85bc3ee1 | |
parent | e8c51091f9703299450eb371308a00d9b5f7acdc (diff) | |
download | ATCD-0c915687c29ab36116372207284a04ffecfde53b.tar.gz |
ChangeLog tag: Sat Jul 1 15:32:43 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com>
-rw-r--r-- | TAO/ChangeLog | 21 | ||||
-rw-r--r-- | TAO/tao/AnyTypeCode/skip.cpp | 7 | ||||
-rw-r--r-- | TAO/tao/TAO_Server_Request.h | 4 | ||||
-rw-r--r-- | TAO/tao/Valuetype/Valuetype_Adapter_Impl.cpp | 11 | ||||
-rw-r--r-- | TAO/tao/Valuetype/Valuetype_Adapter_Impl.h | 3 | ||||
-rw-r--r-- | TAO/tao/Valuetype_Adapter.h | 3 |
6 files changed, 42 insertions, 7 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index a6a06a8ad33..fbb068c2c6f 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,24 @@ +Sat Jul 1 15:32:43 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com> + + * tao/AnyTypeCode/skip.cpp: + * tao/Valuetype/Valuetype_Adapter_Impl.h: + * tao/Valuetype/Valuetype_Adapter_Impl.cpp: + * tao/Valuetype_Adapter.h: + + Added an exclusion for Valuetypes marshaled with implied types. + Implicitly typed values are those for which the actual valuetype + matches the formal valuetype. For values inserted into an Any + this is always true as the Any separately marshals the typecode + making it redundant to do this again by the value itself. + + TAO only marshals values this way when compiled to use optimized + valuetype marshaling which is not the default case since it + breaks backwards compatibility. + + * tao/TAO_Server_Request.h: + + Fixed a typo in a comment. + Sat Jul 1 12:16:20 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com> * tao/Valuetype/ValueBase.cpp: diff --git a/TAO/tao/AnyTypeCode/skip.cpp b/TAO/tao/AnyTypeCode/skip.cpp index 9d1f455c933..86a7d6c3d3f 100644 --- a/TAO/tao/AnyTypeCode/skip.cpp +++ b/TAO/tao/AnyTypeCode/skip.cpp @@ -986,10 +986,15 @@ TAO_Marshal_Value::skip (CORBA::TypeCode_ptr tc, } else if (value_tag & adapter->type_info_single ()) { + // @@@ this isn't really correct, the test will return true + // if the value_tag ends with 02 for a single value or 06 + // for a value list. In the latter case, we need to skip an + // array of strings. + // Skip a single repository id which is of type string. stream->skip_string (); } - else + else if (value_tag != adapter->type_info_implied ()) { //@@ boris: VT CDR return TAO::TRAVERSE_STOP; diff --git a/TAO/tao/TAO_Server_Request.h b/TAO/tao/TAO_Server_Request.h index 20a8995daf0..d2e4d4efde7 100644 --- a/TAO/tao/TAO_Server_Request.h +++ b/TAO/tao/TAO_Server_Request.h @@ -80,7 +80,7 @@ class TAO_Operation_Details; class TAO_Export TAO_ServerRequest { public: - + /// Declare FW_Server_Request_Wrapper a friend /// This friendship makes the FW_Server_Request_Wrapper be able to /// clone the TAO_ServerRequest. @@ -341,7 +341,7 @@ private: /** * An argument flag to indicate whether there is any data that is - * going to get marshalled along as a reply. The default will be 1 + * going to get marshaled along as a reply. The default will be 1 * which indicates that we have some data that needs to be sent back * to the client. */ diff --git a/TAO/tao/Valuetype/Valuetype_Adapter_Impl.cpp b/TAO/tao/Valuetype/Valuetype_Adapter_Impl.cpp index 074fcdf7de2..feb3c35f783 100644 --- a/TAO/tao/Valuetype/Valuetype_Adapter_Impl.cpp +++ b/TAO/tao/Valuetype/Valuetype_Adapter_Impl.cpp @@ -42,12 +42,20 @@ TAO_Valuetype_Adapter_Impl::stream_to_abstract_base ( return cdr >> obj; } -CORBA::ULong +CORBA::Long TAO_Valuetype_Adapter_Impl::type_info_single (void) const { return TAO_OBV_GIOP_Flags::Type_info_single; } +CORBA::Long +TAO_Valuetype_Adapter_Impl::type_info_implied (void) const +{ + return + TAO_OBV_GIOP_Flags::Value_tag_base | + TAO_OBV_GIOP_Flags::Type_info_none; +} + int TAO_Valuetype_Adapter_Impl::vf_map_rebind (const char *repo_id, CORBA::ValueFactory &factory) @@ -72,4 +80,3 @@ TAO_Valuetype_Adapter_Impl::vf_map_find (const char *repo_id) } TAO_END_VERSIONED_NAMESPACE_DECL - diff --git a/TAO/tao/Valuetype/Valuetype_Adapter_Impl.h b/TAO/tao/Valuetype/Valuetype_Adapter_Impl.h index eb8a6550838..933308e42c9 100644 --- a/TAO/tao/Valuetype/Valuetype_Adapter_Impl.h +++ b/TAO/tao/Valuetype/Valuetype_Adapter_Impl.h @@ -56,7 +56,8 @@ public: CORBA::AbstractBase_ptr & ); - virtual CORBA::ULong type_info_single (void) const; + virtual CORBA::Long type_info_single (void) const; + virtual CORBA::Long type_info_implied (void) const; virtual int vf_map_rebind (const char *, CORBA::ValueFactory &); diff --git a/TAO/tao/Valuetype_Adapter.h b/TAO/tao/Valuetype_Adapter.h index b87ea614994..f967a77e423 100644 --- a/TAO/tao/Valuetype_Adapter.h +++ b/TAO/tao/Valuetype_Adapter.h @@ -67,7 +67,8 @@ public: CORBA::AbstractBase_ptr & ) = 0; - virtual CORBA::ULong type_info_single (void) const = 0; + virtual CORBA::Long type_info_single (void) const = 0; + virtual CORBA::Long type_info_implied (void) const = 0; virtual int vf_map_rebind (const char *, CORBA::ValueFactory &) = 0; |