4 * Created on: Aug 17, 2010
10 #include "BusMessage.hh"
13 using namespace plpbus_orb;
14 using namespace plpbus;
15 using namespace CORBA;
17 BusMessage::BusMessage()
19 _dataItemSeq.length(0);
23 BusMessage::BusMessage(const char *name_param, const char *value_param)
27 if (name_param != NULL) {
28 item = new DataItem();
29 item->name = strdup(name_param);
30 item->value <<= strdup(value_param);
32 _dataItemSeq.length(1);
33 _dataItemSeq[0] = *item;
36 _dataItemSeq.length(0);
41 BusMessage::~BusMessage()
43 // TODO Auto-generated destructor stub
46 int BusMessage::add_string_parameter(const char *name_param, const char *value_param)
53 if (name_param != NULL) {
54 length = _dataItemSeq.length();
55 item = new DataItem();
56 item->name = strdup(name_param);
57 if (value_param != NULL) {
58 item->value <<= strdup(value_param);
59 _dataItemSeq.length(length + 1);
60 _dataItemSeq[length] = *item;
64 _dataItemSeq.length(0);
70 int BusMessage::add_long_parameter(const char *name_param, long value_param)
77 if (name_param != NULL) {
78 length = _dataItemSeq.length();
79 item = new DataItem();
80 item->name = strdup(name_param);
81 item->value <<= value_param;
83 _dataItemSeq.length(length + 1);
84 _dataItemSeq[length] = *item;
87 _dataItemSeq.length(0);
93 int BusMessage::add_int_parameter(const char *name_param, int value_param)
100 if (name_param != NULL) {
101 length = _dataItemSeq.length();
102 item = new DataItem();
103 item->name = strdup(name_param);
104 item->value <<= (long)value_param;
106 _dataItemSeq.length(length + 1);
107 _dataItemSeq[length] = *item;
110 _dataItemSeq.length(0);
116 int BusMessage::add_double_parameter(const char *name_param, double value_param)
123 if (name_param != NULL) {
124 length = _dataItemSeq.length();
125 item = new DataItem();
126 item->name = strdup(name_param);
127 item->value <<= (long)value_param;
129 _dataItemSeq.length(length + 1);
130 _dataItemSeq[length] = *item;
133 _dataItemSeq.length(0);
139 int BusMessage::add_float_parameter(const char *name_param, float value_param)
146 if (name_param != NULL) {
147 length = _dataItemSeq.length();
148 item = new DataItem();
149 item->name = strdup(name_param);
150 item->value <<= (long)value_param;
152 _dataItemSeq.length(length + 1);
153 _dataItemSeq[length] = *item;
156 _dataItemSeq.length(0);
162 void BusMessage::printout_dataitem(long index, plpbus_orb::DataItem *item) {
166 if (item->name != NULL) {
167 kind = item->value.type()->kind();
174 log_debug(" [%d], value: %s\n", index, val);
181 log_debug(" [%d], value: %ld\n", index, val);
182 //val_str = strdup("long");
189 log_debug(" [%d], value: %f\n", index, val);
190 //val_str = strdup("double");
197 log_debug(" [%d] name: %s, value: %f\n", index, val);
198 //val_str = strdup("float");
202 log_error(" [%d] name, value unknown\n", index);
206 log_error(" [%d] Invalid data item name name or value\n", index);
210 log_error(" [%d] dataItem NULL.", index);
214 void BusMessage::printout() {
218 count = _dataItemSeq.length();
219 log_debug("BusMessage.printout(): parameter count: %l\n", count);
220 for (long ii = 0; ii < count; ii++) {
221 item = _dataItemSeq[ii];
222 printout_dataitem(ii, &item);
224 log_debug("BusMessage.printout() done\n");;