}
BusMessage::~BusMessage() {
+ DataItemSequence *seq;
+
+ log_debug("\n");
+ seq = (DataItemSequence *)_dataItemSeq;
+ if (seq != NULL) {
+ delete(seq);
+ }
+}
+
+int BusMessage::add_cstring_parameter(const char *arg_name_param, const char *value_param) {
+ long ln;
+ int ret_val;
+ DataItemSequence *seq;
+ DataItem *item;
+
+ ret_val = 0;
+ seq = (DataItemSequence *)_dataItemSeq;
+ if (arg_name_param != NULL) {
+ ln = seq->length();
+ seq->length(ln + 1);
+ item = &((*seq)[ln]);
+ item->name = arg_name_param;
+ item->str_value = value_param;
+ }
+ else {
+ ret_val = -1;
+ }
+ return ret_val;
}
int BusMessage::add_string_parameter(string arg_name_param, string value_param)
{
- long length;
+ long ln;
int ret_val;
- DataItem *item;
DataItemSequence *seq;
+ DataItem *item;
+ //str = (const char)"hooo";
ret_val = 0;
seq = (DataItemSequence *)_dataItemSeq;
if (arg_name_param.empty() == false) {
- length = seq->length();
- item = new DataItem();
- item->name = strdup(arg_name_param.c_str());
- item->value <<= value_param.c_str();
- seq->length(length + 1);
- (*seq)[length] = *item;
+ ln = seq->length();
+ seq->length(ln + 1);
+ item = &((*seq)[ln]);
+ item->name = arg_name_param.c_str();
+ item->str_value = value_param.c_str();
}
else {
ret_val = -1;
{
long length;
int ret_val;
- DataItem *item;
DataItemSequence *seq;
ret_val = 0;
seq = (DataItemSequence *)_dataItemSeq;
if (arg_name_param.empty() == false) {
length = seq->length();
- item = new DataItem();
- item->name = strdup(arg_name_param.c_str());
- item->value <<= value_param;
-
seq->length(length + 1);
- (*seq)[length] = *item;
+ (*seq)[length].name = arg_name_param.c_str();
+ (*seq)[length].value <<= value_param;
+ (*seq)[length].str_value = "";
}
else {
ret_val = -1;
{
long length;
int ret_val;
- DataItem *item;
DataItemSequence *seq;
ret_val = 0;
seq = (DataItemSequence *)_dataItemSeq;
if (arg_name_param.empty() == false) {
length = seq->length();
- item = new DataItem();
- item->name = strdup(arg_name_param.c_str());
- item->value <<= (long)value_param;
-
seq->length(length + 1);
- (*seq)[length] = *item;
+ (*seq)[length].name = arg_name_param.c_str();
+ (*seq)[length].value <<= (long)value_param;
+ (*seq)[length].str_value = "";
}
else {
ret_val = -1;
{
long length;
int ret_val;
- DataItem *item;
DataItemSequence *seq;
ret_val = 0;
seq = (DataItemSequence *)_dataItemSeq;
if (arg_name_param.empty() == false) {
length = seq->length();
- item = new DataItem();
- item->name = strdup(arg_name_param.c_str());
- item->value <<= (double)value_param;
-
seq->length(length + 1);
- (*seq)[length] = *item;
+ (*seq)[length].name = arg_name_param.c_str();
+ (*seq)[length].value <<= (double)value_param;
+ (*seq)[length].str_value = "";
}
else {
ret_val = -1;
{
long length;
int ret_val;
- DataItem *item;
DataItemSequence *seq;
ret_val = 0;
seq = (DataItemSequence *)_dataItemSeq;
if (arg_name_param.empty() == false) {
length = seq->length();
- item = new DataItem();
- item->name = strdup(arg_name_param.c_str());
- item->value <<= (float)value_param;
-
seq->length(length + 1);
- (*seq)[length] = *item;
+ (*seq)[length].name = arg_name_param.c_str();
+ (*seq)[length].value <<= (float)value_param;
+ (*seq)[length].str_value = "";
}
else {
ret_val = -1;
long ret_val;
long res;
+ ret_val = -1;
res = get_long_parameter(CONST_MSG_ID_KEY_NAME, err_flg);
if (*err_flg == PLP_OK) {
ret_val = res;
seq = (DataItemSequence *)_dataItemSeq;
item = get_dataitem_by_param_name(seq, arg_name_param);
if (item != NULL) {
- item->value >>= CORBA::Any::to_string(ch, 0);
+ //item->value >>= CORBA::Any::to_string(ch, 0);
+ ch = item->str_value;
ret_val = ch;
*err_flg = PLP_OK;
}
DataItem *item;
DataItemSequence *seq;
+ ret_val = 0;
*err_flg = PLP_ERR_DATA_NOT_FOUND;
seq = (DataItemSequence *)_dataItemSeq;
item = get_dataitem_by_param_name(seq, arg_name_param);
if (item != NULL) {
- item->value >>= ret_val;
- *err_flg = PLP_OK;
+ if (item->value >>= ret_val) {
+ *err_flg = PLP_OK;
+ }
}
return ret_val;
}
DataItemSequence *seq;
long tmp;
+ ret_val = 0;
*err_flg = PLP_ERR_DATA_NOT_FOUND;
seq = (DataItemSequence *)_dataItemSeq;
item = get_dataitem_by_param_name(seq, arg_name_param);
if (item != NULL) {
- item->value >>= tmp;
- ret_val = (int)tmp;
- *err_flg = PLP_OK;
+ if (item->value >>= tmp) {
+ ret_val = (int)tmp;
+ *err_flg = PLP_OK;
+ }
}
return ret_val;
}
DataItem *item;
DataItemSequence *seq;
+ ret_val = 0;
*err_flg = PLP_ERR_DATA_NOT_FOUND;
seq = (DataItemSequence *)_dataItemSeq;
item = get_dataitem_by_param_name(seq, arg_name_param);
if (item != NULL) {
- item->value >>= ret_val;
- *err_flg = PLP_OK;
+ if (item->value >>= ret_val)
+ *err_flg = PLP_OK;
}
return ret_val;
}
DataItem *item;
DataItemSequence *seq;
+ ret_val = 0;
*err_flg = PLP_ERR_DATA_NOT_FOUND;
seq = (DataItemSequence *)_dataItemSeq;
item = get_dataitem_by_param_name(seq, arg_name_param);
if (item != NULL) {
- item->value >>= ret_val;
- *err_flg = PLP_OK;
+ if (item->value >>= ret_val)
+ *err_flg = PLP_OK;
}
return ret_val;
}
+unsigned long BusMessage::get_parameter_count() {
+ int ret_val;
+ DataItemSequence *seq;
+
+ seq = (DataItemSequence *)_dataItemSeq;
+ ret_val = seq->length();
+ return ret_val;
+}
+
void BusMessage::printout_dataitem(long index, void *item) {
CORBA::TCKind kind;
const char *name;
name = dataitem->name;
kind = dataitem->value.type()->kind();
switch(kind) {
- case tk_string:
- {
- const char *val;
-
- dataitem->value >>= val;
- log_debug("\t[%ld] %s: %s\n", index, name, val);
- }
- break;
case tk_long:
{
long val;
}
break;
default:
+ {
+ const char *val;
+ val = dataitem->str_value;
+ log_debug("\t[%ld] %s: %s\n", index, name, val);
+ }
+ break;
log_error("\t[%ld], name: %s, value unknown\n", index, name);
}
}