summaryrefslogtreecommitdiff
path: root/CIAO/tools/Config_Handlers/DD_Handler.h
blob: 89aef35182d88732e20fa55d813e01b47bb49de7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
// $Id$
//======================================
/**
*   @file    DD_Handler.h
*
*   @brief Contains the Domain Descriptior
*   Handler
*
*   @author Nilabja Roy <nilabjar@dre.vanderbilt.edu>
*
*/
//======================================

#ifndef CIAO_CONFIG_HANDLERS_DD_HANDLER_H
#define CIAO_CONFIG_HANDLERS_DD_HANDLER_H
#include /**/ "ace/pre.h"

#include "Config_Handlers_Export.h"
#include "ace/Auto_Ptr.h"
// #include "Utils/XML_Helper.h"

#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */

namespace Deployment
{
struct Domain;
}

namespace CIAO
{
namespace Config_Handlers
{
class Domain;

/*
* @class DD_Handler
*
* @brief Handler class for <Domain>
*/

class Config_Handlers_Export DD_Handler
{
public:
class NoDomain {};

/**
* @operation constructor
*
* @param The file to be read
*/
DD_Handler (const ACE_TCHAR *file);

/**
* @operation constructor
*
* @param dmn The Domain structure
*/
DD_Handler(Domain *dmn);

/**
* @operation constructor
*
* @param dmn The Deployment::Domain structure
*/
DD_Handler(::Deployment::Domain *dmn);

/**
* @operation destructor
*
*/
~DD_Handler (void);

/**
* @operation domain_idl
*
* @brief Returns the const IDL domain
* @return Domain* the IDL domain pointer
*/
::Deployment::Domain const *domain_idl (void) const
throw (NoDomain);

/**
* @operation domain_idl
*
* @brief Returns the IDL domain
* @return Domain* the IDL domain pointer
*/
::Deployment::Domain *domain_idl (void)
throw (NoDomain);

/**
* @operation domain_xsc
*
* @brief Returns the const XSC domain
* @return Domain* the XSC domain pointer
*/
Domain const *domain_xsc (void) const
throw (NoDomain);

/**
* @operation domain_xsc
*
* @brief Returns the XSC domain
* @return Domain* the XSC domain pointer
*/
Domain *domain_xsc (void)
throw (NoDomain);

private:
/**
*  @operation build_domain
*
*  @brief builds the domain structure
*/
bool build_domain ();

/**
*  @operation build_xsc
*
*  @brief builds the XSC data structure
*/
bool build_xsc ();

/// The Deployment Domain structure
auto_ptr < ::Deployment::Domain > idl_domain_;

/// The XSC Domain structure
auto_ptr <Domain> domain_;

/// The return value used
bool retval_;
};
}
}

#include /**/ "ace/post.h"
#endif /* DD_HANDLER_H */