4 * Created on: Aug 17, 2010
10 #include "BusMessage.hh"
11 #include "RequestResponseBus.hh"
14 using namespace plpbus_orb;
15 using namespace plpbus;
16 using namespace CORBA;
18 BusMessage::BusMessage() {
19 _dataItemSeq = new DataItemSequence();
20 log_debug("new BusMessage()\n");
23 BusMessage::BusMessage(const char *name_param, const char *value_param) {
25 DataItemSequence *seq;
27 if (name_param != NULL) {
28 item = new DataItem();
29 item->name = strdup(name_param);
30 item->value <<= strdup(value_param);
32 seq = new DataItemSequence(0);
38 _dataItemSeq = new DataItemSequence(0);
42 BusMessage::~BusMessage() {
45 int BusMessage::add_string_parameter(const char *name_param, const char *value_param)
50 DataItemSequence *seq;
53 seq = (DataItemSequence *)_dataItemSeq;
54 if (name_param != NULL) {
55 length = seq->length();
56 item = new DataItem();
57 item->name = strdup(name_param);
58 if (value_param != NULL) {
59 item->value <<= strdup(value_param);
60 seq->length(length + 1);
61 (*seq)[length] = *item;
71 int BusMessage::add_long_parameter(const char *name_param, long value_param)
76 DataItemSequence *seq;
79 seq = (DataItemSequence *)_dataItemSeq;
80 if (name_param != NULL) {
81 length = seq->length();
82 item = new DataItem();
83 item->name = strdup(name_param);
84 item->value <<= value_param;
86 seq->length(length + 1);
87 (*seq)[length] = *item;
96 int BusMessage::add_int_parameter(const char *name_param, int value_param)
101 DataItemSequence *seq;
104 seq = (DataItemSequence *)_dataItemSeq;
105 if (name_param != NULL) {
106 length = seq->length();
107 item = new DataItem();
108 item->name = strdup(name_param);
109 item->value <<= (long)value_param;
111 seq->length(length + 1);
112 (*seq)[length] = *item;
121 int BusMessage::add_double_parameter(const char *name_param, double value_param)
126 DataItemSequence *seq;
129 log_debug("add_double_parameter() started\n");
130 seq = (DataItemSequence *)_dataItemSeq;
131 if (name_param != NULL) {
132 length = seq->length();
133 item = new DataItem();
134 item->name = strdup(name_param);
135 item->value <<= (long)value_param;
137 seq->length(length + 1);
138 (*seq)[length] = *item;
144 log_debug("add_double_parameter() done\n");
148 int BusMessage::add_float_parameter(const char *name_param, float value_param)
153 DataItemSequence *seq;
156 seq = (DataItemSequence *)_dataItemSeq;
157 if (name_param != NULL) {
158 length = seq->length();
159 item = new DataItem();
160 item->name = strdup(name_param);
161 item->value <<= (long)value_param;
163 seq->length(length + 1);
164 (*seq)[length] = *item;
173 void BusMessage::printout_dataitem(long index, void *item) {
177 dataitem = (DataItem *)item;
179 if (dataitem->name != NULL) {
180 kind = dataitem->value.type()->kind();
186 dataitem->value >>= val;
187 log_debug("\t[%ld], value: %s\n", index, val);
193 dataitem->value >>= val;
194 log_debug("\t[%ld], value: %ld\n", index, val);
195 //val_str = strdup("long");
201 dataitem->value >>= val;
202 log_debug("\t[%ld], value: %f\n", index, val);
203 //val_str = strdup("double");
209 dataitem->value >>= val;
210 log_debug("\t[l%ld] value: %f\n", index, val);
211 //val_str = strdup("float");
215 log_error("\t[%ld], value unknown\n", index);
219 log_error("\t[%ld] Invalid data item name name or value\n", index);
223 log_error("\t[%ld] dataItem NULL.", index);
227 void BusMessage::printout() {
230 DataItemSequence *seq;
232 seq = (DataItemSequence *)_dataItemSeq;
233 count = seq->length();
234 log_debug("BusMessage.printout(): parameter count: %ld\n", count);
235 for (long ii = 0; ii < count; ii++) {
237 printout_dataitem(ii, &item);
239 log_debug("BusMessage.printout() done\n");;