summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
Diffstat (limited to 'TAO')
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a9
-rw-r--r--TAO/tao/GIOP_Message_Accept_State.cpp15
-rw-r--r--TAO/tao/GIOP_Message_Connectors.cpp40
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;