summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2003-11-06 01:27:16 +0000
committerbala <balanatarajan@users.noreply.github.com>2003-11-06 01:27:16 +0000
commitfaa4eeb78de2b6288bf5ca3ea596d6ed7d6a5ae4 (patch)
tree456e13a40788f615cba5b0c4837ed45fe4128a71
parent985919a289c183a99af5420608038eb7c7fc9709 (diff)
downloadATCD-faa4eeb78de2b6288bf5ca3ea596d6ed7d6a5ae4.tar.gz
ChangeLogTag:Wed Nov 5 19:19:08 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
-rw-r--r--TAO/ChangeLog28
-rw-r--r--TAO/tao/DynamicInterface/DII_Reply_Dispatcher.cpp11
-rw-r--r--TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp17
-rw-r--r--TAO/tao/PollableC.cpp172
-rw-r--r--TAO/tao/PollableC.h311
-rw-r--r--TAO/tao/PollableC.i24
-rw-r--r--TAO/tao/Remote_Invocation.cpp4
-rw-r--r--TAO/tao/Synch_Invocation.cpp8
-rw-r--r--TAO/tao/Synch_Reply_Dispatcher.cpp20
9 files changed, 336 insertions, 259 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 36203045391..d525b82273a 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,31 @@
+Wed Nov 5 19:19:08 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tao/PollableC.cpp:
+ * tao/PollableC.h:
+ * tao/PollableC.i:
+
+ Regenerated the code.
+
+ * tao/Synch_Reply_Dispatcher.cpp:
+ * tao/DynamicInterface/DII_Reply_Dispatcher.cpp:
+ * tao/Messaging/Asynch_Reply_Dispatcher.cpp:
+
+ Added debugging statements to indicate failure of clone_from ()
+ when debugging level is cranked up.
+
+ * tao/Remote_Invocation.cpp:
+ * tao/Synch_Invocation.cpp:
+ * tao/Messaging/Asynch_Reply_Dispatcher.cpp (handle_timeout):
+
+ Changed the completion status of the CORBA::TIMEOUT exception
+ thrown. For example returning a completion status of
+ COMPLETED_NO while timing out waiting for the reply seems brain
+ dead. Further fixed the minor code to return the SEND_MINOR_CODE
+ or RECV_MINOR_CODE as the case maybe.
+
+ This fixes a problem reported by Torsten Kuepper
+ <torsten.kuepper@nokia.com> [BUG 1600].
+
Wed Nov 5 16:03:08 2003 Yamuna Krishnamurthy <yamuna@oomworks.com>
* orbsvcs/orbsvcs/AV/SCTP_SEQ.h:
diff --git a/TAO/tao/DynamicInterface/DII_Reply_Dispatcher.cpp b/TAO/tao/DynamicInterface/DII_Reply_Dispatcher.cpp
index 783405bd445..1ef07265194 100644
--- a/TAO/tao/DynamicInterface/DII_Reply_Dispatcher.cpp
+++ b/TAO/tao/DynamicInterface/DII_Reply_Dispatcher.cpp
@@ -55,6 +55,17 @@ TAO_DII_Deferred_Reply_Dispatcher::dispatch_reply (
ACE_Data_Block *db =
this->reply_cdr_.clone_from (params.input_cdr_);
+
+ if (db == 0)
+ {
+ if (TAO_debug_level > 2)
+ ACE_ERROR ((
+ LM_ERROR,
+ "TAO (%P|%t) - DII_Deferred_Reply_Dispatcher::dispatch_reply ",
+ "clone_from failed \n"));
+ return -1;
+ }
+
// See whether we need to delete the data block by checking the
// flags. We cannot be happy that we initally allocated the
// datablocks of the stack. If this method is called twice, as is in
diff --git a/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp b/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp
index 60a221a54fe..6150142a87b 100644
--- a/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp
+++ b/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp
@@ -50,6 +50,16 @@ TAO_Asynch_Reply_Dispatcher::dispatch_reply (
ACE_Data_Block *db =
this->reply_cdr_.clone_from (params.input_cdr_);
+ if (db == 0)
+ {
+ if (TAO_debug_level > 2)
+ ACE_ERROR ((
+ LM_ERROR,
+ "TAO (%P|%t) - Asynch_Reply_Dispatcher::dispatch_reply ",
+ "clone_from failed \n"));
+ return -1;
+ }
+
// See whether we need to delete the data block by checking the
// flags. We cannot be happy that we initally allocated the
// datablocks of the stack. If this method is called twice, as is in
@@ -179,9 +189,10 @@ TAO_Asynch_Reply_Dispatcher::reply_timed_out (void)
{
// Generate a fake exception....
CORBA::TIMEOUT timeout_failure (
- CORBA::SystemException::_tao_minor_code (TAO_TIMEOUT_SEND_MINOR_CODE,
- errno),
- CORBA::COMPLETED_NO);
+ CORBA::SystemException::_tao_minor_code (
+ TAO_TIMEOUT_RECV_MINOR_CODE,
+ errno),
+ CORBA::COMPLETED_MAYBE);
TAO_OutputCDR out_cdr;
diff --git a/TAO/tao/PollableC.cpp b/TAO/tao/PollableC.cpp
index 4e814ff87d9..2429aa2ecb5 100644
--- a/TAO/tao/PollableC.cpp
+++ b/TAO/tao/PollableC.cpp
@@ -26,7 +26,7 @@
// http://www.cs.wustl.edu/~schmidt/TAO.html
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:301
+// be/be_codegen.cpp:302
#include "PollableC.h"
@@ -41,86 +41,19 @@
#endif /* !defined INLINE */
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_arg_traits.cpp:59
+// be/be_visitor_arg_traits.cpp:62
// Arg traits specializations.
namespace TAO
{
-
-#if !defined (_CORBA_POLLABLESET__ARG_TRAITS_CS_)
-#define _CORBA_POLLABLESET__ARG_TRAITS_CS_
-
- ACE_TEMPLATE_SPECIALIZATION
- class TAO_Export Arg_Traits<CORBA::PollableSet>
- : public
- Object_Arg_Traits_T<
- CORBA::PollableSet_ptr,
- CORBA::PollableSet_var,
- CORBA::PollableSet_out,
- TAO::Objref_Traits<CORBA::PollableSet>
- >
- {
- };
-
-#endif /* end #if !defined */
-
-#if !defined (_CORBA_POLLABLE__ARG_TRAITS_CS_)
-#define _CORBA_POLLABLE__ARG_TRAITS_CS_
-
- ACE_TEMPLATE_SPECIALIZATION
- class TAO_Export Arg_Traits<CORBA::Pollable>
- : public
- Object_Arg_Traits_T<
- CORBA::Pollable_ptr,
- CORBA::Pollable_var,
- CORBA::Pollable_out,
- TAO::Objref_Traits<CORBA::Pollable>
- >
- {
- };
-
-#endif /* end #if !defined */
-
-#if !defined (_CORBA_DIIPOLLABLE__ARG_TRAITS_CS_)
-#define _CORBA_DIIPOLLABLE__ARG_TRAITS_CS_
-
- ACE_TEMPLATE_SPECIALIZATION
- class TAO_Export Arg_Traits<CORBA::DIIPollable>
- : public
- Object_Arg_Traits_T<
- CORBA::DIIPollable_ptr,
- CORBA::DIIPollable_var,
- CORBA::DIIPollable_out,
- TAO::Objref_Traits<CORBA::DIIPollable>
- >
- {
- };
-
-#endif /* end #if !defined */
-
-#if !defined (_CORBA_POLLABLESET__ARG_TRAITS_CS_)
-#define _CORBA_POLLABLESET__ARG_TRAITS_CS_
-
- ACE_TEMPLATE_SPECIALIZATION
- class TAO_Export Arg_Traits<CORBA::PollableSet>
- : public
- Object_Arg_Traits_T<
- CORBA::PollableSet_ptr,
- CORBA::PollableSet_var,
- CORBA::PollableSet_out,
- TAO::Objref_Traits<CORBA::PollableSet>
- >
- {
- };
-
-#endif /* end #if !defined */
};
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_cs.cpp:60
+// be/be_visitor_interface/interface_cs.cpp:60
// Traits specializations for CORBA::Pollable.
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Pollable_ptr
TAO::Objref_Traits<CORBA::Pollable>::tao_duplicate (
CORBA::Pollable_ptr p
@@ -129,6 +62,7 @@ TAO::Objref_Traits<CORBA::Pollable>::tao_duplicate (
return CORBA::Pollable::_duplicate (p);
}
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<CORBA::Pollable>::tao_release (
CORBA::Pollable_ptr p
@@ -137,12 +71,14 @@ TAO::Objref_Traits<CORBA::Pollable>::tao_release (
CORBA::release (p);
}
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Pollable_ptr
TAO::Objref_Traits<CORBA::Pollable>::tao_nil (void)
{
return CORBA::Pollable::_nil ();
}
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<CORBA::Pollable>::tao_marshal (
CORBA::Pollable_ptr p,
@@ -153,7 +89,7 @@ TAO::Objref_Traits<CORBA::Pollable>::tao_marshal (
}
// Function pointer for collocation factory initialization.
-TAO::Collocation_Proxy_Broker *
+TAO::Collocation_Proxy_Broker *
(*CORBA__TAO_Pollable_Proxy_Broker_Factory_function_pointer) (
CORBA::Object_ptr obj
) = 0;
@@ -174,10 +110,10 @@ CORBA::Pollable::_narrow (
{
return Pollable::_nil ();
}
-
+
Pollable_ptr proxy =
dynamic_cast<Pollable_ptr> (_tao_objref);
-
+
return Pollable::_duplicate (proxy);
}
@@ -188,7 +124,7 @@ CORBA::Pollable::_duplicate (Pollable_ptr obj)
{
obj->_add_ref ();
}
-
+
return obj;
}
@@ -233,10 +169,11 @@ CORBA::Pollable::marshal (TAO_OutputCDR &)
}
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_cs.cpp:60
+// be/be_visitor_interface/interface_cs.cpp:60
// Traits specializations for CORBA::DIIPollable.
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::DIIPollable_ptr
TAO::Objref_Traits<CORBA::DIIPollable>::tao_duplicate (
CORBA::DIIPollable_ptr p
@@ -245,6 +182,7 @@ TAO::Objref_Traits<CORBA::DIIPollable>::tao_duplicate (
return CORBA::DIIPollable::_duplicate (p);
}
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<CORBA::DIIPollable>::tao_release (
CORBA::DIIPollable_ptr p
@@ -253,12 +191,14 @@ TAO::Objref_Traits<CORBA::DIIPollable>::tao_release (
CORBA::release (p);
}
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::DIIPollable_ptr
TAO::Objref_Traits<CORBA::DIIPollable>::tao_nil (void)
{
return CORBA::DIIPollable::_nil ();
}
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<CORBA::DIIPollable>::tao_marshal (
CORBA::DIIPollable_ptr p,
@@ -269,7 +209,7 @@ TAO::Objref_Traits<CORBA::DIIPollable>::tao_marshal (
}
// Function pointer for collocation factory initialization.
-TAO::Collocation_Proxy_Broker *
+TAO::Collocation_Proxy_Broker *
(*CORBA__TAO_DIIPollable_Proxy_Broker_Factory_function_pointer) (
CORBA::Object_ptr obj
) = 0;
@@ -290,10 +230,10 @@ CORBA::DIIPollable::_narrow (
{
return DIIPollable::_nil ();
}
-
+
DIIPollable_ptr proxy =
dynamic_cast<DIIPollable_ptr> (_tao_objref);
-
+
return DIIPollable::_duplicate (proxy);
}
@@ -304,7 +244,7 @@ CORBA::DIIPollable::_duplicate (DIIPollable_ptr obj)
{
obj->_add_ref ();
}
-
+
return obj;
}
@@ -353,10 +293,11 @@ CORBA::DIIPollable::marshal (TAO_OutputCDR &)
}
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_cs.cpp:60
+// be/be_visitor_interface/interface_cs.cpp:60
// Traits specializations for CORBA::PollableSet.
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::PollableSet_ptr
TAO::Objref_Traits<CORBA::PollableSet>::tao_duplicate (
CORBA::PollableSet_ptr p
@@ -365,6 +306,7 @@ TAO::Objref_Traits<CORBA::PollableSet>::tao_duplicate (
return CORBA::PollableSet::_duplicate (p);
}
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<CORBA::PollableSet>::tao_release (
CORBA::PollableSet_ptr p
@@ -373,12 +315,14 @@ TAO::Objref_Traits<CORBA::PollableSet>::tao_release (
CORBA::release (p);
}
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::PollableSet_ptr
TAO::Objref_Traits<CORBA::PollableSet>::tao_nil (void)
{
return CORBA::PollableSet::_nil ();
}
+ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<CORBA::PollableSet>::tao_marshal (
CORBA::PollableSet_ptr p,
@@ -389,13 +333,13 @@ TAO::Objref_Traits<CORBA::PollableSet>::tao_marshal (
}
// Function pointer for collocation factory initialization.
-TAO::Collocation_Proxy_Broker *
+TAO::Collocation_Proxy_Broker *
(*CORBA__TAO_PollableSet_Proxy_Broker_Factory_function_pointer) (
CORBA::Object_ptr obj
) = 0;
-// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_cs.cpp:63
+// TAO_IDL - Generated from
+// be/be_visitor_exception/exception_cs.cpp:63
CORBA::PollableSet::NoPossiblePollable::NoPossiblePollable (void)
: CORBA::UserException (
@@ -479,8 +423,8 @@ void CORBA::PollableSet::NoPossiblePollable::_tao_decode (
-// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_cs.cpp:63
+// TAO_IDL - Generated from
+// be/be_visitor_exception/exception_cs.cpp:63
CORBA::PollableSet::UnknownPollable::UnknownPollable (void)
: CORBA::UserException (
@@ -580,10 +524,10 @@ CORBA::PollableSet::_narrow (
{
return PollableSet::_nil ();
}
-
+
PollableSet_ptr proxy =
dynamic_cast<PollableSet_ptr> (_tao_objref);
-
+
return PollableSet::_duplicate (proxy);
}
@@ -594,7 +538,7 @@ CORBA::PollableSet::_duplicate (PollableSet_ptr obj)
{
obj->_add_ref ();
}
-
+
return obj;
}
@@ -639,41 +583,50 @@ CORBA::PollableSet::marshal (TAO_OutputCDR &)
}
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/root.cpp:1703
+// be/be_visitor_root/root.cpp:1702
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class TAO::Objref_Traits<CORBA::PollableSet>;
+ template class
+ TAO::Objref_Traits<
+ CORBA::PollableSet
+ >;
template class
TAO_Objref_Var_T<
CORBA::PollableSet
>;
-
+
template class
TAO_Objref_Out_T<
CORBA::PollableSet
>;
- template class TAO::Objref_Traits<CORBA::Pollable>;
+ template class
+ TAO::Objref_Traits<
+ CORBA::Pollable
+ >;
template class
TAO_Objref_Var_T<
CORBA::Pollable
>;
-
+
template class
TAO_Objref_Out_T<
CORBA::Pollable
>;
- template class TAO::Objref_Traits<CORBA::DIIPollable>;
+ template class
+ TAO::Objref_Traits<
+ CORBA::DIIPollable
+ >;
template class
TAO_Objref_Var_T<
CORBA::DIIPollable
>;
-
+
template class
TAO_Objref_Out_T<
CORBA::DIIPollable
@@ -681,45 +634,50 @@ CORBA::PollableSet::marshal (TAO_OutputCDR &)
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# pragma instantiate TAO::Objref_Traits<CORBA::PollableSet>
+# pragma instantiate \
+ TAO::Objref_Traits< \
+ CORBA::PollableSet \
+ >
# pragma instantiate \
TAO_Objref_Var_T< \
CORBA::PollableSet
>
-
+
# pragma instantiate \
TAO_Objref_Out_T< \
CORBA::PollableSet
>
-# pragma instantiate TAO::Objref_Traits<CORBA::Pollable>
+# pragma instantiate \
+ TAO::Objref_Traits< \
+ CORBA::Pollable \
+ >
# pragma instantiate \
TAO_Objref_Var_T< \
CORBA::Pollable
>
-
+
# pragma instantiate \
TAO_Objref_Out_T< \
CORBA::Pollable
>
-# pragma instantiate TAO::Objref_Traits<CORBA::DIIPollable>
+# pragma instantiate \
+ TAO::Objref_Traits< \
+ CORBA::DIIPollable \
+ >
# pragma instantiate \
TAO_Objref_Var_T< \
CORBA::DIIPollable
>
-
+
# pragma instantiate \
TAO_Objref_Out_T< \
CORBA::DIIPollable
>
-# pragma instantiate \
- TAO::Any_Impl_T< \
- CORBA::DIIPollable \
- >
+#endif /* !ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* !ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/tao/PollableC.h b/TAO/tao/PollableC.h
index 8634880fa48..d016461fef4 100644
--- a/TAO/tao/PollableC.h
+++ b/TAO/tao/PollableC.h
@@ -26,20 +26,23 @@
// http://www.cs.wustl.edu/~schmidt/TAO.html
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:151
+// be/be_codegen.cpp:150
#ifndef _TAO_IDL_ORIG_POLLABLEC_H_
#define _TAO_IDL_ORIG_POLLABLEC_H_
#include /**/ "ace/pre.h"
-#include "Exception.h"
+#include "tao/ORB.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "Object.h"
+#include "tao/CDR.h"
+#include "tao/Environment.h"
+#include "tao/Object.h"
+#include "tao/Objref_VarOut_T.h"
#if defined (TAO_EXPORT_MACRO)
#undef TAO_EXPORT_MACRO
@@ -64,37 +67,38 @@
#pragma option push -w-rvl -w-rch -w-ccc -w-inl
#endif /* __BORLANDC__ */
-// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/root_ch.cpp:63
+// TAO_IDL - Generated from
+// be/be_visitor_root/root_ch.cpp:63
namespace TAO
{
class Collocation_Proxy_Broker;
-
+
template<typename T> class Narrow_Utils;
+ template<typename T> class AbstractBase_Narrow_Utils;
}
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_module/module_ch.cpp:48
+// be/be_visitor_module/module_ch.cpp:48
namespace CORBA
{
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:601
+ // be/be_interface.cpp:612
#if !defined (_CORBA_POLLABLESET__VAR_OUT_CH_)
#define _CORBA_POLLABLESET__VAR_OUT_CH_
-
+
class PollableSet;
typedef PollableSet *PollableSet_ptr;
-
+
typedef
TAO_Objref_Var_T<
PollableSet
>
PollableSet_var;
-
+
typedef
TAO_Objref_Out_T<
PollableSet
@@ -102,22 +106,22 @@ namespace CORBA
PollableSet_out;
#endif /* end #if !defined */
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:601
+ // be/be_interface.cpp:612
#if !defined (_CORBA_POLLABLE__VAR_OUT_CH_)
#define _CORBA_POLLABLE__VAR_OUT_CH_
-
+
class Pollable;
typedef Pollable *Pollable_ptr;
-
+
typedef
TAO_Objref_Var_T<
Pollable
>
Pollable_var;
-
+
typedef
TAO_Objref_Out_T<
Pollable
@@ -125,38 +129,38 @@ namespace CORBA
Pollable_out;
#endif /* end #if !defined */
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:53
+ // be/be_visitor_interface/interface_ch.cpp:54
#if !defined (_CORBA_POLLABLE_CH_)
#define _CORBA_POLLABLE_CH_
-
+
class TAO_Export Pollable
: public virtual CORBA::Object
{
public:
typedef Pollable_ptr _ptr_type;
typedef Pollable_var _var_type;
-
+
// The static operations.
static Pollable_ptr _duplicate (Pollable_ptr obj);
-
+
static Pollable_ptr _narrow (
CORBA::Object_ptr obj
ACE_ENV_ARG_DECL_WITH_DEFAULTS
);
-
+
static Pollable_ptr _nil (void)
- {
- return (Pollable_ptr)0;
- }
-
-
-
+ {
+ return (Pollable_ptr)0;
+ }
+
+
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46
-
+ // be/be_visitor_operation/operation_ch.cpp:46
+
virtual CORBA::Boolean is_ready (
CORBA::ULong timeout
ACE_ENV_ARG_DECL_WITH_DEFAULTS
@@ -164,54 +168,58 @@ namespace CORBA
ACE_THROW_SPEC ((
CORBA::SystemException
)) = 0;
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46
-
+ // be/be_visitor_operation/operation_ch.cpp:46
+
virtual ::CORBA::PollableSet_ptr create_pollable_set (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((
CORBA::SystemException
)) = 0;
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:185
-
+ // be/be_visitor_interface/interface_ch.cpp:192
+
virtual CORBA::Boolean _is_a (
const char *type_id
ACE_ENV_ARG_DECL_WITH_DEFAULTS
);
-
+
virtual const char* _interface_repository_id (void) const;
virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
-
+
protected:
+ // Abstract or local interface only.
Pollable (void);
+
virtual ~Pollable (void);
-
+
private:
+ // Private and unimplemented for concrete interfaces.
Pollable (const Pollable &);
+
void operator= (const Pollable &);
};
#endif /* end #if !defined */
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_interface.cpp:601
+ // be/be_interface.cpp:612
#if !defined (_CORBA_DIIPOLLABLE__VAR_OUT_CH_)
#define _CORBA_DIIPOLLABLE__VAR_OUT_CH_
-
+
class DIIPollable;
typedef DIIPollable *DIIPollable_ptr;
-
+
typedef
TAO_Objref_Var_T<
DIIPollable
>
DIIPollable_var;
-
+
typedef
TAO_Objref_Out_T<
DIIPollable
@@ -219,101 +227,105 @@ namespace CORBA
DIIPollable_out;
#endif /* end #if !defined */
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:53
+ // be/be_visitor_interface/interface_ch.cpp:54
#if !defined (_CORBA_DIIPOLLABLE_CH_)
#define _CORBA_DIIPOLLABLE_CH_
-
+
class TAO_Export DIIPollable
: public virtual CORBA::Pollable
{
public:
typedef DIIPollable_ptr _ptr_type;
typedef DIIPollable_var _var_type;
-
+
// The static operations.
static DIIPollable_ptr _duplicate (DIIPollable_ptr obj);
-
+
static DIIPollable_ptr _narrow (
CORBA::Object_ptr obj
ACE_ENV_ARG_DECL_WITH_DEFAULTS
);
-
+
static DIIPollable_ptr _nil (void)
- {
- return (DIIPollable_ptr)0;
- }
-
-
-
+ {
+ return (DIIPollable_ptr)0;
+ }
+
+
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:185
-
+ // be/be_visitor_interface/interface_ch.cpp:192
+
virtual CORBA::Boolean _is_a (
const char *type_id
ACE_ENV_ARG_DECL_WITH_DEFAULTS
);
-
+
virtual const char* _interface_repository_id (void) const;
virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
-
+
protected:
+ // Abstract or local interface only.
DIIPollable (void);
+
virtual ~DIIPollable (void);
-
+
private:
+ // Private and unimplemented for concrete interfaces.
DIIPollable (const DIIPollable &);
+
void operator= (const DIIPollable &);
};
#endif /* end #if !defined */
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:53
+ // be/be_visitor_interface/interface_ch.cpp:54
#if !defined (_CORBA_POLLABLESET_CH_)
#define _CORBA_POLLABLESET_CH_
-
+
class TAO_Export PollableSet
: public virtual CORBA::Object
{
public:
typedef PollableSet_ptr _ptr_type;
typedef PollableSet_var _var_type;
-
+
// The static operations.
static PollableSet_ptr _duplicate (PollableSet_ptr obj);
-
+
static PollableSet_ptr _narrow (
CORBA::Object_ptr obj
ACE_ENV_ARG_DECL_WITH_DEFAULTS
);
-
+
static PollableSet_ptr _nil (void)
- {
- return (PollableSet_ptr)0;
- }
-
-
-
+ {
+ return (PollableSet_ptr)0;
+ }
+
+
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ch.cpp:51
+ // be/be_visitor_exception/exception_ch.cpp:51
#if !defined (_CORBA_POLLABLESET_NOPOSSIBLEPOLLABLE_CH_)
#define _CORBA_POLLABLESET_NOPOSSIBLEPOLLABLE_CH_
-
+
class TAO_Export NoPossiblePollable : public CORBA::UserException
{
public:
-
+
NoPossiblePollable (void);
NoPossiblePollable (const NoPossiblePollable &);
~NoPossiblePollable (void);
NoPossiblePollable &operator= (const NoPossiblePollable &);
-
+
static NoPossiblePollable *_downcast (CORBA::Exception *);
static CORBA::Exception *_alloc (void);
@@ -325,34 +337,34 @@ namespace CORBA
TAO_OutputCDR &
ACE_ENV_ARG_DECL
) const;
-
+
virtual void _tao_decode (
TAO_InputCDR &
ACE_ENV_ARG_DECL
);
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ch.cpp:125
+ // be/be_visitor_exception/exception_ch.cpp:125
};
#endif /* end #if !defined */
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ch.cpp:51
+ // be/be_visitor_exception/exception_ch.cpp:51
#if !defined (_CORBA_POLLABLESET_UNKNOWNPOLLABLE_CH_)
#define _CORBA_POLLABLESET_UNKNOWNPOLLABLE_CH_
-
+
class TAO_Export UnknownPollable : public CORBA::UserException
{
public:
-
+
UnknownPollable (void);
UnknownPollable (const UnknownPollable &);
~UnknownPollable (void);
UnknownPollable &operator= (const UnknownPollable &);
-
+
static UnknownPollable *_downcast (CORBA::Exception *);
static CORBA::Exception *_alloc (void);
@@ -364,31 +376,31 @@ namespace CORBA
TAO_OutputCDR &
ACE_ENV_ARG_DECL
) const;
-
+
virtual void _tao_decode (
TAO_InputCDR &
ACE_ENV_ARG_DECL
);
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_exception/exception_ch.cpp:125
+ // be/be_visitor_exception/exception_ch.cpp:125
};
#endif /* end #if !defined */
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46
-
+ // be/be_visitor_operation/operation_ch.cpp:46
+
virtual ::CORBA::DIIPollable_ptr create_dii_pollable (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((
CORBA::SystemException
)) = 0;
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46
-
+ // be/be_visitor_operation/operation_ch.cpp:46
+
virtual void add_pollable (
CORBA::Pollable_ptr potential
ACE_ENV_ARG_DECL_WITH_DEFAULTS
@@ -396,10 +408,10 @@ namespace CORBA
ACE_THROW_SPEC ((
CORBA::SystemException
)) = 0;
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46
-
+ // be/be_visitor_operation/operation_ch.cpp:46
+
virtual ::CORBA::Pollable_ptr poll (
CORBA::ULong timeout
ACE_ENV_ARG_DECL_WITH_DEFAULTS
@@ -408,10 +420,10 @@ namespace CORBA
CORBA::SystemException
, CORBA::PollableSet::NoPossiblePollable
)) = 0;
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46
-
+ // be/be_visitor_operation/operation_ch.cpp:46
+
virtual void remove (
CORBA::Pollable_ptr potential
ACE_ENV_ARG_DECL_WITH_DEFAULTS
@@ -420,64 +432,131 @@ namespace CORBA
CORBA::SystemException
, CORBA::PollableSet::UnknownPollable
)) = 0;
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_operation/operation_ch.cpp:46
-
+ // be/be_visitor_operation/operation_ch.cpp:46
+
virtual CORBA::UShort number_left (
ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
)
ACE_THROW_SPEC ((
CORBA::SystemException
)) = 0;
-
+
// TAO_IDL - Generated from
- // W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ch.cpp:185
-
+ // be/be_visitor_interface/interface_ch.cpp:192
+
virtual CORBA::Boolean _is_a (
const char *type_id
ACE_ENV_ARG_DECL_WITH_DEFAULTS
);
-
+
virtual const char* _interface_repository_id (void) const;
virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
-
+
protected:
+ // Abstract or local interface only.
PollableSet (void);
+
virtual ~PollableSet (void);
-
+
private:
+ // Private and unimplemented for concrete interfaces.
PollableSet (const PollableSet &);
+
void operator= (const PollableSet &);
};
#endif /* end #if !defined */
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_module/module_ch.cpp:66
+// be/be_visitor_module/module_ch.cpp:66
} // module CORBA
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_traits.cpp:48
+// be/be_visitor_traits.cpp:50
// Traits specializations.
namespace TAO
{
+
+#if !defined (_CORBA_POLLABLESET__TRAITS_CH_)
+#define _CORBA_POLLABLESET__TRAITS_CH_
+
+ ACE_TEMPLATE_SPECIALIZATION
+ struct TAO_Export Objref_Traits<CORBA::PollableSet>
+ {
+ static CORBA::PollableSet_ptr tao_duplicate (
+ CORBA::PollableSet_ptr
+ );
+ static void tao_release (
+ CORBA::PollableSet_ptr
+ );
+ static CORBA::PollableSet_ptr tao_nil (void);
+ static CORBA::Boolean tao_marshal (
+ CORBA::PollableSet_ptr p,
+ TAO_OutputCDR & cdr
+ );
+ };
+
+#endif /* end #if !defined */
+
+#if !defined (_CORBA_POLLABLE__TRAITS_CH_)
+#define _CORBA_POLLABLE__TRAITS_CH_
+
+ ACE_TEMPLATE_SPECIALIZATION
+ struct TAO_Export Objref_Traits<CORBA::Pollable>
+ {
+ static CORBA::Pollable_ptr tao_duplicate (
+ CORBA::Pollable_ptr
+ );
+ static void tao_release (
+ CORBA::Pollable_ptr
+ );
+ static CORBA::Pollable_ptr tao_nil (void);
+ static CORBA::Boolean tao_marshal (
+ CORBA::Pollable_ptr p,
+ TAO_OutputCDR & cdr
+ );
+ };
+
+#endif /* end #if !defined */
+
+#if !defined (_CORBA_DIIPOLLABLE__TRAITS_CH_)
+#define _CORBA_DIIPOLLABLE__TRAITS_CH_
+
+ ACE_TEMPLATE_SPECIALIZATION
+ struct TAO_Export Objref_Traits<CORBA::DIIPollable>
+ {
+ static CORBA::DIIPollable_ptr tao_duplicate (
+ CORBA::DIIPollable_ptr
+ );
+ static void tao_release (
+ CORBA::DIIPollable_ptr
+ );
+ static CORBA::DIIPollable_ptr tao_nil (void);
+ static CORBA::Boolean tao_marshal (
+ CORBA::DIIPollable_ptr p,
+ TAO_OutputCDR & cdr
+ );
+ };
+
+#endif /* end #if !defined */
};
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/cdr_op.cpp:48
+// be/be_visitor_root/cdr_op.cpp:48
#ifndef __ACE_INLINE__
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_root/cdr_op.cpp:64
+// be/be_visitor_root/cdr_op.cpp:64
#endif /* __ACE_INLINE__ */
// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_codegen.cpp:969
+// be/be_codegen.cpp:911
#if defined (__ACE_INLINE__)
#include "PollableC.i"
@@ -492,4 +571,6 @@ namespace TAO
#endif /* __BORLANDC__ */
#include /**/ "ace/post.h"
+
#endif /* ifndef */
+
diff --git a/TAO/tao/PollableC.i b/TAO/tao/PollableC.i
index b8797227eb2..38aa32569ba 100644
--- a/TAO/tao/PollableC.i
+++ b/TAO/tao/PollableC.i
@@ -26,27 +26,3 @@
// http://www.cs.wustl.edu/~schmidt/TAO.html
-// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ci.cpp:63
-
-#if !defined (_CORBA_POLLABLE___CI_)
-#define _CORBA_POLLABLE___CI_
-
-#endif /* end #if !defined */
-
-// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ci.cpp:63
-
-#if !defined (_CORBA_DIIPOLLABLE___CI_)
-#define _CORBA_DIIPOLLABLE___CI_
-
-#endif /* end #if !defined */
-
-// TAO_IDL - Generated from
-// W:\ACE_wrappers\TAO\TAO_IDL\be\be_visitor_interface/interface_ci.cpp:63
-
-#if !defined (_CORBA_POLLABLESET___CI_)
-#define _CORBA_POLLABLESET___CI_
-
-#endif /* end #if !defined */
-
diff --git a/TAO/tao/Remote_Invocation.cpp b/TAO/tao/Remote_Invocation.cpp
index 97377e5371f..e2545e35a2c 100644
--- a/TAO/tao/Remote_Invocation.cpp
+++ b/TAO/tao/Remote_Invocation.cpp
@@ -149,13 +149,15 @@ namespace TAO
{
if (errno == ETIME)
{
+ // We sent a message already and we haven't gotten a
+ // reply. Just throw YIMMEOUT with *COMPLETED_MAYBE*.
ACE_THROW_RETURN (
CORBA::TIMEOUT (
CORBA::SystemException::_tao_minor_code (
TAO_TIMEOUT_SEND_MINOR_CODE,
errno
),
- CORBA::COMPLETED_NO
+ CORBA::COMPLETED_MAYBE
),
TAO_INVOKE_FAILURE
);
diff --git a/TAO/tao/Synch_Invocation.cpp b/TAO/tao/Synch_Invocation.cpp
index ac50afd0906..9a1ebfb7f1f 100644
--- a/TAO/tao/Synch_Invocation.cpp
+++ b/TAO/tao/Synch_Invocation.cpp
@@ -278,13 +278,13 @@ namespace TAO
// dispatching has started. This is fragile.
if (bd.unbind_dispatcher () == 0)
{
- // Just a timeout, don't close the connection or
- // anything...
+ // Just a timeout with completed_maybe, don't close
+ // the connection or anything
ACE_THROW_RETURN (CORBA::TIMEOUT (
CORBA::SystemException::_tao_minor_code (
- TAO_TIMEOUT_SEND_MINOR_CODE,
+ TAO_TIMEOUT_RECV_MINOR_CODE,
errno),
- CORBA::COMPLETED_NO),
+ CORBA::COMPLETED_MAYBE),
TAO_INVOKE_FAILURE);
}
}
diff --git a/TAO/tao/Synch_Reply_Dispatcher.cpp b/TAO/tao/Synch_Reply_Dispatcher.cpp
index edf59c5d67a..47b0b31cc70 100644
--- a/TAO/tao/Synch_Reply_Dispatcher.cpp
+++ b/TAO/tao/Synch_Reply_Dispatcher.cpp
@@ -1,11 +1,12 @@
// $Id$
-#include "tao/Synch_Reply_Dispatcher.h"
-#include "tao/ORB_Core.h"
-#include "tao/Pluggable_Messaging_Utils.h"
+#include "Synch_Reply_Dispatcher.h"
+#include "ORB_Core.h"
+#include "Pluggable_Messaging_Utils.h"
+#include "debug.h"
-ACE_RCSID (tao,
- Synch_Reply_Dispatcher,
+ACE_RCSID (tao,
+ Synch_Reply_Dispatcher,
"$Id$")
// Constructor.
@@ -65,6 +66,15 @@ TAO_Synch_Reply_Dispatcher::dispatch_reply (
ACE_Data_Block *db =
this->reply_cdr_.clone_from (params.input_cdr_);
+ if (db == 0)
+ {
+ if (TAO_debug_level > 2)
+ ACE_ERROR ((LM_ERROR,
+ "TAO (%P|%t) - Synch_Reply_Dispatcher::dispatch_reply ",
+ "clone_from failed \n"));
+ return -1;
+ }
+
// See whether we need to delete the data block by checking the
// flags. We cannot be happy that we initally allocated the
// datablocks of the stack. If this method is called twice, as is in