diff options
Diffstat (limited to 'TAO/tao/Invocation_Utils.h')
-rw-r--r-- | TAO/tao/Invocation_Utils.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/TAO/tao/Invocation_Utils.h b/TAO/tao/Invocation_Utils.h new file mode 100644 index 00000000000..d719a87c7e1 --- /dev/null +++ b/TAO/tao/Invocation_Utils.h @@ -0,0 +1,78 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Invocation_Utils.h + * + * $Id$ + * + * + * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> + */ +//============================================================================= + +#ifndef TAO_INVOCATION_UTILS_H +#define TAO_INVOCATION_UTILS_H +#include /**/ "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include /**/ "tao/Versioned_Namespace.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + enum Invocation_Status + { + /// Initial state of the FSM in the invocation class. + TAO_INVOKE_START = 0, + /// The request must be restarted, a temporary failure has + /// occured. + TAO_INVOKE_RESTART, + /// invoke() call successful. Final state of the FSM. + TAO_INVOKE_SUCCESS, + /// Received a user exception from the remote object, and this + /// is one of the final states. + TAO_INVOKE_USER_EXCEPTION, + /// Received a system exception from the remote object or the + /// PI and it is one of the final states + TAO_INVOKE_SYSTEM_EXCEPTION, + /// Invocation failed. It is a final state. + TAO_INVOKE_FAILURE + }; + + /// Enums for invocation types + enum Invocation_Type { + /// A simple oneway invocation + TAO_ONEWAY_INVOCATION, + /// A simple twoway invocation + TAO_TWOWAY_INVOCATION + }; + + /// Enum for invocation modes + enum Invocation_Mode { + /// Standard synchronous twoway + TAO_SYNCHRONOUS_INVOCATION, + /// Asynchronous twoway with callback model for collecting the + /// replies. + TAO_ASYNCHRONOUS_CALLBACK_INVOCATION, + /// Asynchronous twoway with poller model for collecting the + /// replies. + /// @note This is not supported in TAO now + TAO_ASYNCHRONOUS_POLLER_INVOCATION, + /// Types of DII + TAO_DII_INVOCATION, + TAO_DII_DEFERRED_INVOCATION, + TAO_DII_ASYNCH_INVOCATION + }; +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" +#endif /* TAO_INVOCATION_UTILS_H */ |