Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include <precomp.h>
21 : #include <ary/idl/i_interface.hxx>
22 :
23 :
24 : // NOT FULLY DECLARED SERVICES
25 : #include <cosv/tpl/processor.hxx>
26 : #include <ary/idl/ik_interface.hxx>
27 : #include <ary/doc/d_oldidldocu.hxx>
28 : #include <sci_impl.hxx>
29 : #include "i2s_calculator.hxx"
30 :
31 :
32 : namespace ary
33 : {
34 : namespace idl
35 : {
36 :
37 :
38 : class Interface_2s
39 : {
40 : };
41 :
42 :
43 1644 : Interface::Interface( const String & i_sName,
44 : Ce_id i_nOwner )
45 : : sName(i_sName),
46 : nOwner(i_nOwner),
47 : aBases(),
48 : aFunctions(),
49 : aAttributes(),
50 1644 : p2s()
51 : {
52 1644 : }
53 :
54 4932 : Interface::~Interface()
55 : {
56 10392 : for ( RelationList::iterator it = aBases.begin();
57 6928 : it != aBases.end();
58 : ++it )
59 : {
60 1820 : delete (*it).Info();
61 : }
62 3288 : }
63 :
64 : void
65 3288 : Interface::do_Accept( csv::ProcessorIfc & io_processor ) const
66 : {
67 3288 : csv::CheckedCall(io_processor, *this);
68 3288 : }
69 :
70 : ClassId
71 32405 : Interface::get_AryClass() const
72 : {
73 32405 : return class_id;
74 : }
75 :
76 : const String &
77 178422 : Interface::inq_LocalName() const
78 : {
79 178422 : return sName;
80 : }
81 :
82 : Ce_id
83 43329 : Interface::inq_NameRoom() const
84 : {
85 43329 : return nOwner;
86 : }
87 :
88 : Ce_id
89 9303 : Interface::inq_Owner() const
90 : {
91 9303 : return nOwner;
92 : }
93 :
94 : E_SightLevel
95 28140 : Interface::inq_SightLevel() const
96 : {
97 28140 : return sl_File;
98 : }
99 :
100 :
101 : namespace ifc_interface
102 : {
103 :
104 : inline const Interface &
105 27142 : interface_cast( const CodeEntity & i_ce )
106 : {
107 : csv_assert( i_ce.AryClass() == Interface::class_id );
108 27142 : return static_cast< const Interface& >(i_ce);
109 : }
110 :
111 : void
112 20566 : attr::Get_Bases( Dyn_StdConstIterator<CommentedRelation> & o_result,
113 : const CodeEntity & i_ce )
114 : {
115 20566 : o_result = new SCI_Vector<CommentedRelation>(interface_cast(i_ce).aBases);
116 20566 : }
117 :
118 : void
119 3288 : attr::Get_Functions( Dyn_CeIterator & o_result,
120 : const CodeEntity & i_ce )
121 : {
122 3288 : o_result = new SCI_Vector<Ce_id>(interface_cast(i_ce).aFunctions);
123 3288 : }
124 :
125 : void
126 3288 : attr::Get_Attributes( Dyn_CeIterator & o_result,
127 : const CodeEntity & i_ce )
128 : {
129 3288 : o_result = new SCI_Vector<Ce_id>(interface_cast(i_ce).aAttributes);
130 3288 : }
131 :
132 : void
133 4616 : xref::Get_Derivations( Dyn_CeIterator & o_result,
134 : const CodeEntity & i_ce )
135 : {
136 4616 : o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_Derivations));
137 4616 : }
138 :
139 : void
140 1644 : xref::Get_SynonymTypedefs( Dyn_CeIterator & o_result,
141 : const CodeEntity & i_ce )
142 : {
143 1644 : o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_SynonymTypedefs));
144 1644 : }
145 :
146 : void
147 1644 : xref::Get_ExportingServices( Dyn_CeIterator & o_result,
148 : const CodeEntity & i_ce )
149 : {
150 1644 : o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_ExportingServices));
151 1644 : }
152 :
153 : void
154 1644 : xref::Get_ExportingSingletons( Dyn_CeIterator & o_result,
155 : const CodeEntity & i_ce )
156 : {
157 1644 : o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_ExportingSingletons));
158 1644 : }
159 :
160 : void
161 1644 : xref::Get_AsReturns( Dyn_CeIterator & o_result,
162 : const CodeEntity & i_ce )
163 : {
164 1644 : o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_AsReturns));
165 1644 : }
166 :
167 : void
168 1644 : xref::Get_AsParameters( Dyn_CeIterator & o_result,
169 : const CodeEntity & i_ce )
170 : {
171 1644 : o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_AsParameters));
172 1644 : }
173 :
174 : void
175 1644 : xref::Get_AsDataTypes( Dyn_CeIterator & o_result,
176 : const CodeEntity & i_ce )
177 : {
178 1644 : o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_AsDataTypes));
179 1644 : }
180 :
181 :
182 :
183 :
184 : } // namespace ifc_interface
185 :
186 :
187 : } // namespace idl
188 3 : } // namespace ary
189 :
190 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|