diff options
Diffstat (limited to 'modules/CIAO/tools/Config_Handlers/DP_Handler.h')
-rw-r--r-- | modules/CIAO/tools/Config_Handlers/DP_Handler.h | 87 |
1 files changed, 87 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..82d93aaa62f --- /dev/null +++ b/modules/CIAO/tools/Config_Handlers/DP_Handler.h @@ -0,0 +1,87 @@ +//============================================================== +/** + * @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; + + deploymentPlan *xsc (void); + + /// Generates the XSC->IDL mapping. returns null + /// if the method fails or the class was constructed + ::Deployment::DeploymentPlan const *plan (void) const; + + ::Deployment::DeploymentPlan *plan (void); + + 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*/ |