1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef ADC_DISPLAY_HFIDMAIN_HXX
25 #define ADC_DISPLAY_HFIDMAIN_HXX
26 
27 
28 
29 // USED SERVICES
30     // BASE CLASSES
31 #include <cosv/tpl/processor.hxx>
32     // COMPONENTS
33 #include "hi_factory.hxx"
34     // PARAMETERS
35 
36 
37 class HtmlEnvironment_Idl;
38 class HtmlFactory_Idl;
39 class DocuFile_Html;
40 
41 namespace ary
42 {
43 namespace idl
44 {
45 
46     class Module;
47     class Service;
48     class SglIfcService;
49     class Interface;
50     class Struct;
51     class Exception;
52     class Enum;
53     class Typedef;
54     class ConstantsGroup;
55     class Singleton;
56     class SglIfcSingleton;
57 
58 }   // namespace idl
59 }   // namespace ary
60 
61 
62 class MainDisplay_Idl : public csv::ProcessorIfc,
63                         public csv::ConstProcessor<ary::idl::Module>,
64                         public csv::ConstProcessor<ary::idl::Service>,
65                         public csv::ConstProcessor<ary::idl::SglIfcService>,
66                         public csv::ConstProcessor<ary::idl::Interface>,
67                         public csv::ConstProcessor<ary::idl::Struct>,
68                         public csv::ConstProcessor<ary::idl::Exception>,
69                         public csv::ConstProcessor<ary::idl::Enum>,
70                         public csv::ConstProcessor<ary::idl::Typedef>,
71                         public csv::ConstProcessor<ary::idl::ConstantsGroup>,
72                         public csv::ConstProcessor<ary::idl::Singleton>,
73                         public csv::ConstProcessor<ary::idl::SglIfcSingleton>
74 {
75   public:
76                         MainDisplay_Idl(
77                             HtmlEnvironment_Idl &
78                                                 io_rEnv );
79     virtual             ~MainDisplay_Idl();
80 
81     void                WriteGlobalIndices();
82 
83     void                Display_NamedEntityHierarchy();
84 
85   private:
86     // Interface csv::ProcessorIfc:
87     virtual void        do_Process(
88                             const ary::idl::Module  &     i_client );
89     virtual void        do_Process(
90                             const ary::idl::Service &     i_client );
91     virtual void        do_Process(
92                             const ary::idl::SglIfcService &
93                                                           i_client );
94     virtual void        do_Process(
95                             const ary::idl::Interface &   i_client );
96     virtual void        do_Process(
97                             const ary::idl::Struct  &     i_client );
98     virtual void        do_Process(
99                             const ary::idl::Exception &   i_client );
100     virtual void        do_Process(
101                             const ary::idl::Enum &        i_client );
102     virtual void        do_Process(
103                             const ary::idl::Typedef &     i_client );
104     virtual void        do_Process(
105                             const ary::idl::ConstantsGroup &
106                                                 i_client );
107     virtual void        do_Process(
108                             const ary::idl::Singleton &   i_client );
109     virtual void        do_Process(
110                             const ary::idl::SglIfcSingleton &
111                                                 i_client );
112     // Locals
113     void                do_ServiceDescr(
114                             const ary::idl::CodeEntity &
115                                                 i_rData );
116     void                do_SglIfcServiceDescr(
117                             const ary::idl::CodeEntity &
118                                                 i_rData );
119     void                do_InterfaceDescr(
120                             const ary::idl::CodeEntity &
121                                                 i_rData );
122     void                do_StructDescr(
123                             const ary::idl::CodeEntity &
124                                                 i_rData );
125     void                do_ExceptionDescr(
126                             const ary::idl::CodeEntity &
127                                                 i_rData );
128     void                do_EnumDescr(
129                             const ary::idl::CodeEntity &
130                                                 i_rData );
131     void                do_TypedefDescr(
132                             const ary::idl::CodeEntity &
133                                                 i_rData );
134     void                do_SingletonDescr(
135                             const ary::idl::CodeEntity &
136                                                 i_rData );
137     void                do_Service2s(
138                             const ary::idl::CodeEntity &
139                                                 i_rData );
140     void                do_Interface2s(
141                             const ary::idl::CodeEntity &
142                                                 i_rData );
143     void                do_Struct2s(
144                             const ary::idl::CodeEntity &
145                                                 i_rData );
146     void                do_Exception2s(
147                             const ary::idl::CodeEntity &
148                                                 i_rData );
149     void                do_Enum2s(
150                             const ary::idl::CodeEntity &
151                                                 i_rData );
152     void                do_Typedef2s(
153                             const ary::idl::CodeEntity &
154                                                 i_rData );
155     void                do_Singleton2s(
156                             const ary::idl::CodeEntity &
157                                                 i_rData );
158 
159     const HtmlEnvironment_Idl &
Env() const160                         Env() const             { return *pEnv; }
161     HtmlEnvironment_Idl &
Env()162                         Env()                   { return *pEnv; }
CurHtmlOut()163     Xml::Element &      CurHtmlOut()            { return pCurFactory->CurOut(); }
164 
165     // DATA
166     HtmlEnvironment_Idl *
167                         pEnv;
168     Dyn<DocuFile_Html>  pMyFile;
169     HtmlFactory_Idl *   pCurFactory;
170 };
171 
172 
173 
174 #endif
175