Use =default for skeleton copy constructor
[ACE_TAO.git] / TAO / tests / OBV / Indirection / Messenger_i.cpp
blob953d20632d407474b281044722ebe02e80f9a77e
1 #include "Messenger_i.h"
3 #include "tao/AnyTypeCode/TypeCode.h"
5 #include <sstream>
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;
18 if (b == 0)
19 os << "null boxed values";
20 else
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";
33 else if (p1 == p2)
34 os << "shared long: " << p1->_value ();
35 else
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";
48 else if (s1 == s2)
49 os << "shared string: " << s1->_value ();
50 else
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;
60 NodeVector l;
61 ::demo::value::idl::Node* x = node;
63 while (x != 0)
65 size_t const len = l.size ();
66 size_t i = 0;
67 for (i = 0; i < len; ++i)
69 if (l[i] == x)
70 break;
73 if (l[i] == x)
74 break;
76 l.push_back (x);
77 x = x->next ();
80 size_t const len = l.size ();
82 os << "list of length: " << len << " -- ";
84 for (size_t i = 0; i < len; ++i)
86 os << l[i]->id ();
87 if (l[i]->next () != 0)
88 os << " ";
90 return CORBA::string_dup (os.str().c_str());
93 char *
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());
104 char *
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)
112 os << v[i]->name();
113 const char* str;
114 v[i]->value () >>= str;
115 os << " - " << str << std::endl;
117 os << std::endl;
118 return CORBA::string_dup (os.str().c_str());