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 AUTODOC_DSP_HTML_STD_HXX
25 #define AUTODOC_DSP_HTML_STD_HXX
26 
27 
28 
29 namespace ary
30 {
31     namespace cpp
32     {
33         class Gate;
34     }
35     namespace idl
36     {
37         class Gate;
38     }
39 }
40 
41 namespace display
42 {
43     class CorporateFrame;
44 }
45 
46 
47 namespace autodoc
48 {
49 
50 
51 class HtmlDisplay_UdkStd
52 {
53   public:
~HtmlDisplay_UdkStd()54     virtual             ~HtmlDisplay_UdkStd() {}
55 
56     /** Displays the names of several C++ code entities within the
57         given namespace (or the global namespace as default). All
58         subnamespaces are included.
59 
60         Output has following format:
61 
62         =========================================================================
63         OutputDirectory
64             index.html
65             def-all.html
66             prj\
67                 sal\
68                     index.html                      // Overview about project
69 
70                     f-FileName[1,2,...]             // Overview about file
71                     f-OtherFileName[1,2,...]
72                     ...
73                     def-FileName[1,2,...]           // #defines and macros in file
74                     def-OtherFileName[1,2,...]
75                     ...
76                 rtl\
77                     ...
78                 cppu\
79                     ...
80                 cppuhelper\
81                     ...
82                 ...
83             ix\
84                 ix-a.html
85                 ix-b.html
86                 ...
87                 ix-z.html
88                 ix-_.html
89                 ix-other.html
90 
91             cpp\
92                 index.html                          // Overview about global namespace
93 
94                 Namespace_A\
95                     Namespace_C\
96                         index.html                  // Overview about namespace C
97                         ...
98                     ...
99 
100                     index.html                      // Overview about namespace A
101 
102                     c-ClassName_X.html              // Description of class
103                     ...
104                     e-EnumName.html                 // Description of enum
105                     ...
106                     t-TypedefName.html              // Description of typedef
107                     ...
108                     o-Filename.html                 // Descriptions of operations in this file in this namespace
109                     ...
110                     d-Filename.html                 // Descriptions of data in this file in this namespace
111                     ...
112 
113                     ClassName_X\
114                         c-ClassName_Y.html
115                         e-EnumName.html
116                         t-TypedefName.html
117                         o.html                      // Descriptions of operations in class X
118                         d.html                      // Descriptions of data in class X
119 
120                         ClassName_Y\
121                             ...
122                 ...
123 
124             idl\
125                 ...
126             java\
127                 ...
128         =========================================================================
129 
130 
131         @param i_sOutputDirectory
132             Directory for output. Path must be given in correct
133             syntax for the actual operating system without final
134             path delimiter. If this is 0 or "", the current
135             working directory is chosen.
136         @param i_rAryGate
137             The access to the Autodoc Repository.
138         @param i_rLayout
139             Gives parameters for the appearance of the HTML output.
140         @param i_pProjectList
141             If this is != 0, then only code entities which are declared
142             in this projects are displayed.
143     */
144     void                Run(
145                             const char *        i_sOutputDirectory,
146                             const ary::cpp::Gate &
147                                                 i_rAryGate,
148                             const display::CorporateFrame &
149                                                 i_rLayout );
150   private:
151     virtual void        do_Run(
152                             const char *        i_sOutputDirectory,
153                             const ary::cpp::Gate &
154                                                 i_rAryGate,
155                             const display::CorporateFrame &
156                                                 i_rLayout ) = 0;
157 };
158 
159 // IMPLEMENTATION
160 
161 inline void
Run(const char * i_sOutputDirectory,const ary::cpp::Gate & i_rAryGate,const display::CorporateFrame & i_rLayout)162 HtmlDisplay_UdkStd::Run( const char *                    i_sOutputDirectory,
163                          const ary::cpp::Gate &          i_rAryGate,
164                          const display::CorporateFrame & i_rLayout )
165 {
166     do_Run( i_sOutputDirectory, i_rAryGate, i_rLayout );
167 }
168 
169 
170 
171 // class HtmlDisplay_Idl_Ifc
172 
173 class HtmlDisplay_Idl_Ifc
174 {
175   public:
~HtmlDisplay_Idl_Ifc()176     virtual             ~HtmlDisplay_Idl_Ifc() {}
177 
178     void                Run(
179                             const char *        i_sOutputDirectory,
180                             const ary::idl::Gate &
181                                                 i_rAryGate,
182                             const display::CorporateFrame &
183                                                 i_rLayout );
184   private:
185     virtual void        do_Run(
186                             const char *        i_sOutputDirectory,
187                             const ary::idl::Gate &
188                                                 i_rAryGate,
189                             const display::CorporateFrame &
190                                                 i_rLayout ) = 0;
191 };
192 
193 
194 
195 
196 // IMPLEMENTATION
197 inline void
Run(const char * i_sOutputDirectory,const ary::idl::Gate & i_rAryGate,const display::CorporateFrame & i_rLayout)198 HtmlDisplay_Idl_Ifc::Run( const char *                    i_sOutputDirectory,
199                           const ary::idl::Gate &          i_rAryGate,
200                           const display::CorporateFrame & i_rLayout )
201 {
202     do_Run( i_sOutputDirectory, i_rAryGate, i_rLayout );
203 }
204 
205 
206 
207 
208 } // namespace autodoc
209 #endif
210