diff options
author | Abdullah Sowayan <sowayan@users.noreply.github.com> | 2007-03-18 22:23:37 +0000 |
---|---|---|
committer | Abdullah Sowayan <sowayan@users.noreply.github.com> | 2007-03-18 22:23:37 +0000 |
commit | 06a34455bd98b1379cc69bbc5b2cf085e0fc0d9b (patch) | |
tree | 8815ce3b3a85c3c4285429295f338e00ea4497f4 /CIAO/tools/Config_Handlers/DP_Handler.h | |
parent | d66fcc9b4aaec8e88eeb83fc578fdf8a3cc963de (diff) | |
download | ATCD-06a34455bd98b1379cc69bbc5b2cf085e0fc0d9b.tar.gz |
Diffstat (limited to 'CIAO/tools/Config_Handlers/DP_Handler.h')
-rw-r--r-- | CIAO/tools/Config_Handlers/DP_Handler.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/CIAO/tools/Config_Handlers/DP_Handler.h b/CIAO/tools/Config_Handlers/DP_Handler.h new file mode 100644 index 00000000000..50620822263 --- /dev/null +++ b/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*/ |