]> pilppa.org Git - libplpbus.git/blobdiff - src/plpbus/BusMessage.cc
cleaned up public headers available for bus client and server
[libplpbus.git] / src / plpbus / BusMessage.cc
index 84cd386f937bf68c94e5115a954af11fc4d9da3e..1743d4c8c807dc82ba7f47898c5f95a81bf15754 100644 (file)
@@ -8,60 +8,61 @@
 #include <plp/log.h>
 
 #include "BusMessage.hh"
+#include "RequestResponseBus.hh"
 
 using namespace std;
 using namespace plpbus_orb;
 using namespace plpbus;
 using namespace CORBA;
 
-BusMessage::BusMessage()
-{
-       _dataItemSeq.length(0);
-
+BusMessage::BusMessage() {
+       _dataItemSeq    = new DataItemSequence();
+       log_debug("new BusMessage()\n");
 }
 
-BusMessage::BusMessage(const char *name_param, const char *value_param)
-{
-       DataItem        *item;
+BusMessage::BusMessage(const char *name_param, const char *value_param) {
+       DataItem                *item;
+       DataItemSequence        *seq;
 
        if (name_param != NULL) {
                item            = new DataItem();
                item->name      = strdup(name_param);
                item->value     <<= strdup(value_param);
 
-               _dataItemSeq.length(1);
-               _dataItemSeq[0] = *item;
+               seq     = new DataItemSequence(0);
+               seq->length(1);
+               (*seq)[0]       = *item;
+               _dataItemSeq    = seq;
        }
        else {
-               _dataItemSeq.length(0);
+               _dataItemSeq    = new DataItemSequence(0);
        }
-
 }
 
-BusMessage::~BusMessage()
-{
-       // TODO Auto-generated destructor stub
+BusMessage::~BusMessage() {
 }
 
 int BusMessage::add_string_parameter(const char *name_param, const char *value_param)
 {
-       long            length;
-       int             ret_val;
-       DataItem        *item;
+       long                    length;
+       int                     ret_val;
+       DataItem                *item;
+       DataItemSequence        *seq;
 
        ret_val = 0;
+       seq     = (DataItemSequence *)_dataItemSeq;
        if (name_param != NULL) {
-               length          = _dataItemSeq.length();
+               length          = seq->length();
                item            = new DataItem();
-               item->name              = strdup(name_param);
+               item->name      = strdup(name_param);
                if (value_param != NULL) {
                        item->value     <<= strdup(value_param);
-                       _dataItemSeq.length(length + 1);
-                       _dataItemSeq[length]    = *item;
+                       seq->length(length + 1);
+                       (*seq)[length]  = *item;
                }
        }
        else {
-               _dataItemSeq.length(0);
+               seq->length(0);
                ret_val = -1;
        }
        return ret_val;
@@ -69,22 +70,24 @@ int BusMessage::add_string_parameter(const char *name_param, const char *value_p
 
 int BusMessage::add_long_parameter(const char *name_param, long value_param)
 {
-       long            length;
-       int             ret_val;
-       DataItem        *item;
+       long                    length;
+       int                     ret_val;
+       DataItem                *item;
+       DataItemSequence        *seq;
 
        ret_val = 0;
+       seq     = (DataItemSequence *)_dataItemSeq;
        if (name_param != NULL) {
-               length          = _dataItemSeq.length();
+               length          = seq->length();
                item            = new DataItem();
                item->name      = strdup(name_param);
                item->value     <<= value_param;
 
-               _dataItemSeq.length(length + 1);
-               _dataItemSeq[length]    = *item;
+               seq->length(length + 1);
+               (*seq)[length]  = *item;
        }
        else {
-               _dataItemSeq.length(0);
+               seq->length(0);
                ret_val = -1;
        }
        return ret_val;
@@ -92,22 +95,24 @@ int BusMessage::add_long_parameter(const char *name_param, long value_param)
 
 int BusMessage::add_int_parameter(const char *name_param, int value_param)
 {
-       long            length;
-       int             ret_val;
-       DataItem        *item;
+       long                    length;
+       int                     ret_val;
+       DataItem                *item;
+       DataItemSequence        *seq;
 
        ret_val = 0;
+       seq     = (DataItemSequence *)_dataItemSeq;
        if (name_param != NULL) {
-               length          = _dataItemSeq.length();
+               length          = seq->length();
                item            = new DataItem();
                item->name      = strdup(name_param);
                item->value     <<= (long)value_param;
 
-               _dataItemSeq.length(length + 1);
-               _dataItemSeq[length]    = *item;
+               seq->length(length + 1);
+               (*seq)[length]  = *item;
        }
        else {
-               _dataItemSeq.length(0);
+               seq->length(0);
                ret_val = -1;
        }
        return ret_val;
@@ -115,110 +120,120 @@ int BusMessage::add_int_parameter(const char *name_param, int value_param)
 
 int BusMessage::add_double_parameter(const char *name_param, double value_param)
 {
-       long            length;
-       int             ret_val;
-       DataItem        *item;
+       long                    length;
+       int                     ret_val;
+       DataItem                *item;
+       DataItemSequence        *seq;
 
        ret_val = 0;
+       log_debug("add_double_parameter() started\n");
+       seq     = (DataItemSequence *)_dataItemSeq;
        if (name_param != NULL) {
-               length          = _dataItemSeq.length();
+               length          = seq->length();
                item            = new DataItem();
                item->name      = strdup(name_param);
                item->value     <<= (long)value_param;
 
-               _dataItemSeq.length(length + 1);
-               _dataItemSeq[length]    = *item;
+               seq->length(length + 1);
+               (*seq)[length]  = *item;
        }
        else {
-               _dataItemSeq.length(0);
+               seq->length(0);
                ret_val = -1;
        }
+       log_debug("add_double_parameter() done\n");
        return ret_val;
 }
 
 int BusMessage::add_float_parameter(const char *name_param, float value_param)
 {
-       long            length;
-       int             ret_val;
-       DataItem        *item;
+       long                    length;
+       int                     ret_val;
+       DataItem                *item;
+       DataItemSequence        *seq;
 
        ret_val = 0;
+       seq     = (DataItemSequence *)_dataItemSeq;
        if (name_param != NULL) {
-               length          = _dataItemSeq.length();
+               length          = seq->length();
                item            = new DataItem();
                item->name      = strdup(name_param);
                item->value     <<= (long)value_param;
 
-               _dataItemSeq.length(length + 1);
-               _dataItemSeq[length]    = *item;
+               seq->length(length + 1);
+               (*seq)[length]  = *item;
        }
        else {
-               _dataItemSeq.length(0);
+               seq->length(0);
                ret_val = -1;
        }
        return ret_val;
 }
 
-void BusMessage::printout_dataitem(long index, plpbus_orb::DataItem *item) {
+void BusMessage::printout_dataitem(long index, void *item) {
        CORBA::TCKind   kind;
+       DataItem        *dataitem;
 
+       dataitem        = (DataItem *)item;
        if (item != NULL) {
-               if (item->name != NULL) {
-                       kind    = item->value.type()->kind();
+               if (dataitem->name != NULL) {
+                       kind    = dataitem->value.type()->kind();
                        switch(kind) {
                                case tk_string:
                                        {
                                                const char *val;
 
-                                               item->value >>= val;
-                                               log_debug("     [%ld], value: %s\n", index, val);
+                                               dataitem->value >>= val;
+                                               log_debug("\t[%ld], value: %s\n", index, val);
                                        }
                                        break;
                                case tk_long:
                                        {
                                                long    val;
-                                               item->value >>= val;
-                                               log_debug("     [%ld], value: %ld\n", index, val);
+                                               dataitem->value >>= val;
+                                               log_debug("\t[%ld], value: %ld\n", index, val);
                                                //val_str       = strdup("long");
                                        }
                                        break;
                                case tk_double:
                                        {
                                                double val;
-                                               item->value >>= val;
-                                               log_debug("     [%ld], value: %f\n", index, val);
+                                               dataitem->value >>= val;
+                                               log_debug("\t[%ld], value: %f\n", index, val);
                                                //val_str       = strdup("double");
                                        }
                                        break;
                                case tk_float:
                                        {
                                                float val;
-                                               item->value >>= val;
-                                               log_debug("     [l%ld] value: %f\n", index, val);
+                                               dataitem->value >>= val;
+                                               log_debug("\t[l%ld] value: %f\n", index, val);
                                                //val_str       = strdup("float");
                                        }
                                        break;
                                default:
-                                       log_error("     [%ld], value unknown\n", index);
+                                       log_error("\t[%ld], value unknown\n", index);
                        }
                }
                else {
-                       log_error("     [%ld] Invalid data item name name or value\n", index);
+                       log_error("\t[%ld] Invalid data item name name or value\n", index);
                }
        }
        else {
-               log_error("     [%ld] dataItem NULL.", index);
+               log_error("\t[%ld] dataItem NULL.", index);
        }
 }
 
 void BusMessage::printout() {
-       long int        count;
-       DataItem        item;
+       long int                count;
+       DataItem                item;
+       DataItemSequence        *seq;
 
-       count   = _dataItemSeq.length();
+       seq     = (DataItemSequence *)_dataItemSeq;
+       count   = seq->length();
        log_debug("BusMessage.printout(): parameter count: %ld\n", count);
        for (long ii = 0; ii < count; ii++) {
-               item    = _dataItemSeq[ii];
+               item    = (*seq)[ii];
                printout_dataitem(ii, &item);
        }
        log_debug("BusMessage.printout() done\n");;