diff options
Diffstat (limited to 'modules/CIAO/tools/Config_Handlers/DP_Handler.h')
-rw-r--r-- | modules/CIAO/tools/Config_Handlers/DP_Handler.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/modules/CIAO/tools/Config_Handlers/DP_Handler.h b/modules/CIAO/tools/Config_Handlers/DP_Handler.h new file mode 100644 index 00000000000..50620822263 --- /dev/null +++ b/modules/CIAO/tools/Config_Handlers/DP_Handler.h @@ -0,0 +1,91 @@ +//============================================================== +/** +* @file DP_Handler.h +* +* $Id$ +* +* @author Bala Natarajan <bala@dre.vanderbilt.edu> +*/ +//================================================================ + +#ifndef CIAO_CONFIG_HANDLERS_DP_HANDLER_H +#define CIAO_CONFIG_HANDLERS_DP_HANDLER_H +#include /**/ "ace/pre.h" + +#include "Config_Handlers_Export.h" +#include <memory> +using std::auto_ptr; + + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + + +namespace Deployment +{ +struct DeploymentPlan ; +} + +namespace CIAO +{ +namespace Config_Handlers +{ +class DeploymentPlan; + +/* +* @class DP_Handler +* +* @brief Handler for Deployment::DeploymentPlan +*/ +class Config_Handlers_Export DP_Handler +{ +public: +class NoPlan {}; + +/// Use this constructor if you want to use +/// the XSC->IDL mapping +DP_Handler (DeploymentPlan &dp); + +/// Use this constructor if you want to use +/// the IDL->XSC mapping +DP_Handler (const ::Deployment::DeploymentPlan &plan); + +~DP_Handler (void) +throw (); + +/// Generates the IDL->XSC mapping. returns +/// null if the method fails or if the class was +/// constructed with the wrong source. +DeploymentPlan const *xsc (void) const +throw (NoPlan); + +DeploymentPlan *xsc (void) +throw (NoPlan); + +/// Generates the XSC->IDL mapping. returns null +/// if the method fails or the class was constructed +::Deployment::DeploymentPlan const *plan (void) const +throw (NoPlan); + +::Deployment::DeploymentPlan *plan (void) +throw (NoPlan); + +private: + +bool resolve_plan (DeploymentPlan &dp); + +bool build_xsc (const ::Deployment::DeploymentPlan &plan); + +private: +auto_ptr< DeploymentPlan > xsc_dp_; + +auto_ptr< ::Deployment::DeploymentPlan> idl_dp_; + +bool retval_; +}; +} +} + +#include /**/ "ace/post.h" +#endif /*CIAO_CONFIG_HANDLERS_DP_HANDLER_H*/ |