+static DataItem *get_dataitem_by_param_name(DataItemSequence *seq, string arg_name_param) {
+ DataItem *ret_val;
+ long int count;
+ DataItem *item;
+ const char *item_name;
+
+ ret_val = NULL;
+ count = seq->length();
+ for (long ii = 0; ii < count; ii++) {
+ item = &(*seq)[ii];
+ item_name = item->name;
+ if (strcmp(arg_name_param.c_str(), item_name) == 0) {
+ ret_val = item;
+ break;
+ }
+ }
+ return ret_val;
+}
+
+long BusMessage::get_type(int *err_flg) {
+ 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;
+ }
+ return ret_val;
+}
+
+string BusMessage::get_string_parameter(string arg_name_param, int *err_flg) {
+ string ret_val;
+ DataItem *item;
+ DataItemSequence *seq;
+ const char *ch;
+
+ *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 >>= CORBA::Any::to_string(ch, 0);
+ ch = item->str_value;
+ ret_val = ch;
+ *err_flg = PLP_OK;
+ }
+ return ret_val;
+}
+
+long BusMessage::get_long_parameter(string arg_name_param, int *err_flg) {
+ long 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;
+ }
+ return ret_val;
+}
+
+int BusMessage::get_int_parameter(string arg_name_param, int *err_flg) {
+ int ret_val;
+ DataItem *item;
+ 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;
+ }
+ return ret_val;
+}
+
+double BusMessage::get_double_parameter(string arg_name_param, int *err_flg) {
+ double 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;
+ }
+ return ret_val;
+}
+
+float BusMessage::get_float_parameter(string arg_name_param, int *err_flg) {
+ float 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;
+ }
+ return ret_val;
+}
+