source: trunk/ORBit2-2.14.0/test/everything/arrayServer.c

Last change on this file was 92, checked in by cinc, 19 years ago

Orbit2 modified for use with NOM

File size: 5.9 KB
Line 
1/*
2 * CORBA C language mapping tests
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2, or (at your option) any
7 * later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software Foundation,
16 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 *
18 * Author: Phil Dawes <philipd@users.sourceforge.net>
19 */
20
21static test_LongArray_slice *
22ArrayServer_opLongArray(PortableServer_Servant _servant,
23 const test_LongArray inArg,
24 test_LongArray inoutArg,
25 test_LongArray outArg,
26 CORBA_Environment * ev) {
27 int i;
28 test_LongArray_slice *retn;
29 for(i=0;i<test_SequenceLen;i++)
30 g_assert(inArg[i]==constants_SEQ_LONG_IN[i]);
31 for(i=0;i<test_SequenceLen;i++)
32 g_assert(inoutArg[i]==constants_SEQ_LONG_INOUT_IN[i]);
33
34 for(i=0;i<test_SequenceLen;i++)
35 inoutArg[i] = constants_SEQ_LONG_INOUT_OUT[i];
36
37 for(i=0;i<test_SequenceLen;i++)
38 outArg[i] = constants_SEQ_LONG_OUT[i];
39
40 retn = test_LongArray__alloc();
41
42 for(i=0;i<test_SequenceLen;i++)
43 retn[i] = constants_SEQ_LONG_RETN[i];
44
45 return retn;
46}
47
48static test_OctetArray_slice *
49ArrayServer_opOctetArray (PortableServer_Servant _servant,
50 const test_OctetArray inArg,
51 test_OctetArray inoutArg,
52 test_OctetArray outArg,
53 CORBA_Environment *ev)
54{
55 int i;
56 test_OctetArray_slice *retn;
57 for(i=0;i<test_SequenceLen;i++)
58 g_assert(inArg[i]==constants_SEQ_OCTET_IN[i]);
59 for(i=0;i<test_SequenceLen;i++)
60 g_assert(inoutArg[i]==constants_SEQ_OCTET_INOUT_IN[i]);
61
62 for(i=0;i<test_SequenceLen;i++)
63 inoutArg[i] = constants_SEQ_OCTET_INOUT_OUT[i];
64
65 for(i=0;i<test_SequenceLen;i++)
66 outArg[i] = constants_SEQ_OCTET_OUT[i];
67
68 retn = test_OctetArray__alloc();
69
70 for(i=0;i<test_SequenceLen;i++)
71 retn[i] = constants_SEQ_OCTET_RETN[i];
72
73 return retn;
74}
75
76static test_FixedLengthStructArray_slice *
77ArrayServer_opFixedLengthStructArray(PortableServer_Servant _servant,
78 const test_FixedLengthStructArray inArg,
79 test_FixedLengthStructArray inoutArg,
80 test_FixedLengthStructArray outArg,
81 CORBA_Environment *ev){
82 int i;
83 test_FixedLengthStructArray_slice *retn;
84
85 for(i=0;i<test_SequenceLen;i++)
86 g_assert(inArg[i].a==constants_SEQ_OCTET_IN[i]);
87
88 for(i=0;i<test_SequenceLen;i++)
89 g_assert(inoutArg[i].a==constants_SEQ_OCTET_INOUT_IN[i]);
90
91 for(i=0;i<test_SequenceLen;i++)
92 inoutArg[i].a = constants_SEQ_OCTET_INOUT_OUT[i];
93
94 for(i=0;i<test_SequenceLen;i++)
95 outArg[i].a = constants_SEQ_OCTET_OUT[i];
96
97 retn = test_FixedLengthStructArray__alloc();
98
99 for(i=0;i<test_SequenceLen;i++)
100 retn[i].a = constants_SEQ_OCTET_RETN[i];
101
102 return retn;
103}
104
105static test_StrArray_slice *
106ArrayServer_opStrArray(PortableServer_Servant _servant,
107 const test_StrArray inArg,
108 test_StrArray inoutArg,
109 test_StrArray_slice ** outArg,
110 CORBA_Environment * ev)
111{
112 int i;
113 test_StrArray_slice *retn;
114 for(i=0;i<test_SequenceLen;i++)
115 g_assert(strcmp(inArg[i],constants_SEQ_STRING_IN[i])==0);
116
117 for(i=0;i<test_SequenceLen;i++)
118 g_assert(strcmp(inoutArg[i],constants_SEQ_STRING_INOUT_IN[i])==0);
119
120 for(i=0;i<test_SequenceLen;i++){
121 CORBA_free(inoutArg[i]);
122 inoutArg[i] = CORBA_string_dup(constants_SEQ_STRING_INOUT_OUT[i]);
123 }
124
125 *outArg = test_StrArray__alloc();
126 for(i=0;i<test_SequenceLen;i++)
127 (*outArg)[i] = CORBA_string_dup(constants_SEQ_STRING_OUT[i]);
128
129 retn = test_StrArray__alloc();
130 for(i=0;i<test_SequenceLen;i++)
131 retn[i] = CORBA_string_dup(constants_SEQ_STRING_RETN[i]);
132
133 return retn;
134}
135
136static test_AlignHoleStructArray_slice *
137ArrayServer_opAlignHoleStructArray(PortableServer_Servant _servant,
138 const test_AlignHoleStructArray inArg,
139 test_AlignHoleStructArray inoutArg,
140 test_AlignHoleStructArray outArg,
141 CORBA_Environment * ev)
142{
143 int i;
144 test_AlignHoleStructArray_slice *retn;
145 for(i=0;i<test_SequenceLen;i++)
146 g_assert(inArg[i].a.a==constants_SEQ_OCTET_IN[i]);
147 for(i=0;i<test_SequenceLen;i++)
148 g_assert(inArg[i].a.b==constants_SEQ_OCTET_IN[i]);
149 for(i=0;i<test_SequenceLen;i++)
150 g_assert(inArg[i].b==constants_SEQ_OCTET_IN[i]);
151
152 for(i=0;i<test_SequenceLen;i++)
153 g_assert(inoutArg[i].a.a==constants_SEQ_OCTET_INOUT_IN[i]);
154 for(i=0;i<test_SequenceLen;i++)
155 g_assert(inoutArg[i].a.b==constants_SEQ_OCTET_INOUT_IN[i]);
156 for(i=0;i<test_SequenceLen;i++)
157 g_assert(inoutArg[i].b==constants_SEQ_OCTET_INOUT_IN[i]);
158
159 for(i=0;i<test_SequenceLen;i++)
160 inoutArg[i].a.a = constants_SEQ_OCTET_INOUT_OUT[i];
161 for(i=0;i<test_SequenceLen;i++)
162 inoutArg[i].a.b = constants_SEQ_OCTET_INOUT_OUT[i];
163 for(i=0;i<test_SequenceLen;i++)
164 inoutArg[i].b = constants_SEQ_OCTET_INOUT_OUT[i];
165
166 for(i=0;i<test_SequenceLen;i++)
167 outArg[i].a.a = constants_SEQ_OCTET_OUT[i];
168 for(i=0;i<test_SequenceLen;i++)
169 outArg[i].a.b = constants_SEQ_OCTET_OUT[i];
170 for(i=0;i<test_SequenceLen;i++)
171 outArg[i].b = constants_SEQ_OCTET_OUT[i];
172
173 retn = test_AlignHoleStructArray__alloc();
174
175 for(i=0;i<test_SequenceLen;i++)
176 retn[i].a.a = constants_SEQ_OCTET_RETN[i];
177 for(i=0;i<test_SequenceLen;i++)
178 retn[i].a.b = constants_SEQ_OCTET_RETN[i];
179 for(i=0;i<test_SequenceLen;i++)
180 retn[i].b = constants_SEQ_OCTET_RETN[i];
181
182 return retn;
183}
184
185POA_test_ArrayServer__epv ArrayServer_epv = {
186 NULL,
187 ArrayServer_opLongArray,
188 ArrayServer_opOctetArray,
189 ArrayServer_opFixedLengthStructArray,
190 ArrayServer_opStrArray,
191 ArrayServer_opAlignHoleStructArray,
192};
193
194PortableServer_ServantBase__epv ArrayServer_base_epv = {NULL, simple_finalize, NULL};
195POA_test_ArrayServer__vepv ArrayServer_vepv = { &ArrayServer_base_epv, &ArrayServer_epv };
Note: See TracBrowser for help on using the repository browser.