1 : //==============================================================================
2 : // File <$/src/cpp/dev/idlc/scope.cpp>
3 : // This file is part of YaOrb : Yet Another Object Request Broker,
4 : // Copyright (c) 2000-2003, Marc Alff.
5 : //
6 : // This program is free software; you can redistribute it and/or
7 : // modify it under the terms of the GNU General Public License
8 : // as published by the Free Software Foundation; either version 2
9 : // of the License, or (at your option) any later version.
10 : //
11 : // This program is distributed in the hope that it will be useful,
12 : // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 : // GNU General Public License for more details.
15 : //
16 : // You should have received a copy of the GNU General Public License
17 : // along with this program; if not, write to the Free Software
18 : // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 : //
20 : //==============================================================================
21 :
22 : #include <stdio.h>
23 : #include <iostream>
24 :
25 : #include "src/cpp/dev/idlc/scope.h"
26 :
27 9356 : Scope::Scope(bool global, String* name)
28 9356 : : _global(global), _nameLst()
29 : {
30 : _nameLst.addTail(name) ;
31 : }
32 :
33 5769 : Scope::~Scope()
34 : {
35 5769 : _nameLst.clearAndDestroy() ;
36 : }
37 :
38 9356 : const String* Scope::GetFirstName(void) const
39 : {
40 : return _nameLst.head() ;
41 : }
42 :
43 488 : void Scope::AppendName(String *name)
44 : {
45 : _nameLst.addTail(name) ;
46 : }
47 :
48 9356 : bool Scope::IsGlobal() const
49 : {
50 : return _global ;
51 : }
52 :
53 4 : String Scope::GetFullName() const
54 : {
55 4 : String fullName ;
56 :
57 4 : if (_global)
58 : {
59 0 : fullName += "::" ;
60 : }
61 :
62 : StringListIt it(_nameLst) ;
63 : String *name = NULL ;
64 :
65 4 : if (it.GetNext())
66 : {
67 : name = it.GetItem() ;
68 4 : fullName += *name ;
69 : }
70 :
71 4 : while (it.GetNext())
72 : {
73 : name = it.GetItem() ;
74 0 : fullName += "::" ;
75 0 : fullName += *name ;
76 : }
77 :
78 0 : return fullName ;
79 : }
80 :
81 1 : void Scope::print(std::ostream& str) const
82 : {
83 1 : String fullName = GetFullName() ;
84 :
85 1 : str << fullName ;
86 : }
87 :
88 8394 : int Scope::GetNameCount(void) const
89 : {
90 : return _nameLst.size() ;
91 : }
92 :
93 490 : const StringList& Scope::GetNameList(void) const
94 : {
95 : return _nameLst ;
96 63 : }
97 63 :
|