2 //=============================================================================
4 * @file param_test_i.cpp
6 * @author Aniruddha Gokhale
8 //=============================================================================
11 #include "param_test_i.h"
13 #include "tao/debug.h"
14 #include "ace/OS_NS_stdio.h"
15 #include "ace/OS_NS_wchar.h"
16 #include "ace/OS_NS_string.h"
18 // ********* class Coffee_i ****************
21 Coffee_i::Coffee_i (const char *name
)
28 Coffee_i::~Coffee_i (void)
34 Coffee_i::description ( /*env*/)
36 Coffee::Desc
*desc
= new Coffee::Desc
;
37 desc
->name
= CORBA::string_dup (this->name_
.in ());
43 Coffee_i::description (const Coffee::Desc
&description
46 this->name_
= CORBA::string_dup (description
.name
);
50 // ********* class Param_Test_i ****************
54 Param_Test_i::Param_Test_i (const char *coffee_name
,
56 : orb_ (CORBA::ORB::_duplicate (orb
)),
63 Param_Test_i::~Param_Test_i (void)
69 Param_Test_i::test_short (CORBA::Short s1
,
73 s2
= (CORBA::Short
) (s1
* 2);
74 s3
= (CORBA::Short
) (s1
* 3);
75 if (TAO_debug_level
> 0)
77 ACE_DEBUG ((LM_DEBUG
, "\n*=*=*=*SERVER SIDE=*=*=*=*=*=*=\n"));
78 ACE_DEBUG ((LM_DEBUG
, " in = %d, inout = %d, out = %d\n",
81 return (CORBA::Short
) (s1
* 4);
86 Param_Test_i::test_ulonglong (CORBA::ULongLong s1
,
88 CORBA::ULongLong_out s3
)
95 // test unbounded strings. For return and out types, we return duplicates of
96 // the in string. For the inout, we append the same string to itself and send
99 Param_Test_i::test_unbounded_string (const char *s1
,
101 CORBA::String_out s3
)
103 char *retstr
= CORBA::string_dup (s1
);
104 s3
= CORBA::string_dup (s1
);
105 char *tmp
= CORBA::string_alloc (2*ACE_OS::strlen (s2
));
106 ACE_OS::sprintf (tmp
, "%s%s", s2
, s2
);
107 CORBA::string_free (s2
);
112 // test bounded strings. For return and out types, we return duplicates of
113 // the in string. For the inout, we append the same string to itself and send
116 Param_Test_i::test_bounded_string (const char *s1
,
118 CORBA::String_out s3
)
120 char *retstr
= CORBA::string_dup (s1
);
121 s3
= CORBA::string_dup (s1
);
122 char *tmp
= CORBA::string_alloc (2*ACE_OS::strlen (s2
));
123 ACE_OS::sprintf (tmp
, "%s%s", s2
, s2
);
124 CORBA::string_free (s2
);
129 // test unbounded strings. For return and out types, we return duplicates of
130 // the in string. For the inout, we append the same string to itself and send
133 Param_Test_i::test_unbounded_wstring (const CORBA::WChar
*ws1
,
135 CORBA::WString_out ws3
)
137 CORBA::WChar
*retwstr
= CORBA::wstring_dup (ws1
);
138 ws3
= CORBA::wstring_dup (ws1
);
139 CORBA::ULong len
= ACE_OS::wslen (ws2
);
140 CORBA::WChar
*tmp
= CORBA::wstring_alloc (2*len
);
141 for (CORBA::ULong i
= 0; i
< 2; i
++)
142 for (CORBA::ULong j
= 0; j
< len
; j
++)
143 tmp
[j
+ i
*len
] = ws2
[j
];
145 CORBA::wstring_free (ws2
);
150 // test bounded strings. For return and out types, we return duplicates of
151 // the in string. For the inout, we append the same string to itself and send
154 Param_Test_i::test_bounded_wstring (const CORBA::WChar
*ws1
,
156 CORBA::WString_out ws3
)
158 CORBA::WChar
*retwstr
= CORBA::wstring_dup (ws1
);
159 ws3
= CORBA::wstring_dup (ws1
);
160 CORBA::ULong len
= ACE_OS::wslen (ws2
);
161 CORBA::WChar
*tmp
= CORBA::wstring_alloc (2*len
);
162 for (CORBA::ULong i
= 0; i
< 2; i
++)
163 for (CORBA::ULong j
= 0; j
< len
; j
++)
164 tmp
[j
+ i
*len
] = ws2
[j
];
166 CORBA::wstring_free (ws2
);
171 // test for fixed structures. Just copy the in parameter into all the others
172 Param_Test::Fixed_Struct
173 Param_Test_i::test_fixed_struct (const Param_Test::Fixed_Struct
&s1
,
174 Param_Test::Fixed_Struct
&s2
,
175 Param_Test::Fixed_Struct_out s3
)
185 Param_Test_i::test_long_sequence (const CORBA::LongSeq
& s1
,
187 CORBA::LongSeq_out s3
)
190 *ret
= new CORBA::LongSeq
,
191 *out
= new CORBA::LongSeq
;
201 Param_Test_i::test_short_sequence (const CORBA::ShortSeq
& s1
,
202 CORBA::ShortSeq
& s2
,
203 CORBA::ShortSeq_out s3
)
206 *ret
= new CORBA::ShortSeq
,
207 *out
= new CORBA::ShortSeq
;
216 Param_Test::Bounded_Short_Seq
*
217 Param_Test_i::test_bounded_short_sequence (const Param_Test::Bounded_Short_Seq
& s1
,
218 Param_Test::Bounded_Short_Seq
& s2
,
219 Param_Test::Bounded_Short_Seq_out s3
)
221 Param_Test::Bounded_Short_Seq
222 *ret
= new Param_Test::Bounded_Short_Seq
,
223 *out
= new Param_Test::Bounded_Short_Seq
;
232 Param_Test::Bounded_Long_Seq
*
233 Param_Test_i::test_bounded_long_sequence (const Param_Test::Bounded_Long_Seq
& s1
,
234 Param_Test::Bounded_Long_Seq
& s2
,
235 Param_Test::Bounded_Long_Seq_out s3
)
237 Param_Test::Bounded_Long_Seq
238 *ret
= new Param_Test::Bounded_Long_Seq
,
239 *out
= new Param_Test::Bounded_Long_Seq
;
249 Param_Test_i::test_strseq (const CORBA::StringSeq
&s1
,
250 CORBA::StringSeq
&s2
,
251 CORBA::StringSeq_out s3
)
253 // we copy the "in" sequences into all the inout, out and return sequences.
256 *ret
= new CORBA::StringSeq
,
257 *out
= new CORBA::StringSeq
;
259 if (TAO_debug_level
> 0)
261 ACE_DEBUG ((LM_DEBUG
, "\n*=*=*=*SERVER SIDE=*=*=*=*=*=*=\n"));
262 for (CORBA::ULong i
=0; (i
< s2
.length ()); i
++)
264 ACE_DEBUG ((LM_DEBUG
,
268 (s2
[i
]? (const char *)s2
[i
]:"<nul>")));
270 if (s2
.length () == 0)
271 ACE_DEBUG ((LM_DEBUG
, "\ninout sequence is NUL\n"));
274 // now copy all elements of s1 into the others using the assignment operator
282 Param_Test::Bounded_StrSeq
*
283 Param_Test_i::test_bounded_strseq (const Param_Test::Bounded_StrSeq
& s1
,
284 Param_Test::Bounded_StrSeq
& s2
,
285 Param_Test::Bounded_StrSeq_out s3
)
287 // we copy the "in" sequences into all the inout, out and return sequences.
289 Param_Test::Bounded_StrSeq
290 *ret
= new Param_Test::Bounded_StrSeq
,
291 *out
= new Param_Test::Bounded_StrSeq
;
293 // now copy all elements of s1 into the others using the assignment operator
302 Param_Test_i::test_wstrseq (const CORBA::WStringSeq
&ws1
,
303 CORBA::WStringSeq
&ws2
,
304 CORBA::WStringSeq_out ws3
)
306 // we copy the "in" sequences into all the inout, out and return sequences.
309 *ret
= new CORBA::WStringSeq
,
310 *out
= new CORBA::WStringSeq
;
312 // now copy all elements of s1 into the others using the assignment operator
320 Param_Test::Bounded_WStrSeq
*
321 Param_Test_i::test_bounded_wstrseq (const Param_Test::Bounded_WStrSeq
& ws1
,
322 Param_Test::Bounded_WStrSeq
& ws2
,
323 Param_Test::Bounded_WStrSeq_out ws3
)
325 // we copy the "in" sequences into all the inout, out and return sequences.
327 Param_Test::Bounded_WStrSeq
328 *ret
= new Param_Test::Bounded_WStrSeq
,
329 *out
= new Param_Test::Bounded_WStrSeq
;
331 // now copy all elements of s1 into the others using the assignment operator
339 // test for struct sequences
340 Param_Test::StructSeq
*
341 Param_Test_i::test_struct_sequence (const Param_Test::StructSeq
&s1
,
342 Param_Test::StructSeq
&s2
,
343 Param_Test::StructSeq_out s3
)
345 // we copy the "in" sequences into all the inout, out and return sequences.
347 Param_Test::StructSeq
348 *ret
= new Param_Test::StructSeq
,
350 *out
= new Param_Test::StructSeq
;
352 // now copy all elements of s1 into the others using the assignment operator
360 // test for bounded struct sequences
361 Param_Test::Bounded_StructSeq
*
362 Param_Test_i::test_bounded_struct_sequence (const Param_Test::Bounded_StructSeq
& s1
,
363 Param_Test::Bounded_StructSeq
& s2
,
364 Param_Test::Bounded_StructSeq_out s3
)
366 Param_Test::Bounded_StructSeq
367 *ret
= new Param_Test::Bounded_StructSeq
,
368 *out
= new Param_Test::Bounded_StructSeq
;
378 Param_Test::PathSpec
*
379 Param_Test_i::test_unbounded_struct_sequence (const Param_Test::PathSpec
& s1
,
380 Param_Test::PathSpec
& s2
,
381 Param_Test::PathSpec_out s3
)
384 *ret
= new Param_Test::PathSpec
,
385 *out
= new Param_Test::PathSpec
;
388 Param_Test::PathSpec_var rPathSpec
= new Param_Test::PathSpec
;
389 rPathSpec
->length(2);
391 rPathSpec
[0u].name
.id
= CORBA::string_dup("staff");
392 rPathSpec
[0u].name
.kind
= CORBA::string_dup("staff");
393 rPathSpec
[0u].process
= 1;
395 rPathSpec
[1u].name
.id
= CORBA::string_dup("john");
396 rPathSpec
[1u].name
.kind
= CORBA::string_dup("john");
397 rPathSpec
[1u].process
= 1;
408 // test for array sequences
409 Param_Test::ArraySeq
*
410 Param_Test_i::test_array_sequence (const Param_Test::ArraySeq
&s1
,
411 Param_Test::ArraySeq
&s2
,
412 Param_Test::ArraySeq_out s3
)
414 // we copy the "in" sequences into all the inout, out and return sequences.
417 *ret
= new Param_Test::ArraySeq
,
419 *out
= new Param_Test::ArraySeq
;
421 // now copy all elements of s1 into the others using the assignment operator
429 // test for bounded array sequences
430 Param_Test::Bounded_ArraySeq
*
431 Param_Test_i::test_bounded_array_sequence (const Param_Test::Bounded_ArraySeq
& s1
,
432 Param_Test::Bounded_ArraySeq
& s2
,
433 Param_Test::Bounded_ArraySeq_out s3
)
435 Param_Test::Bounded_ArraySeq
436 *ret
= new Param_Test::Bounded_ArraySeq
,
437 *out
= new Param_Test::Bounded_ArraySeq
;
446 Param_Test::Coffee_Mix
*
447 Param_Test_i::test_coffe_mix (const Param_Test::Coffee_Mix
& s1
,
448 Param_Test::Coffee_Mix
& s2
,
449 Param_Test::Coffee_Mix_out s3
)
451 Param_Test::Coffee_Mix
452 *ret
= new Param_Test::Coffee_Mix
,
453 *out
= new Param_Test::Coffee_Mix
;
456 ACE_DEBUG ((LM_DEBUG
,
461 ACE_DEBUG ((LM_DEBUG
, "Elements -\n"));
462 for (CORBA::ULong i
= 0; i
< s1
.length (); ++i
)
464 Coffee_ptr c
= s1
[i
];
465 if (CORBA::is_nil (c
))
467 ACE_DEBUG ((LM_DEBUG
,
468 "Element #%d is nil\n", i
));
471 ACE_DEBUG ((LM_DEBUG
,
475 c
->_interface_repository_id ()));
487 Param_Test::Bounded_Coffee_Mix
*
488 Param_Test_i::test_bounded_coffe_mix (const Param_Test::Bounded_Coffee_Mix
& s1
,
489 Param_Test::Bounded_Coffee_Mix
& s2
,
490 Param_Test::Bounded_Coffee_Mix_out s3
)
492 Param_Test::Bounded_Coffee_Mix
493 *ret
= new Param_Test::Bounded_Coffee_Mix
,
494 *out
= new Param_Test::Bounded_Coffee_Mix
;
497 ACE_DEBUG ((LM_DEBUG
,
502 ACE_DEBUG ((LM_DEBUG
, "Elements -\n"));
503 for (CORBA::ULong i
= 0; i
< s1
.length (); ++i
)
505 Coffee_ptr c
= s1
[i
];
506 if (CORBA::is_nil (c
))
508 ACE_DEBUG ((LM_DEBUG
,
509 "Element #%d is nil\n", i
));
512 ACE_DEBUG ((LM_DEBUG
,
516 c
->_interface_repository_id ()));
529 Param_Test_i::test_anyseq (const CORBA::AnySeq
&s1
,
531 CORBA::AnySeq_out s3
)
533 // we copy the "in" sequences into all the inout, out and return sequences.
536 *ret
= new CORBA::AnySeq
,
537 *out
= new CORBA::AnySeq
;
539 // now copy all elements of s1 into the others using the assignment operator
547 // = end of sequences...
549 // test for variable structs
550 Param_Test::Var_Struct
*
551 Param_Test_i::test_var_struct (const Param_Test::Var_Struct
&s1
,
552 Param_Test::Var_Struct
&s2
,
553 Param_Test::Var_Struct_out s3
)
555 // we copy the "in" sequences into all the inout, out and return sequences.
557 Param_Test::Var_Struct
558 *ret
= new Param_Test::Var_Struct
,
559 *out
= new Param_Test::Var_Struct
;
561 // now copy all elements of s1 into the others
569 // test for nested structs
570 Param_Test::Nested_Struct
*
571 Param_Test_i::test_nested_struct (const Param_Test::Nested_Struct
&s1
,
572 Param_Test::Nested_Struct
&s2
,
573 Param_Test::Nested_Struct_out s3
)
575 // we copy the "in" sequences into all the inout, out and return sequences.
577 Param_Test::Nested_Struct
578 *ret
= new Param_Test::Nested_Struct
,
579 *out
= new Param_Test::Nested_Struct
;
581 // now copy all elements of s1 into the others
589 // test for recursive structs
590 Param_Test::Recursive_Struct
*
591 Param_Test_i::test_recursive_struct (const Param_Test::Recursive_Struct
&s1
,
592 Param_Test::Recursive_Struct
&s2
,
593 Param_Test::Recursive_Struct_out s3
)
595 // we copy the "in" structs into all the inout, out and return sequences.
597 Param_Test::Recursive_Struct
598 *ret
= new Param_Test::Recursive_Struct
,
599 *out
= new Param_Test::Recursive_Struct
;
601 // now copy all elements of s1 into the others
609 Param_Test::Objref_Struct
*
610 Param_Test_i::test_objref_struct (const Param_Test::Objref_Struct
&s1
,
611 Param_Test::Objref_Struct
&s2
,
612 Param_Test::Objref_Struct_out s3
)
614 // we copy the "in" sequences into all the inout, out and return sequences.
616 Param_Test::Objref_Struct
617 *ret
= new Param_Test::Objref_Struct
,
618 *out
= new Param_Test::Objref_Struct
;
620 // now copy all elements of s1 into the others
628 // make a Coffee object
630 Param_Test_i::make_coffee (void)
632 return this->obj_
._this ();
635 // test for object references
637 Param_Test_i::test_objref (Coffee_ptr o1
,
641 Coffee_ptr ret
= Coffee::_nil ();
645 Coffee_var myobj
= obj_
._this ();
647 if (!CORBA::is_nil (o2
))
650 CORBA::Boolean equiv
= myobj
->_is_equivalent (o1
);
654 o2
= Coffee::_duplicate (myobj
.in ());
655 o3
= Coffee::_duplicate (myobj
.in ());
656 ret
= Coffee::_duplicate (myobj
.in ());
660 o2
= Coffee::_nil ();
661 o3
= Coffee::_nil ();
664 catch (const CORBA::SystemException
& sysex
)
666 sysex
._tao_print_exception ("System Exception");
668 catch (const CORBA::UserException
& userex
)
670 userex
._tao_print_exception ("User Exception");
676 // test for typecodes
678 Param_Test_i::test_typecode (CORBA::TypeCode_ptr t1
,
679 CORBA::TypeCode_ptr
&t2
,
680 CORBA::TypeCode_out t3
683 // we simply assign t1 to the others
684 CORBA::TypeCode_ptr retval
= CORBA::TypeCode::_duplicate (t1
);
685 t2
= CORBA::TypeCode::_duplicate (t1
);
686 t3
= CORBA::TypeCode::_duplicate (t1
);
692 Param_Test_i::test_any (const CORBA::Any
&a1
,
697 CORBA::Short short_in
;
700 Param_Test::Fixed_Array_forany array
;
701 const CORBA::ShortSeq
*ub_short_sequence
;
702 const Param_Test::Bounded_Short_Seq
*bd_short_sequence
;
703 const Param_Test::Fixed_Struct
*fixed_structure
;
704 const Param_Test::Big_Union
*big_union
;
705 const Param_Test::Small_Union
*small_union
;
708 a3
= new CORBA::Any (a1
);
709 ret
= new CORBA::Any (a1
);
712 if (TAO_debug_level
> 0)
714 CORBA::TypeCode_var tc
= a1
.type ();
715 int kind
= tc
->kind ();
717 ACE_DEBUG ((LM_DEBUG
,
718 "Received any contents are <%d>\n",
722 // debug the incoming Any
725 if (TAO_debug_level
> 0)
726 ACE_DEBUG ((LM_DEBUG
, "Received short = %d\n", short_in
));
728 if (TAO_debug_level
> 0)
729 ACE_DEBUG ((LM_DEBUG
, "inout short = %d\n", short_in
));
730 *a3
.ptr () >>= short_in
;
731 if (TAO_debug_level
> 0)
732 ACE_DEBUG ((LM_DEBUG
, "out short = %d\n", short_in
));
734 if (TAO_debug_level
> 0)
735 ACE_DEBUG ((LM_DEBUG
, "ret short = %d\n", short_in
));
737 else if (a1
>>= str_in
)
739 if (TAO_debug_level
> 0)
740 ACE_DEBUG ((LM_DEBUG
, "Received unbounded string = %s\n", str_in
));
742 else if (a1
>>= coffee
)
744 if (TAO_debug_level
> 0)
745 ACE_DEBUG ((LM_DEBUG
, "Received Coffee object\n"));
747 else if (a1
>>= array
)
749 if (TAO_debug_level
> 0)
751 ACE_DEBUG ((LM_DEBUG
, "Received Fixed_Array:"));
752 for (CORBA::ULong i
= 0; i
< Param_Test::DIM1
; i
++)
753 ACE_DEBUG ((LM_DEBUG
, " %d", array
[i
]));
754 ACE_DEBUG ((LM_DEBUG
, "\n"));
756 for (CORBA::ULong i
= 0; i
< Param_Test::DIM1
; i
++)
758 a2
<<= Param_Test::Fixed_Array_forany (array
);
759 *ret
<<= Param_Test::Fixed_Array_forany (array
);
761 else if (a1
>>= ub_short_sequence
)
763 if (TAO_debug_level
> 0)
765 ACE_DEBUG ((LM_DEBUG
, "Received Unbounded Short_Seq:"));
766 for (size_t i
= 0; i
< ub_short_sequence
->length (); i
++)
767 ACE_DEBUG ((LM_DEBUG
, " %d", (*ub_short_sequence
)[i
]));
768 ACE_DEBUG ((LM_DEBUG
, "\n"));
770 CORBA::ShortSeq
newseq (*ub_short_sequence
);
771 for (size_t i
= 0; i
< ub_short_sequence
->length (); i
++)
772 newseq
[i
] = (CORBA::Short
) (i
* i
);
776 else if (a1
>>= bd_short_sequence
)
778 if (TAO_debug_level
> 0)
780 ACE_DEBUG ((LM_DEBUG
, "Received Bounded_Short_Seq:"));
781 for (size_t i
= 0; i
< bd_short_sequence
->length (); i
++)
782 ACE_DEBUG ((LM_DEBUG
, " %d", (*bd_short_sequence
)[i
]));
783 ACE_DEBUG ((LM_DEBUG
, "\n"));
785 Param_Test::Bounded_Short_Seq
newseq (*bd_short_sequence
);
786 for (size_t i
= 0; i
< bd_short_sequence
->length (); i
++)
787 newseq
[i
] = (CORBA::Short
) (i
* i
);
791 else if (a1
>>= fixed_structure
)
793 if (TAO_debug_level
> 0)
794 ACE_DEBUG ((LM_DEBUG
, "Received Fixed_Struct\n"));
796 else if (a1
>>= big_union
)
798 const Param_Test::Big_Union
*bu_in
, *bu_inout
, *bu_out
, *bu_ret
;
806 // Extract the value to compare...
811 if (TAO_debug_level
> 0)
812 ACE_DEBUG ((LM_DEBUG
, "Received Big Union\n"
818 bu_inout
->the_long (),
820 bu_ret
->the_long () ));
822 else if (a1
>>= small_union
)
824 const Param_Test::Small_Union
*bu_in
, *bu_inout
, *bu_out
, *bu_ret
;
832 // Extract the value to compare...
837 if (TAO_debug_level
> 0)
838 ACE_DEBUG ((LM_DEBUG
, "Received Small Union\n"
844 bu_inout
->the_long (),
846 bu_ret
->the_long () ));
850 ACE_DEBUG ((LM_DEBUG
, "Received UNKNOWN type\n"));
856 // test for fixed arrays
857 Param_Test::Fixed_Array_slice
*
858 Param_Test_i::test_fixed_array (const Param_Test::Fixed_Array a1
,
859 Param_Test::Fixed_Array a2
,
860 Param_Test::Fixed_Array_out a3
)
862 Param_Test::Fixed_Array_slice
*ret
;
864 Param_Test::Fixed_Array_copy (a2
, a1
);
865 Param_Test::Fixed_Array_copy (a3
, a1
);
866 ret
= Param_Test::Fixed_Array_dup (a1
);
870 // test for var arrays
871 Param_Test::Var_Array_slice
*
872 Param_Test_i::test_var_array (const Param_Test::Var_Array a1
,
873 Param_Test::Var_Array a2
,
874 Param_Test::Var_Array_out a3
)
876 Param_Test::Var_Array_slice
*ret
;
878 Param_Test::Var_Array_copy (a2
, a1
);
879 a3
= Param_Test::Var_Array_dup (a1
);
880 ret
= Param_Test::Var_Array_dup (a1
);
885 Param_Test_i::test_exception (CORBA::ULong s1
,
889 CORBA::ULong d
= s1
% 4;
891 // No exceptions to throw.
898 // Throw a known user exception type to test the user exception.
901 throw Param_Test::Ooops (" % 4 == 1", d
);
903 // Throw a CORBA::SystemException type CORBA::NO_MEMORY to test
904 // the system exception.
907 throw CORBA::NO_MEMORY ();
910 // This will avoid the compiler
911 // warning that test_exception is throwing an exception
912 // not in its THROW_SPEC, but still test TAO's
913 // conversion of such an exception to UNKNOWN.
914 this->throw_badboy ();
919 Param_Test::Big_Union
*
920 Param_Test_i::test_big_union (const Param_Test::Big_Union
& u1
,
921 Param_Test::Big_Union
& u2
,
922 Param_Test::Big_Union_out u3
)
924 Param_Test::Big_Union_var
ret (new Param_Test::Big_Union (u1
));
926 u3
= new Param_Test::Big_Union (u1
);
930 Param_Test::Small_Union
931 Param_Test_i::test_small_union (const Param_Test::Small_Union
& u1
,
932 Param_Test::Small_Union
& u2
,
933 Param_Test::Small_Union_out u3
)
940 Param_Test::Recursive_Union
*
941 Param_Test_i::test_recursive_union (const Param_Test::Recursive_Union
& ru1
,
942 Param_Test::Recursive_Union
& ru2
,
943 Param_Test::Recursive_Union_out ru3
)
945 Param_Test::Recursive_Union_var
ret (new Param_Test::Recursive_Union (ru1
));
947 ru3
= new Param_Test::Recursive_Union (ru1
);
952 Param_Test_i::test_complex_any (const CORBA::Any
&a1
,
956 CORBA::Any_var
ret (new CORBA::Any (a1
));
958 a3
= new CORBA::Any (a1
);
962 Param_Test::Multdim_Array_slice
*
963 Param_Test_i::test_multdim_array (const Param_Test::Multdim_Array a1
,
964 Param_Test::Multdim_Array a2
,
965 Param_Test::Multdim_Array_out a3
)
967 Param_Test::Multdim_Array_slice
*ret
;
969 Param_Test::Multdim_Array_copy (a2
, a1
);
970 Param_Test::Multdim_Array_copy (a3
, a1
);
971 ret
= Param_Test::Multdim_Array_dup (a1
);
976 Param_Test_i::shutdown (void)
978 this->orb_
->shutdown ();
982 Param_Test_i::throw_badboy (void)
984 throw Param_Test::BadBoy ();