diff options
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 9 | ||||
-rw-r--r-- | TAO/tao/GIOP_Message_Accept_State.cpp | 15 | ||||
-rw-r--r-- | TAO/tao/GIOP_Message_Connectors.cpp | 40 |
3 files changed, 25 insertions, 39 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 0070dac9297..3d9a5c837eb 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,12 @@ +Sat Apr 29 14:16:40 2000 Balachandran Natarajan <bala@cs.wustl.edu> + + * tao/GIOP_Message_Accept_State.cpp: + * tao/GIOP_Message_Connectors.cpp: Removed support for reliable + oneways from GIOP 1.1 implementation. This means that there are + only two types of calls ie. a oneway or a two way. All the + policy settings for reliable oneways will not be considered at + all. They will be converted to a simple oneway. + Sat Apr 29 11:49:19 2000 Carlos O'Ryan <coryan@uci.edu> * tests/Param_Test/anyop.dsp: diff --git a/TAO/tao/GIOP_Message_Accept_State.cpp b/TAO/tao/GIOP_Message_Accept_State.cpp index c61e57eac93..6f5f15cd9bf 100644 --- a/TAO/tao/GIOP_Message_Accept_State.cpp +++ b/TAO/tao/GIOP_Message_Accept_State.cpp @@ -169,11 +169,8 @@ TAO_GIOP_Message_Accept_State_10:: hdr_status = hdr_status && input.read_octet (response_flags); request.response_expected ((response_flags != 0)); - // The high bit of the octet has been set if the SyncScope policy - // value is SYNC_WITH_SERVER. This is a temporary hack until all - // of GIOP 1.2 is in place. Then we can check the version in the - // message header instead. - request.sync_with_server ((response_flags == 129)); + // This is not supported now in GIOP 1.1 + request.sync_with_server (0); // We use ad-hoc demarshalling here: there is no need to increase // the reference count on the CDR message block, because this key @@ -428,13 +425,11 @@ TAO_GIOP_Message_Accept_State_12:: hdr_status = hdr_status && input.read_octet (response_flags); // Need to work around the hacks - request.response_expected ((response_flags != 0)); + request.response_expected ((response_flags > 1)); // The high bit of the octet has been set if the SyncScope policy - // value is SYNC_WITH_SERVER. This is a temporary hack until all - // of GIOP 1.2 is in place. Then we can check the version in the - // message header instead. - request.sync_with_server ((response_flags == 129)); + // value is SYNC_WITH_SERVER. + request.sync_with_server ((response_flags == 2)); // Read the discriminant of the union. CORBA::Short disc = 0; diff --git a/TAO/tao/GIOP_Message_Connectors.cpp b/TAO/tao/GIOP_Message_Connectors.cpp index 19c2db7cdd3..f197f070a49 100644 --- a/TAO/tao/GIOP_Message_Connectors.cpp +++ b/TAO/tao/GIOP_Message_Connectors.cpp @@ -225,30 +225,9 @@ TAO_GIOP_Message_Connector_10:: // @@ (JP) Temporary hack until all of GIOP 1.2 is implemented. if (response_flags == 131) msg << CORBA::Any::from_octet (1); - - // Second the response flags - // Sync scope - ignored by server if request is not oneway. - else if (response_flags == CORBA::Octet (TAO::SYNC_WITH_TRANSPORT) || - response_flags == CORBA::Octet (TAO::SYNC_NONE) || - response_flags == CORBA::Octet (TAO::SYNC_EAGER_BUFFERING) || - response_flags == CORBA::Octet (TAO::SYNC_DELAYED_BUFFERING)) - // No response required. + else msg << CORBA::Any::from_octet (0); - else if (response_flags == CORBA::Octet (TAO::SYNC_WITH_SERVER)) - // Return before dispatching servant. We're also setting the high - // bit here. This is a temporary fix until the rest of GIOP 1.2 is - // implemented in TAO. - msg << CORBA::Any::from_octet (129); - - else if (response_flags == CORBA::Octet (TAO::SYNC_WITH_TARGET)) - // Return after dispatching servant. - msg << CORBA::Any::from_octet (3); - - else - // Until more flags are defined by the OMG. - return 0; - // In this case we cannot recognise anything other than the Object // key as the address disposition variable. But we do a sanity check // anyway. @@ -411,8 +390,9 @@ TAO_GIOP_Message_Connector_12:: const CORBA::Octet response_flags = opdetails.response_flags (); // Here are the Octet values for different policies - // '00000000' for SYNC_WITH_TRANSPORT & SYNC_NONE - // '00000001' for SYNC_WITH_SERVER + // '00000000' for SYNC_NONE + // '00000001' for SYNC_WITH_TRANSPORT + // '00000010' for SYNC_WITH_SERVER // '00000011' for SYNC_WITH_TARGET // '00000011' for regular two ways, but if they are invoked via a // DII with INV_NO_RESPONSE flag set then we need to send '00000001' @@ -422,21 +402,23 @@ TAO_GIOP_Message_Connector_12:: msg << CORBA::Any::from_octet (3); // Second the response flags // Sync scope - ignored by server if request is not oneway. - else if (response_flags == CORBA::Octet (TAO::SYNC_WITH_TRANSPORT) || - response_flags == CORBA::Octet (TAO::SYNC_NONE) || + else if (response_flags == CORBA::Octet (TAO::SYNC_NONE) || response_flags == CORBA::Octet (TAO::SYNC_EAGER_BUFFERING) || response_flags == CORBA::Octet (TAO::SYNC_DELAYED_BUFFERING)) // No response required. msg << CORBA::Any::from_octet (0); - else if (response_flags == CORBA::Octet (TAO::SYNC_WITH_SERVER)) - // Return before dispatching servant. + else if (response_flags == CORBA::Octet (TAO::SYNC_WITH_TRANSPORT)) + // Return after receiving message. msg << CORBA::Any::from_octet (1); + else if (response_flags == CORBA::Octet (TAO::SYNC_WITH_SERVER)) + // Return before dispatching to the servant + msg << CORBA::Any::from_octet (2); + else if (response_flags == CORBA::Octet (TAO::SYNC_WITH_TARGET)) // Return after dispatching servant. msg << CORBA::Any::from_octet (3); - else // Until more flags are defined by the OMG. return 0; |