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_function.hxx>
22 :
23 :
24 : // NOT FULLY DECLARED SERVICES
25 : #include <cosv/tpl/processor.hxx>
26 : #include <sci_impl.hxx>
27 :
28 :
29 :
30 : namespace ary
31 : {
32 : namespace idl
33 : {
34 :
35 5502 : Function::Function( const String & i_sName,
36 : Ce_id i_nOwner,
37 : Ce_id i_nNameRoom,
38 : Type_id i_nReturnType,
39 : bool i_bOneWay )
40 : : sName(i_sName),
41 : nOwner(i_nOwner),
42 : nNameRoom(i_nNameRoom),
43 : nReturnType(i_nReturnType),
44 : aParameters(),
45 : aExceptions(),
46 : bOneWay(i_bOneWay),
47 5502 : bEllipse(false)
48 : {
49 5502 : }
50 :
51 93 : Function::Function( const String & i_sName,
52 : Ce_id i_nOwner,
53 : Ce_id i_nNameRoom )
54 : : sName(i_sName),
55 : nOwner(i_nOwner),
56 : nNameRoom(i_nNameRoom),
57 : nReturnType(0),
58 : aParameters(),
59 : aExceptions(),
60 : bOneWay(false),
61 93 : bEllipse(false)
62 : {
63 93 : }
64 :
65 11190 : Function::~Function()
66 : {
67 11190 : }
68 :
69 : void
70 5595 : Function::do_Accept( csv::ProcessorIfc & io_processor ) const
71 : {
72 5595 : csv::CheckedCall(io_processor, *this);
73 5595 : }
74 :
75 : ClassId
76 34347 : Function::get_AryClass() const
77 : {
78 34347 : return class_id;
79 : }
80 :
81 : const String &
82 402089 : Function::inq_LocalName() const
83 : {
84 402089 : return sName;
85 : }
86 :
87 : Ce_id
88 4114 : Function::inq_NameRoom() const
89 : {
90 4114 : return nNameRoom;
91 : }
92 :
93 : Ce_id
94 28282 : Function::inq_Owner() const
95 : {
96 28282 : return nOwner;
97 : }
98 :
99 : E_SightLevel
100 22867 : Function::inq_SightLevel() const
101 : {
102 22867 : return sl_Member;
103 : }
104 :
105 :
106 : namespace ifc_function
107 : {
108 :
109 : inline const Function &
110 27975 : function_cast( const CodeEntity & i_ce )
111 : {
112 : csv_assert( i_ce.AryClass() == Function::class_id );
113 27975 : return static_cast< const Function& >(i_ce);
114 : }
115 :
116 : Type_id
117 5595 : attr::ReturnType( const CodeEntity & i_ce )
118 : {
119 5595 : return function_cast(i_ce).nReturnType;
120 : }
121 :
122 : bool
123 5595 : attr::IsOneway( const CodeEntity & i_ce )
124 : {
125 5595 : return function_cast(i_ce).bOneWay;
126 : }
127 :
128 : bool
129 5595 : attr::HasEllipse( const CodeEntity & i_ce )
130 : {
131 5595 : return function_cast(i_ce).bEllipse;
132 : }
133 :
134 : void
135 5595 : attr::Get_Parameters( Dyn_StdConstIterator<ary::idl::Parameter> & o_result,
136 : const CodeEntity & i_ce )
137 : {
138 : o_result
139 5595 : = new SCI_Vector<Parameter>( function_cast(i_ce).aParameters );
140 5595 : }
141 :
142 : void
143 5595 : attr::Get_Exceptions( Dyn_TypeIterator & o_result,
144 : const CodeEntity & i_ce )
145 : {
146 : o_result
147 5595 : = new SCI_Vector<Type_id>( function_cast(i_ce).aExceptions );
148 5595 : }
149 :
150 :
151 :
152 :
153 :
154 : } // namespace ifc_function
155 :
156 : } // namespace idl
157 3 : } // namespace ary
158 :
159 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|