]> pilppa.org Git - libplpbus.git/blobdiff - src/plpbus/BusMessage.cc
added error checks to data parse methods
[libplpbus.git] / src / plpbus / BusMessage.cc
index 99d32a0f9ac9d958dd52a1f25bd317619b3a7abe..d592a6610e48273fd50843177044c394ec7078c4 100644 (file)
@@ -40,23 +40,11 @@ BusMessage::BusMessage(long type_param,
 }
 
 BusMessage::~BusMessage() {
-       long                    cnt;
        DataItemSequence        *seq;
 
        log_debug("\n");
        seq     = (DataItemSequence *)_dataItemSeq;
        if (seq != NULL) {
-               cnt     = seq->length();
-/*
-               DataItem                *item;
-
-               for (long ii = 0; ii < cnt; ii++) {
-                       item    = seq[ii];
-                       log_debug("deleting BusMessage item:\n");
-                       printout_dataitem(ii, item);
-                       delete(item);
-               }
-*/
                delete(seq);
        }
 }
@@ -250,8 +238,9 @@ long BusMessage::get_long_parameter(string arg_name_param, int *err_flg) {
        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;
 }
@@ -267,9 +256,10 @@ int BusMessage::get_int_parameter(string arg_name_param, int *err_flg) {
        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;
 }
@@ -284,8 +274,8 @@ double BusMessage::get_double_parameter(string arg_name_param, int *err_flg) {
        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;
 }
@@ -300,12 +290,21 @@ float BusMessage::get_float_parameter(string arg_name_param, int *err_flg) {
        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;
@@ -369,7 +368,6 @@ void BusMessage::printout() {
        count   = seq->length();
        log_debug("BusMessage.printout(): parameter count: %ld\n", count);
        for (long ii = 0; ii < count; ii++) {
-               printf("item[%ld]\n", ii);
                item    = (*seq)[ii];
                printout_dataitem(ii, &item);
        }