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 #include <precomp.h>
23 #include "it_xnameroom.hxx"
24 
25 
26 // NOT FULLY DEFINED SERVICES
27 #include <cosv/tpl/processor.hxx>
28 #include <cosv/tpl/tpltools.hxx>
29 #include <ary/idl/i_gate.hxx>
30 #include <ary/idl/ip_type.hxx>
31 
32 
33 
34 namespace ary
35 {
36 namespace idl
37 {
38 
39 
ExplicitNameRoom()40 ExplicitNameRoom::ExplicitNameRoom()
41     :   aImpl()
42 {
43 }
44 
ExplicitNameRoom(const String & i_sName,const ExplicitNameRoom & i_rParent)45 ExplicitNameRoom::ExplicitNameRoom( const String &           i_sName,
46                                     const ExplicitNameRoom & i_rParent )
47     :   aImpl( i_sName, i_rParent.aImpl, i_rParent.TypeId() )
48 {
49 }
50 
~ExplicitNameRoom()51 ExplicitNameRoom::~ExplicitNameRoom()
52 {
53 }
54 
55 ClassId
get_AryClass() const56 ExplicitNameRoom::get_AryClass() const
57 {
58     return class_id;
59 }
60 
61 void
do_Accept(csv::ProcessorIfc & io_processor) const62 ExplicitNameRoom::do_Accept( csv::ProcessorIfc & io_processor ) const
63 {
64     csv::CheckedCall(io_processor, *this);
65 }
66 
67 void
inq_Get_Text(StringVector & o_module,String &,Ce_id &,int &,const Gate &) const68 ExplicitNameRoom::inq_Get_Text( StringVector &      o_module,
69                                 String &            ,           // o_name
70                                 Ce_id &             ,           // o_nRelatedCe
71                                 int &               ,           // o_nSequemceCount
72                                 const Gate &        ) const     // i_rGate
73 {
74 	StringVector::const_iterator it = NameChain_Begin();
75     if ( it != NameChain_End()
76 			? (*it).empty()
77 			: false )
78 	{	// Don't put out the root global namespace
79 		++it;
80 	}
81 
82     for ( ;
83           it != NameChain_End();
84           ++it )
85     {
86         o_module.push_back(*it);
87     }
88 }
89 
90 
91 
92 
93 }   // namespace idl
94 }   // namespace ary
95