4 * Created on: Aug 17, 2010
8 #include "BusMessage.hh"
11 using namespace plpbus_orb;
12 using namespace plpbus;
13 using namespace CORBA;
15 BusMessage::BusMessage()
17 _dataItemSeq.length(0);
21 BusMessage::BusMessage(const char *name_param, const char *value_param)
25 if (name_param != NULL) {
26 item = new DataItem();
27 item->name = strdup(name_param);
28 item->value <<= strdup(value_param);
30 _dataItemSeq.length(1);
31 _dataItemSeq[0] = *item;
34 _dataItemSeq.length(0);
39 BusMessage::~BusMessage()
41 // TODO Auto-generated destructor stub
44 int BusMessage::add_string_parameter(const char *name_param, const char *value_param)
51 if (name_param != NULL) {
52 length = _dataItemSeq.length();
53 item = new DataItem();
54 item->name = strdup(name_param);
55 if (value_param != NULL) {
56 item->value <<= strdup(value_param);
57 _dataItemSeq.length(length + 1);
58 _dataItemSeq[length] = *item;
62 _dataItemSeq.length(0);
68 int BusMessage::add_long_parameter(const char *name_param, long value_param)
75 if (name_param != NULL) {
76 length = _dataItemSeq.length();
77 item = new DataItem();
78 item->name = strdup(name_param);
79 item->value <<= value_param;
81 _dataItemSeq.length(length + 1);
82 _dataItemSeq[length] = *item;
85 _dataItemSeq.length(0);
91 int BusMessage::add_int_parameter(const char *name_param, int value_param)
98 if (name_param != NULL) {
99 length = _dataItemSeq.length();
100 item = new DataItem();
101 item->name = strdup(name_param);
102 item->value <<= (long)value_param;
104 _dataItemSeq.length(length + 1);
105 _dataItemSeq[length] = *item;
108 _dataItemSeq.length(0);
114 int BusMessage::add_double_parameter(const char *name_param, double value_param)
121 if (name_param != NULL) {
122 length = _dataItemSeq.length();
123 item = new DataItem();
124 item->name = strdup(name_param);
125 item->value <<= (long)value_param;
127 _dataItemSeq.length(length + 1);
128 _dataItemSeq[length] = *item;
131 _dataItemSeq.length(0);
137 int BusMessage::add_float_parameter(const char *name_param, float value_param)
144 if (name_param != NULL) {
145 length = _dataItemSeq.length();
146 item = new DataItem();
147 item->name = strdup(name_param);
148 item->value <<= (long)value_param;
150 _dataItemSeq.length(length + 1);
151 _dataItemSeq[length] = *item;
154 _dataItemSeq.length(0);
160 void BusMessage::printout_dataitem(long index, plpbus_orb::DataItem *item) {
164 if (item->name != NULL) {
165 kind = item->value.type()->kind();
172 cout << " [" << index << "] name: " << item->name << ", value: " << val << endl;
179 cout << " [" << index << "] name: " << item->name << ", value: " << val << endl;
180 //val_str = strdup("long");
187 cout << " [" << index << "] name: " << item->name << ", value: " << val << endl;
188 //val_str = strdup("double");
195 cout << " [" << index << "] name: " << item->name << ", value: " << val << endl;
196 //val_str = strdup("float");
200 cout << " [" << index << "] name: " << item->name << ", value unknown. " << endl;
204 cout << " [" << index << "] Invalid dataItem, name or value NULL." << endl;
208 cout << " [" << index << "] dataItem NULL." << endl;
212 void BusMessage::printout() {
216 count = _dataItemSeq.length();
217 cout << "BusMessage.printout(): parameter count: " << count << endl;
218 for (long ii = 0; ii < count; ii++) {
219 item = _dataItemSeq[ii];
220 printout_dataitem(ii, &item);
222 cout << "BusMessage.printout() done" << endl;