diff options
Diffstat (limited to 'trunk/TAO/tao/PortableServer/Upcall_Command.h')
-rw-r--r-- | trunk/TAO/tao/PortableServer/Upcall_Command.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/trunk/TAO/tao/PortableServer/Upcall_Command.h b/trunk/TAO/tao/PortableServer/Upcall_Command.h new file mode 100644 index 00000000000..40c216457f7 --- /dev/null +++ b/trunk/TAO/tao/PortableServer/Upcall_Command.h @@ -0,0 +1,67 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Upcall_Command.h + * + * $Id$ + * + * @author Ossama Othman + */ +//============================================================================= + +#ifndef TAO_UPCALL_COMMAND_H +#define TAO_UPCALL_COMMAND_H + +#include /**/ "ace/pre.h" + +#include "tao/PortableServer/portableserver_export.h" + +#ifndef ACE_LACKS_PRAGMA_ONCE +# pragma once +#endif /* !ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/Versioned_Namespace.h" +#include "ace/CORBA_macros.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace CORBA +{ + class Environment; +} + +namespace TAO +{ + + /** + * @class Upcall_Command + * + * @brief "ABC" that all operation-specific command objects must + * subclass. + * + * The actual upcall into a servant is executed through a concrete + * @c Upcall_Command object. This is necessary to simplify upcall + * interactions in the presence of interceptors, such as when the + * @c send_exception() interception point must be invoked when the + * servant operation throws an exception. + */ + class TAO_PortableServer_Export Upcall_Command + { + public: + + /// Destructor. + virtual ~Upcall_Command (void); + + /// Execute the upcall. + virtual void execute (ACE_ENV_SINGLE_ARG_DECL) = 0; + + }; + +} // End namespace TAO + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_UPCALL_COMMAND_H */ |