+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) {
+ if (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) {
+ if (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) {
+ 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) {