1*0841af79SAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3*0841af79SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*0841af79SAndrew Rist * or more contributor license agreements. See the NOTICE file
5*0841af79SAndrew Rist * distributed with this work for additional information
6*0841af79SAndrew Rist * regarding copyright ownership. The ASF licenses this file
7*0841af79SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*0841af79SAndrew Rist * "License"); you may not use this file except in compliance
9*0841af79SAndrew Rist * with the License. You may obtain a copy of the License at
10*0841af79SAndrew Rist *
11*0841af79SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12*0841af79SAndrew Rist *
13*0841af79SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*0841af79SAndrew Rist * software distributed under the License is distributed on an
15*0841af79SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*0841af79SAndrew Rist * KIND, either express or implied. See the License for the
17*0841af79SAndrew Rist * specific language governing permissions and limitations
18*0841af79SAndrew Rist * under the License.
19*0841af79SAndrew Rist *
20*0841af79SAndrew Rist *************************************************************/
21cdf0e10cSrcweir
22cdf0e10cSrcweir #include <precomp.h>
23cdf0e10cSrcweir #include "opageenv.hxx"
24cdf0e10cSrcweir
25cdf0e10cSrcweir
26cdf0e10cSrcweir // NOT FULLY DEFINED SERVICES
27cdf0e10cSrcweir #include <cosv/ploc_dir.hxx>
28cdf0e10cSrcweir #include <ary/cpp/c_ce.hxx>
29cdf0e10cSrcweir #include <ary/cpp/c_class.hxx>
30cdf0e10cSrcweir #include <ary/cpp/c_enum.hxx>
31cdf0e10cSrcweir #include <ary/cpp/c_gate.hxx>
32cdf0e10cSrcweir #include <ary/cpp/c_namesp.hxx>
33cdf0e10cSrcweir #include <ary/cpp/c_tydef.hxx>
34cdf0e10cSrcweir #include <ary/cpp/cp_ce.hxx>
35cdf0e10cSrcweir #include <ary/loc/loc_file.hxx>
36cdf0e10cSrcweir #include <udm/html/htmlitem.hxx>
37cdf0e10cSrcweir #include <estack.hxx>
38cdf0e10cSrcweir #include "hdimpl.hxx"
39cdf0e10cSrcweir #include "strconst.hxx"
40cdf0e10cSrcweir
41cdf0e10cSrcweir
42cdf0e10cSrcweir const String C_sCppDir( "names" );
43cdf0e10cSrcweir const String C_sIndexDir( "ix" );
44cdf0e10cSrcweir
45cdf0e10cSrcweir
46cdf0e10cSrcweir //************************ Implementation ********************//
47cdf0e10cSrcweir
48cdf0e10cSrcweir namespace
49cdf0e10cSrcweir {
50cdf0e10cSrcweir
51cdf0e10cSrcweir void CreateDirectory( const csv::ploc::Path & i_rPath );
52cdf0e10cSrcweir
53cdf0e10cSrcweir void
CreateDirectory(const csv::ploc::Path & i_rPath)54cdf0e10cSrcweir CreateDirectory( const csv::ploc::Path & i_rPath )
55cdf0e10cSrcweir {
56cdf0e10cSrcweir csv::ploc::Directory aDirectory(i_rPath);
57cdf0e10cSrcweir if (NOT aDirectory.Exists())
58cdf0e10cSrcweir aDirectory.PhysicalCreate();
59cdf0e10cSrcweir }
60cdf0e10cSrcweir
61cdf0e10cSrcweir //************************ CheshireCat ********************//
62cdf0e10cSrcweir
63cdf0e10cSrcweir struct InNamespaceTree
64cdf0e10cSrcweir {
65cdf0e10cSrcweir enum E_Type
66cdf0e10cSrcweir {
67cdf0e10cSrcweir t_unknown,
68cdf0e10cSrcweir t_namespace,
69cdf0e10cSrcweir t_type,
70cdf0e10cSrcweir t_operations,
71cdf0e10cSrcweir t_data
72cdf0e10cSrcweir };
73cdf0e10cSrcweir
74cdf0e10cSrcweir EStack< const ary::cpp::Namespace * >
75cdf0e10cSrcweir aNamespaces; /// never empty.
76cdf0e10cSrcweir EStack< const ary::cpp::Class * >
77cdf0e10cSrcweir aClasses; /// maybe empty.
78cdf0e10cSrcweir const ary::cpp::CodeEntity *
79cdf0e10cSrcweir pCe; /// CurFileCe, maybe 0
80cdf0e10cSrcweir E_Type eType;
81cdf0e10cSrcweir
82cdf0e10cSrcweir InNamespaceTree(
83cdf0e10cSrcweir const ary::cpp::Namespace &
84cdf0e10cSrcweir i_rNsp );
85cdf0e10cSrcweir ~InNamespaceTree();
86cdf0e10cSrcweir void GoDown(
87cdf0e10cSrcweir const ary::cpp::Namespace &
88cdf0e10cSrcweir i_rNsp );
89cdf0e10cSrcweir void GoDown(
90cdf0e10cSrcweir const ary::cpp::Class &
91cdf0e10cSrcweir i_rClass );
92cdf0e10cSrcweir void GoUp();
93cdf0e10cSrcweir };
94cdf0e10cSrcweir
InNamespaceTree(const ary::cpp::Namespace & i_rNsp)95cdf0e10cSrcweir InNamespaceTree::InNamespaceTree( const ary::cpp::Namespace & i_rNsp )
96cdf0e10cSrcweir : // aNamespaces,
97cdf0e10cSrcweir // aClasses,
98cdf0e10cSrcweir pCe(0),
99cdf0e10cSrcweir eType(t_unknown)
100cdf0e10cSrcweir {
101cdf0e10cSrcweir aNamespaces.push( &i_rNsp );
102cdf0e10cSrcweir }
103cdf0e10cSrcweir
~InNamespaceTree()104cdf0e10cSrcweir InNamespaceTree::~InNamespaceTree()
105cdf0e10cSrcweir {
106cdf0e10cSrcweir }
107cdf0e10cSrcweir
108cdf0e10cSrcweir void
GoDown(const ary::cpp::Namespace & i_rNsp)109cdf0e10cSrcweir InNamespaceTree::GoDown( const ary::cpp::Namespace & i_rNsp )
110cdf0e10cSrcweir {
111cdf0e10cSrcweir aNamespaces.push(&i_rNsp);
112cdf0e10cSrcweir aClasses.erase_all();
113cdf0e10cSrcweir pCe = 0;
114cdf0e10cSrcweir eType = t_unknown;
115cdf0e10cSrcweir }
116cdf0e10cSrcweir
117cdf0e10cSrcweir void
GoDown(const ary::cpp::Class & i_rClass)118cdf0e10cSrcweir InNamespaceTree::GoDown( const ary::cpp::Class & i_rClass )
119cdf0e10cSrcweir {
120cdf0e10cSrcweir aClasses.push(&i_rClass);
121cdf0e10cSrcweir pCe = 0;
122cdf0e10cSrcweir eType = t_unknown;
123cdf0e10cSrcweir }
124cdf0e10cSrcweir
125cdf0e10cSrcweir void
GoUp()126cdf0e10cSrcweir InNamespaceTree::GoUp()
127cdf0e10cSrcweir {
128cdf0e10cSrcweir if ( NOT aClasses.empty() )
129cdf0e10cSrcweir aClasses.pop();
130cdf0e10cSrcweir else
131cdf0e10cSrcweir aNamespaces.pop();
132cdf0e10cSrcweir pCe = 0;
133cdf0e10cSrcweir eType = t_unknown;
134cdf0e10cSrcweir }
135cdf0e10cSrcweir
136cdf0e10cSrcweir struct InIndex
137cdf0e10cSrcweir {
138cdf0e10cSrcweir char cLetter;
139cdf0e10cSrcweir
InIndex__anonfcb3d2f30111::InIndex140cdf0e10cSrcweir InIndex() : cLetter('A') {}
141cdf0e10cSrcweir };
142cdf0e10cSrcweir
143cdf0e10cSrcweir
144cdf0e10cSrcweir } // anonymous namespace
145cdf0e10cSrcweir
146cdf0e10cSrcweir
147cdf0e10cSrcweir
148cdf0e10cSrcweir
149cdf0e10cSrcweir
150cdf0e10cSrcweir struct OuputPage_Environment::CheshireCat
151cdf0e10cSrcweir {
152cdf0e10cSrcweir csv::ploc::Path aOutputRoot;
153cdf0e10cSrcweir csv::ploc::Path aMyPath;
154cdf0e10cSrcweir csv::StreamStr aFileName;
155cdf0e10cSrcweir
156cdf0e10cSrcweir const ary::cpp::Gate *
157cdf0e10cSrcweir pGate;
158cdf0e10cSrcweir const display::CorporateFrame *
159cdf0e10cSrcweir pLayout;
160cdf0e10cSrcweir intt nDepth;
161cdf0e10cSrcweir
162cdf0e10cSrcweir Dyn<InNamespaceTree>
163cdf0e10cSrcweir pInNamespace;
164cdf0e10cSrcweir Dyn<InIndex> pInIndex;
165cdf0e10cSrcweir
166cdf0e10cSrcweir CheshireCat(
167cdf0e10cSrcweir const csv::ploc::Path &
168cdf0e10cSrcweir io_rOutputDir,
169cdf0e10cSrcweir const ary::cpp::Gate &
170cdf0e10cSrcweir i_rGate,
171cdf0e10cSrcweir const display::CorporateFrame &
172cdf0e10cSrcweir i_rLayout );
173cdf0e10cSrcweir ~CheshireCat();
174cdf0e10cSrcweir void AddQualifiedName2Path(
175cdf0e10cSrcweir const ary::cpp::CodeEntity &
176cdf0e10cSrcweir i_rCe,
177cdf0e10cSrcweir bool i_bIncludeLocalName );
178cdf0e10cSrcweir
179cdf0e10cSrcweir const Dyn<InNamespaceTree> &
NspEnvOuputPage_Environment::CheshireCat180cdf0e10cSrcweir NspEnv() const { return pInNamespace; }
181cdf0e10cSrcweir Dyn<InNamespaceTree> &
NspEnvOuputPage_Environment::CheshireCat182cdf0e10cSrcweir NspEnv() { return pInNamespace; }
183cdf0e10cSrcweir const ary::cpp::Namespace *
NamespaceOuputPage_Environment::CheshireCat184cdf0e10cSrcweir Namespace() const { return pInNamespace ? pInNamespace->aNamespaces.top() : 0; }
185cdf0e10cSrcweir const ary::cpp::Class *
ClassOuputPage_Environment::CheshireCat186cdf0e10cSrcweir Class() const { return pInNamespace ? (pInNamespace->aClasses.empty() ? 0 : pInNamespace->aClasses.top()) : 0; }
187cdf0e10cSrcweir };
188cdf0e10cSrcweir
189cdf0e10cSrcweir OuputPage_Environment::
CheshireCat(const csv::ploc::Path & io_rOutputDir,const ary::cpp::Gate & i_rGate,const display::CorporateFrame & i_rLayout)190cdf0e10cSrcweir CheshireCat::CheshireCat( const csv::ploc::Path & io_rOutputDir,
191cdf0e10cSrcweir const ary::cpp::Gate & i_rGate,
192cdf0e10cSrcweir const display::CorporateFrame & i_rLayout )
193cdf0e10cSrcweir : aOutputRoot(io_rOutputDir),
194cdf0e10cSrcweir aMyPath(io_rOutputDir),
195cdf0e10cSrcweir aFileName(500),
196cdf0e10cSrcweir pGate(&i_rGate),
197cdf0e10cSrcweir pLayout(&i_rLayout),
198cdf0e10cSrcweir nDepth(0),
199cdf0e10cSrcweir pInNamespace(),
200cdf0e10cSrcweir pInIndex()
201cdf0e10cSrcweir {
202cdf0e10cSrcweir }
203cdf0e10cSrcweir
204cdf0e10cSrcweir OuputPage_Environment::
~CheshireCat()205cdf0e10cSrcweir CheshireCat::~CheshireCat()
206cdf0e10cSrcweir {
207cdf0e10cSrcweir }
208cdf0e10cSrcweir
209cdf0e10cSrcweir void
210cdf0e10cSrcweir OuputPage_Environment::
AddQualifiedName2Path(const ary::cpp::CodeEntity & i_rCe,bool i_bIncludeLocalName)211cdf0e10cSrcweir CheshireCat::AddQualifiedName2Path( const ary::cpp::CodeEntity & i_rCe,
212cdf0e10cSrcweir bool i_bIncludeLocalName )
213cdf0e10cSrcweir {
214cdf0e10cSrcweir if (NOT i_rCe.Owner().IsValid())
215cdf0e10cSrcweir {
216cdf0e10cSrcweir aMyPath.DirChain().PushBack( C_sCppDir );
217cdf0e10cSrcweir return;
218cdf0e10cSrcweir }
219cdf0e10cSrcweir
220cdf0e10cSrcweir const ary::cpp::CodeEntity &
221cdf0e10cSrcweir rParent = pGate->Ces().Find_Ce( i_rCe.Owner() );
222cdf0e10cSrcweir AddQualifiedName2Path( rParent, true );
223cdf0e10cSrcweir
224cdf0e10cSrcweir if ( i_bIncludeLocalName )
225cdf0e10cSrcweir aMyPath.DirChain().PushBack( i_rCe.LocalName() );
226cdf0e10cSrcweir }
227cdf0e10cSrcweir
228cdf0e10cSrcweir
229cdf0e10cSrcweir
230cdf0e10cSrcweir //************************ OuputPage_Environment ********************//
231cdf0e10cSrcweir
OuputPage_Environment(const csv::ploc::Path & io_rOutputDir,const ary::cpp::Gate & i_rGate,const display::CorporateFrame & i_rLayout)232cdf0e10cSrcweir OuputPage_Environment::OuputPage_Environment( const csv::ploc::Path & io_rOutputDir,
233cdf0e10cSrcweir const ary::cpp::Gate & i_rGate,
234cdf0e10cSrcweir const display::CorporateFrame & i_rLayout )
235cdf0e10cSrcweir : pi( new CheshireCat(io_rOutputDir, i_rGate, i_rLayout) )
236cdf0e10cSrcweir {
237cdf0e10cSrcweir }
238cdf0e10cSrcweir
~OuputPage_Environment()239cdf0e10cSrcweir OuputPage_Environment::~OuputPage_Environment()
240cdf0e10cSrcweir {
241cdf0e10cSrcweir }
242cdf0e10cSrcweir
243cdf0e10cSrcweir void
MoveDir_2Root()244cdf0e10cSrcweir OuputPage_Environment::MoveDir_2Root()
245cdf0e10cSrcweir {
246cdf0e10cSrcweir pi->NspEnv() = 0;
247cdf0e10cSrcweir pi->pInIndex = 0;
248cdf0e10cSrcweir pi->nDepth = 0;
249cdf0e10cSrcweir while ( pi->aMyPath.DirChain().Size() > pi->aOutputRoot.DirChain().Size() )
250cdf0e10cSrcweir pi->aMyPath.DirChain().PopBack();
251cdf0e10cSrcweir pi->aMyPath.SetFile(String ::Null_());
252cdf0e10cSrcweir }
253cdf0e10cSrcweir
254cdf0e10cSrcweir void
MoveDir_2Names()255cdf0e10cSrcweir OuputPage_Environment::MoveDir_2Names()
256cdf0e10cSrcweir {
257cdf0e10cSrcweir pi->NspEnv() = new InNamespaceTree( Gate().Ces().GlobalNamespace() );
258cdf0e10cSrcweir pi->aMyPath.DirChain().PushBack( C_sCppDir );
259cdf0e10cSrcweir pi->aMyPath.SetFile(String ::Null_());
260cdf0e10cSrcweir ++pi->nDepth;
261cdf0e10cSrcweir
262cdf0e10cSrcweir CreateDirectory( pi->aMyPath );
263cdf0e10cSrcweir }
264cdf0e10cSrcweir
265cdf0e10cSrcweir void
MoveDir_Down2(const ary::cpp::Namespace & i_rNsp)266cdf0e10cSrcweir OuputPage_Environment::MoveDir_Down2( const ary::cpp::Namespace & i_rNsp )
267cdf0e10cSrcweir {
268cdf0e10cSrcweir csv_assert(i_rNsp.Depth() > 0);
269cdf0e10cSrcweir csv_assert( pi->NspEnv() );
270cdf0e10cSrcweir csv_assert( pi->Namespace()->CeId() == i_rNsp.Owner() );
271cdf0e10cSrcweir
272cdf0e10cSrcweir pi->NspEnv()->GoDown( i_rNsp );
273cdf0e10cSrcweir pi->aMyPath.DirChain().PushBack(i_rNsp.LocalName());
274cdf0e10cSrcweir ++pi->nDepth;
275cdf0e10cSrcweir pi->aMyPath.SetFile(String ::Null_());
276cdf0e10cSrcweir
277cdf0e10cSrcweir CreateDirectory( pi->aMyPath );
278cdf0e10cSrcweir }
279cdf0e10cSrcweir
280cdf0e10cSrcweir void
MoveDir_Down2(const ary::cpp::Class & i_rClass)281cdf0e10cSrcweir OuputPage_Environment::MoveDir_Down2( const ary::cpp::Class & i_rClass )
282cdf0e10cSrcweir {
283cdf0e10cSrcweir csv_assert( pi->NspEnv() );
284cdf0e10cSrcweir if ( i_rClass.Protection() == ary::cpp::PROTECT_global )
285cdf0e10cSrcweir {
286cdf0e10cSrcweir csv_assert( pi->Namespace()->CeId() == i_rClass.Owner() );
287cdf0e10cSrcweir }
288cdf0e10cSrcweir else
289cdf0e10cSrcweir {
290cdf0e10cSrcweir csv_assert( pi->Class() != 0 );
291cdf0e10cSrcweir csv_assert( pi->Class()->CeId() == i_rClass.Owner() );
292cdf0e10cSrcweir }
293cdf0e10cSrcweir
294cdf0e10cSrcweir pi->NspEnv()->GoDown(i_rClass);
295cdf0e10cSrcweir pi->aMyPath.DirChain().PushBack(i_rClass.LocalName());
296cdf0e10cSrcweir pi->aMyPath.SetFile(String ::Null_());
297cdf0e10cSrcweir ++pi->nDepth;
298cdf0e10cSrcweir
299cdf0e10cSrcweir CreateDirectory( pi->aMyPath );
300cdf0e10cSrcweir }
301cdf0e10cSrcweir
302cdf0e10cSrcweir void
MoveDir_2Index()303cdf0e10cSrcweir OuputPage_Environment::MoveDir_2Index()
304cdf0e10cSrcweir {
305cdf0e10cSrcweir MoveDir_2Root();
306cdf0e10cSrcweir pi->pInIndex = new InIndex;
307cdf0e10cSrcweir pi->aMyPath.DirChain().PushBack( String (C_sDIR_Index) );
308cdf0e10cSrcweir pi->aMyPath.SetFile(String ::Null_());
309cdf0e10cSrcweir pi->nDepth = 1;
310cdf0e10cSrcweir
311cdf0e10cSrcweir CreateDirectory( pi->aMyPath );
312cdf0e10cSrcweir }
313cdf0e10cSrcweir
314cdf0e10cSrcweir void
MoveDir_Up()315cdf0e10cSrcweir OuputPage_Environment::MoveDir_Up()
316cdf0e10cSrcweir {
317cdf0e10cSrcweir if ( pi->nDepth == 1 )
318cdf0e10cSrcweir {
319cdf0e10cSrcweir MoveDir_2Root();
320cdf0e10cSrcweir return;
321cdf0e10cSrcweir }
322cdf0e10cSrcweir else if ( pi->NspEnv() )
323cdf0e10cSrcweir {
324cdf0e10cSrcweir pi->NspEnv()->GoUp();
325cdf0e10cSrcweir pi->aMyPath.DirChain().PopBack();
326cdf0e10cSrcweir pi->aMyPath.SetFile(String ::Null_());
327cdf0e10cSrcweir --pi->nDepth;
328cdf0e10cSrcweir }
329cdf0e10cSrcweir }
330cdf0e10cSrcweir
331cdf0e10cSrcweir void
SetFile_Css()332cdf0e10cSrcweir OuputPage_Environment::SetFile_Css()
333cdf0e10cSrcweir {
334cdf0e10cSrcweir pi->aMyPath.SetFile( C_sHFN_Css );
335cdf0e10cSrcweir }
336cdf0e10cSrcweir
337cdf0e10cSrcweir void
SetFile_Overview()338cdf0e10cSrcweir OuputPage_Environment::SetFile_Overview()
339cdf0e10cSrcweir {
340cdf0e10cSrcweir pi->aMyPath.SetFile( C_sHFN_Overview );
341cdf0e10cSrcweir }
342cdf0e10cSrcweir
343cdf0e10cSrcweir void
SetFile_AllDefs()344cdf0e10cSrcweir OuputPage_Environment::SetFile_AllDefs()
345cdf0e10cSrcweir {
346cdf0e10cSrcweir // Provisorium
347cdf0e10cSrcweir pi->aMyPath.SetFile("def-all.html");
348cdf0e10cSrcweir }
349cdf0e10cSrcweir
350cdf0e10cSrcweir void
SetFile_Index(char i_cLetter)351cdf0e10cSrcweir OuputPage_Environment::SetFile_Index( char i_cLetter )
352cdf0e10cSrcweir {
353cdf0e10cSrcweir csv_assert( 'A' <= i_cLetter AND i_cLetter <= 'Z' OR i_cLetter == '_' );
354cdf0e10cSrcweir
355cdf0e10cSrcweir static StreamStr sIndexFileName(40);
356cdf0e10cSrcweir sIndexFileName.seekp(0);
357cdf0e10cSrcweir sIndexFileName << "index-";
358cdf0e10cSrcweir if ( i_cLetter == '_' )
359cdf0e10cSrcweir {
360cdf0e10cSrcweir sIndexFileName << "27";
361cdf0e10cSrcweir }
362cdf0e10cSrcweir else
363cdf0e10cSrcweir {
364cdf0e10cSrcweir sIndexFileName << int(i_cLetter -'A' + 1);
365cdf0e10cSrcweir }
366cdf0e10cSrcweir sIndexFileName << ".html";
367cdf0e10cSrcweir
368cdf0e10cSrcweir pi->aMyPath.SetFile( sIndexFileName.c_str() );
369cdf0e10cSrcweir }
370cdf0e10cSrcweir
371cdf0e10cSrcweir void
SetFile_Help()372cdf0e10cSrcweir OuputPage_Environment::SetFile_Help()
373cdf0e10cSrcweir {
374cdf0e10cSrcweir pi->aMyPath.SetFile( C_sHFN_Help );
375cdf0e10cSrcweir }
376cdf0e10cSrcweir
377cdf0e10cSrcweir void
SetFile_CurNamespace()378cdf0e10cSrcweir OuputPage_Environment::SetFile_CurNamespace()
379cdf0e10cSrcweir {
380cdf0e10cSrcweir csv_assert( pi->NspEnv() );
381cdf0e10cSrcweir pi->aMyPath.SetFile("index.html");
382cdf0e10cSrcweir pi->NspEnv()->pCe = pi->Namespace();
383cdf0e10cSrcweir pi->NspEnv()->eType = InNamespaceTree::t_namespace;
384cdf0e10cSrcweir }
385cdf0e10cSrcweir
386cdf0e10cSrcweir void
SetFile_Class(const ary::cpp::Class & i_rClass)387cdf0e10cSrcweir OuputPage_Environment::SetFile_Class( const ary::cpp::Class & i_rClass )
388cdf0e10cSrcweir {
389cdf0e10cSrcweir csv_assert( pi->NspEnv() );
390cdf0e10cSrcweir pi->aMyPath.SetFile( ClassFileName(i_rClass.LocalName()) );
391cdf0e10cSrcweir pi->NspEnv()->pCe = &i_rClass;
392cdf0e10cSrcweir pi->NspEnv()->eType = InNamespaceTree::t_type;
393cdf0e10cSrcweir }
394cdf0e10cSrcweir
395cdf0e10cSrcweir void
SetFile_Enum(const ary::cpp::Enum & i_rEnum)396cdf0e10cSrcweir OuputPage_Environment::SetFile_Enum( const ary::cpp::Enum & i_rEnum )
397cdf0e10cSrcweir {
398cdf0e10cSrcweir csv_assert( pi->NspEnv() );
399cdf0e10cSrcweir pi->aMyPath.SetFile( EnumFileName(i_rEnum.LocalName()) );
400cdf0e10cSrcweir pi->NspEnv()->pCe = &i_rEnum;
401cdf0e10cSrcweir pi->NspEnv()->eType = InNamespaceTree::t_type;
402cdf0e10cSrcweir }
403cdf0e10cSrcweir
404cdf0e10cSrcweir void
SetFile_Typedef(const ary::cpp::Typedef & i_rTypedef)405cdf0e10cSrcweir OuputPage_Environment::SetFile_Typedef( const ary::cpp::Typedef & i_rTypedef )
406cdf0e10cSrcweir {
407cdf0e10cSrcweir csv_assert( pi->NspEnv() );
408cdf0e10cSrcweir pi->aMyPath.SetFile( TypedefFileName(i_rTypedef.LocalName()) );
409cdf0e10cSrcweir pi->NspEnv()->pCe = &i_rTypedef;
410cdf0e10cSrcweir pi->NspEnv()->eType = InNamespaceTree::t_type;
411cdf0e10cSrcweir }
412cdf0e10cSrcweir
413cdf0e10cSrcweir void
SetFile_Operations(const ary::loc::File * i_pFile)414cdf0e10cSrcweir OuputPage_Environment::SetFile_Operations( const ary::loc::File * i_pFile )
415cdf0e10cSrcweir {
416cdf0e10cSrcweir csv_assert( pi->NspEnv() );
417cdf0e10cSrcweir if ( CurClass() != 0 )
418cdf0e10cSrcweir pi->aMyPath.SetFile( "o.html" );
419cdf0e10cSrcweir else
420cdf0e10cSrcweir {
421cdf0e10cSrcweir csv_assert( i_pFile != 0 );
422cdf0e10cSrcweir pi->aMyPath.SetFile( HtmlFileName("o-", i_pFile->LocalName()) );
423cdf0e10cSrcweir }
424cdf0e10cSrcweir pi->NspEnv()->pCe = 0;
425cdf0e10cSrcweir pi->NspEnv()->eType = InNamespaceTree::t_operations;
426cdf0e10cSrcweir }
427cdf0e10cSrcweir
428cdf0e10cSrcweir void
SetFile_Data(const ary::loc::File * i_pFile)429cdf0e10cSrcweir OuputPage_Environment::SetFile_Data( const ary::loc::File * i_pFile )
430cdf0e10cSrcweir {
431cdf0e10cSrcweir csv_assert( pi->NspEnv() );
432cdf0e10cSrcweir if ( CurClass() != 0 )
433cdf0e10cSrcweir pi->aMyPath.SetFile( "d.html" );
434cdf0e10cSrcweir else
435cdf0e10cSrcweir {
436cdf0e10cSrcweir csv_assert( i_pFile != 0 );
437cdf0e10cSrcweir pi->aMyPath.SetFile( HtmlFileName("d-", i_pFile->LocalName()) );
438cdf0e10cSrcweir }
439cdf0e10cSrcweir pi->NspEnv()->pCe = 0;
440cdf0e10cSrcweir pi->NspEnv()->eType = InNamespaceTree::t_data;
441cdf0e10cSrcweir }
442cdf0e10cSrcweir
443cdf0e10cSrcweir const ary::cpp::Namespace *
CurNamespace() const444cdf0e10cSrcweir OuputPage_Environment::CurNamespace() const
445cdf0e10cSrcweir {
446cdf0e10cSrcweir return pi->Namespace();
447cdf0e10cSrcweir }
448cdf0e10cSrcweir
449cdf0e10cSrcweir const ary::cpp::Class *
CurClass() const450cdf0e10cSrcweir OuputPage_Environment::CurClass() const
451cdf0e10cSrcweir {
452cdf0e10cSrcweir return pi->Class();
453cdf0e10cSrcweir }
454cdf0e10cSrcweir
455cdf0e10cSrcweir const csv::ploc::Path &
CurPath() const456cdf0e10cSrcweir OuputPage_Environment::CurPath() const
457cdf0e10cSrcweir {
458cdf0e10cSrcweir return pi->aMyPath;
459cdf0e10cSrcweir }
460cdf0e10cSrcweir
461cdf0e10cSrcweir const ary::cpp::Gate &
Gate() const462cdf0e10cSrcweir OuputPage_Environment::Gate() const
463cdf0e10cSrcweir {
464cdf0e10cSrcweir return *pi->pGate;
465cdf0e10cSrcweir }
466cdf0e10cSrcweir
467cdf0e10cSrcweir const display::CorporateFrame &
Layout() const468cdf0e10cSrcweir OuputPage_Environment::Layout() const
469cdf0e10cSrcweir {
470cdf0e10cSrcweir return *pi->pLayout;
471cdf0e10cSrcweir }
472cdf0e10cSrcweir
473cdf0e10cSrcweir uintt
Depth() const474cdf0e10cSrcweir OuputPage_Environment::Depth() const
475cdf0e10cSrcweir {
476cdf0e10cSrcweir return static_cast<uintt>(pi->nDepth);
477cdf0e10cSrcweir }
478cdf0e10cSrcweir
479cdf0e10cSrcweir const String &
RepositoryTitle() const480cdf0e10cSrcweir OuputPage_Environment::RepositoryTitle() const
481cdf0e10cSrcweir {
482cdf0e10cSrcweir return Gate().RepositoryTitle();
483cdf0e10cSrcweir }
484