diff options
Diffstat (limited to 'CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.h')
-rw-r--r-- | CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.h | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.h b/CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.h new file mode 100644 index 00000000000..1567915d5cc --- /dev/null +++ b/CIAO/tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.h @@ -0,0 +1,117 @@ +// $Id$ + +/** + * @file IOB_Worker_exec.h + * + * Header file for the actual IOB_Worker and IOB_WorkerHome component + * implementations. These classes are the implementations of local + * interfaces defined in WorkerEI.idl. + * + * @author Nanbor Wang <nanbor@cse.wustl.edu> + */ + +#ifndef IOB_WORKER_EXEC_H +#define IOB_WORKER_EXEC_H + +#include "WorkerEIC.h" +#include "tao/LocalObject.h" + +// The namespace name for the actual implementation classes doesn't +// really matter. Since there may be several different +// implementations for a component, they can very well be in different +// namespaces. +namespace MyImpl +{ + /** + * @class IOB_Worker_exec + * + * A compute-bound worker executor implementation class. + */ + class WORKER_EXEC_Export IOB_Worker_exec : + public virtual Priority_Test::Worker_Exec, + // CIAO container implementation depends on correct reference + // counting of local interfaces, so we take a short cut to + public virtual TAO_Local_RefCounted_Object + { + public: + /// Default constructor. + IOB_Worker_exec (); + + /// Default destructor. + ~IOB_Worker_exec (); + + // Operations from Priority_Test::Worker + + virtual Priority_Test::CCM_Common_Ops_ptr + get_some_device (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // Operations from Priority_Test::Common_Ops + + virtual CORBA::Long + do_work (CORBA::Long work, + CORBA::Long aux + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + + // Operations from Components::SessionComponent + + virtual void + set_session_context (Components::SessionContext_ptr ctx + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::CCMException)); + + virtual void + ccm_activate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::CCMException)); + + virtual void + ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::CCMException)); + + virtual void + ccm_remove (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::CCMException)); + protected: + /// Copmponent specific context + Priority_Test::CCM_Worker_Context_var context_; + }; + + /** + * @class IOB_Worker_exec + * + * IOB_Worker home executor implementation class. + */ + class WORKER_EXEC_Export IOB_Worker_Home_exec : + public virtual Priority_Test::CCM_WorkerHome, + public virtual TAO_Local_RefCounted_Object + { + public: + /// Default ctor. + IOB_Worker_Home_exec (); + + /// Default dtor. + ~IOB_Worker_Home_exec (); + + // Explicit home operations. + + // Implicit home operations. + + virtual ::Components::EnterpriseComponent_ptr + create (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::CCMException)); + }; + +} + +// Executor DLL entry point. CIAO's deployment and assembly framework +// invokes this function on the resulting DLL to get the home executor. +extern "C" WORKER_EXEC_Export ::Components::HomeExecutorBase_ptr +createWorkerHome_Impl (void); + +#endif /* IOB_WORKER_EXEC_H */ |