blob: 94c1c4262d15145795a5b817e092a13a13249755 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
// $Id$
#include "cubit_impl.h"
ACE_RCSID(tps, cubit_impl, "$Id$")
CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &) throw (CORBA::SystemException) {
return (CORBA::Octet) (o * o * o);
}
CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &) throw (CORBA::SystemException) {
return (CORBA::Short) (s * s * s);
}
CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &) throw (CORBA::SystemException) {
return (CORBA::Long) (l * l * l);
}
Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &) throw (CORBA::SystemException) {
Cubit::Many out_values;
out_values.o = values.o * values.o * values.o;
out_values.s = values.s * values.s * values.s;
out_values.l = values.l * values.l * values.l;
return out_values;
}
Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &) throw (CORBA::SystemException) {
Cubit::oneof out_values;
switch (values._d ()) {
case Cubit::e_0th:
out_values.o (values.o () * values.o () * values.o ());
break;
case Cubit::e_1st:
out_values.s (values.s () * values.s () * values.s ());
break;
case Cubit::e_2nd:
out_values.l (values.l () * values.l () * values.l ());
break;
case Cubit::e_3rd:
default:
out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ;
out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ;
out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ;
break;
}
return out_values;
}
void Cubit_Impl:: please_exit (CORBA::Environment &) throw (CORBA::SystemException) {
}
Cubit_ptr Cubit_Factory_Impl:: create_cubit (const char * name, CORBA::Environment &) throw (CORBA::SystemException) {
cerr << "Creating Cubit for " << name << endl;
#ifdef Cubit_USE_BOA
Cubit_Impl_Task *cubit = new Cubit_Impl_Task ();
#else
Cubit_Impl_Task *cubit = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl_Task);
#endif
Cubit::_duplicate ((Cubit *)cubit);
cubit->activate (1);
return (Cubit *) cubit;
}
int
Cubit_Impl_Task::svc (void)
{
while (1)
{
// Dequeue message
ACE_Message_Block *mb;
this->msg_queue ()->dequeue_head (mb);
CORBA::Request *vp = (CORBA::Request *) mb->base ();
mb->release ();
// Hand it off to Orbix
CORBA::Orbix.continueThreadDispatch (*vp);
}
return 0;
}
void *
Cubit_Impl_Task::_deref (void)
{
return this;
}
|