1 #include "Messenger_i.h"
3 #include "tao/AnyTypeCode/TypeCode.h"
7 Messenger_i::Messenger_i()
11 Messenger_i::~Messenger_i()
15 char * Messenger_i::receive_boxedvalue (::demo::value::idl::boxedValue
* b
)
17 std::ostringstream os
;
19 os
<< "null boxed values";
21 os
<< "boxed values: " << b
->b1 ()->_value() << ", " << b
->b2 ()->_value();
23 return CORBA::string_dup (os
.str().c_str());
26 char * Messenger_i::receive_long (
27 ::demo::value::idl::boxedLong
* p1
,
28 ::demo::value::idl::boxedLong
* p2
)
30 std::ostringstream os
;
31 if (p1
== 0 || p2
== 0)
32 os
<< "one or two null values";
34 os
<< "shared long: " << p1
->_value ();
36 os
<< "two longs: " << p1
->_value () << ", " << p2
->_value ();
38 return CORBA::string_dup (os
.str().c_str());
41 char * Messenger_i::receive_string (
42 ::demo::value::idl::boxedString
* s1
,
43 ::demo::value::idl::boxedString
* s2
)
45 std::ostringstream os
;
46 if (s1
== 0 || s2
== 0)
47 os
<< "one or two null values";
49 os
<< "shared string: " << s1
->_value ();
51 os
<< "two strings: " << s1
->_value () << ", " << s2
->_value ();
53 return CORBA::string_dup (os
.str().c_str());
56 char * Messenger_i::receive_list (::demo::value::idl::Node
* node
)
58 std::ostringstream os
;
59 typedef ACE_Vector
< ::demo::value::idl::Node
*> NodeVector
;
61 ::demo::value::idl::Node
* x
= node
;
65 size_t const len
= l
.size ();
67 for (i
= 0; i
< len
; ++i
)
80 size_t const len
= l
.size ();
82 os
<< "list of length: " << len
<< " -- ";
84 for (size_t i
= 0; i
< len
; ++i
)
87 if (l
[i
]->next () != 0)
90 return CORBA::string_dup (os
.str().c_str());
94 Messenger_i::receive_truncatable (::demo::value::idl::TValue
*& v
)
96 v
->data (v
->data () + 1);
97 v
->basic_data (v
->basic_data () + 1);
99 std::ostringstream os
;
100 os
<< "truncatable basic_data " << v
->basic_data () << " data " << v
->data ();
101 return CORBA::string_dup (os
.str().c_str());
105 Messenger_i::receive_sequence (const ::demo::value::idl::ConfigValues
& v
)
107 std::ostringstream os
;
108 os
<< "valuetype sequence: " << std::endl
;
109 CORBA::ULong
const len
= v
.length ();
110 for (CORBA::ULong i
= 0; i
< len
; ++i
)
114 v
[i
]->value () >>= str
;
115 os
<< " - " << str
<< std::endl
;
118 return CORBA::string_dup (os
.str().c_str());