]> pilppa.org Git - lib1wire.git/blobdiff - src/Data.cc
Moved files that were not w1 specific to libplp.
[lib1wire.git] / src / Data.cc
diff --git a/src/Data.cc b/src/Data.cc
deleted file mode 100644 (file)
index 49dd507..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
-/*
- * DataRange.cc
- *
- *  Created on: Dec 7, 2010
- *      Author: lamikr
- */
-
-#include <string>
-#include <iostream>
-#include <sstream>
-#include <iomanip>
-
-#include <stdio.h>
-#include <time.h>
-#include <malloc.h>
-
-#include <plp/log.h>
-
-#include "Data.hh"
-#include "W1Util.hh"
-
-using namespace std;
-using namespace plp;
-using namespace w1;
-
-template <class NumberDataType>
-bool string_to_number(NumberDataType& result,
-                 const string& string_param,
-                 std::ios_base& (*format)(std::ios_base&))
-{
-       std::istringstream iss(string_param);
-       return !(iss >> format >> result).fail();
-}
-
-Data::Data(int size) {
-       value_arr.resize(size);
-}
-
-Data::Data(int size, double default_value, string unit_param) {
-       int ii;
-
-       value_arr.resize(size);
-       for (ii = 0; ii < size; ii++) {
-               value_arr[ii]   = default_value;
-       }
-       unit    = unit_param;
-}
-
-Data::Data(vector<double> *vect_param) {
-       unsigned int    ii;
-       unsigned int    sz;
-
-       sz      = vect_param->size();
-       //log_debug("Data(), value count: %d\n", size);
-       value_arr.resize(sz);
-       for (ii = 0; ii < sz; ii++) {
-               value_arr[ii]   = vect_param->at(ii);
-               //log_debug("Data(), value[%d]: %f\n", ii, value_arr[ii]);
-       }
-}
-
-Data::Data(std::vector<double> *vector_param, string unit_param) {
-       unsigned int    ii;
-       unsigned int    sz;
-
-       sz      = vector_param->size();
-       //log_debug("Data(), value count: %d\n", size);
-       value_arr.resize(sz);
-       for (ii = 0; ii < sz; ii++) {
-               value_arr[ii]   = vector_param->at(ii);
-               //log_debug("Data(), value[%d]: %f\n", ii, value_arr[ii]);
-       }
-       unit    = unit_param;
-}
-
-Data::Data(vector<double> *vector_param,
-               Date *date_param,
-               string unit_param) {
-       unsigned int    ii;
-       unsigned int    size;
-
-       size    = vector_param->size();
-       //log_debug("Data(), value count: %d\n", size);
-       value_arr.resize(size);
-       for (ii = 0; ii < size; ii++) {
-               value_arr[ii]   = vector_param->at(ii);
-               //log_debug("Data(), value[%d]: %f\n", ii, value_arr[ii]);
-       }
-       date_time.copy(date_param);
-       unit    = unit_param;
-}
-
-Data::Data(std::valarray<double> *val_arr_param, Date *date_param) {
-       unsigned int    ii;
-       unsigned int    sz;
-
-       sz      = val_arr_param->size();
-       value_arr.resize(sz);
-       for (ii = 0; ii < sz; ii++) {
-               value_arr[ii]   = (*val_arr_param)[ii];
-       }
-       date_time.copy(date_param);
-}
-
-Data::~Data() {
-}
-
-Data *Data::clone() {
-       Data    *ret_val;
-
-       ret_val = new Data(&value_arr, &date_time);
-       return ret_val;
-}
-
-void Data::printout() {
-       log_debug("  data: %s\n", to_string().c_str());
-}
-
-plp::Date Data::get_date() {
-       return date_time;
-}
-
-void Data::set_date(Date *date_param) {
-       date_time.copy(date_param);
-}
-
-string Data::get_unit() {
-       return unit;
-}
-
-Data *Data::parse_string(const string& dataline) {
-       stringstream    ss(dataline);
-       string          item;
-       double          val;
-       Data            *ret_val;
-       int             ii;
-       int             sz;
-       bool            suc_flg;
-       vector<double>  v;
-       string          unit;
-       Date            date;
-
-       ii      = 0;
-       ret_val = NULL;
-       //log_debug("parse_string: %s\n", dataline.c_str());
-       while(getline(ss, item, '|')) {
-               if (ii == 0) {
-                       // parse date
-                       date    = W1Util::parse_date_str(item);
-               }
-               else if (ii >= 1) {
-                       suc_flg = string_to_number<double>(val, item, dec);
-                       if (suc_flg) {
-                               //log_debug("adding number: %f\n", val);
-                               v.push_back(val);
-                       }
-               }
-               ii++;
-       }
-       ii      = item.find_last_of(" ");
-       sz      = item.size();
-       if ((ii >= 0) &&
-           ((ii + 1) <= (sz - 1))) {
-               unit    = item.substr(ii + 1);
-       }
-       else {
-               unit    = "";
-       }
-       if (v.size() > 0) {
-               ret_val = new Data(&v, &date, unit);
-       }
-       return ret_val;
-}
-
-string Data::to_string(int dec_precision) {
-       unsigned int    ii;
-       ostringstream   out;
-       string          ret_val;
-
-       ret_val = date_time.to_string();
-       if (value_arr.size() > 0) {
-               for (ii = 0; ii < value_arr.size(); ii++) {
-                       out << "|" << fixed << setprecision(dec_precision) << value_arr[ii];
-               }
-               ret_val.append(out.str());
-               if (unit.empty() == false) {
-                       ret_val.append(" ");
-                       ret_val.append(unit.c_str());
-               }
-       }
-       return ret_val;
-}
-
-string Data::to_string() {
-       return to_string(3);
-}
-
-int Data::get_value_count() {
-       return value_arr.size();
-}
-
-double Data::get(int indx) {
-       return value_arr[indx];
-}
-
-DataRange::DataRange() {
-       val_matrix      = NULL;
-       column_count    = 0;
-       row_count       = 0;
-       unit            = "";
-}
-
-DataRange::DataRange(Data *data) {
-       val_matrix      = NULL;
-       row_count       = 0;
-       if (data != NULL) {
-               column_count    = data->value_arr.size();
-               unit            = data->get_unit();
-               add(data);
-       }
-       else {
-               column_count    = 0;
-               unit            = "";
-       }
-}
-
-DataRange::DataRange(DataRange *datarange) {
-       val_matrix      = NULL;
-       row_count       = 0;
-       column_count    = 0;
-       unit            = "";
-       if (datarange != NULL) {
-               add(datarange);
-       }
-}
-
-DataRange::DataRange(int value_count_per_data_item, string unit_param) {
-       val_matrix      = NULL;
-       column_count    = value_count_per_data_item;
-       row_count       = 0;
-       unit            = unit_param;
-}
-
-DataRange::~DataRange() {
-       unsigned int    ii;
-       Date            *date;
-
-       if (val_matrix != NULL) {
-               free(val_matrix);
-               val_matrix      = NULL;
-       }
-       for (ii = 0; ii < date_list.size(); ii++) {
-               date    = date_list.at(ii);
-               delete(date);
-       }
-}
-
-void DataRange::add(Data *data) {
-       int     ii;
-       int     indx;
-       Date    *date;
-       int     cnt;
-
-       if (data != NULL) {
-               if ((val_matrix == NULL) &&
-                   (column_count == 0) &&
-                   (unit.empty() == true)) {
-                       column_count    = data->value_arr.size();
-                       unit            = data->get_unit();
-               }
-               cnt             = (row_count + 1) * column_count;
-               val_matrix      = (double *)realloc(val_matrix, cnt * sizeof(double));
-               indx            = row_count * column_count;
-               cnt             = data->value_arr.size();
-               if (cnt != column_count) {
-                       log_error("Error when adding data... Invalid data item count!\n");
-                       if (cnt > column_count) {
-                               cnt     = column_count;
-                       }
-                       else {
-                               for (ii = cnt; ii < column_count; ii++) {
-                                       val_matrix[indx + ii]   = 0;
-                               }
-                       }
-               }
-               for (ii = 0; ii < cnt; ii++) {
-                       val_matrix[indx + ii]   = data->value_arr[ii];
-               }
-/*
-               for (int ii = 0; ii < ((row_count + 1) * column_count); ii++) {
-                       log_debug("data_matrix[%d] = %f\n", ii, val_matrix[ii]);
-               }
-*/
-               date    = data->get_date().clone();
-               date_list.push_back(date);
-               row_count++;
-       }
-}
-
-void DataRange::add(DataRange *datarange) {
-       int     ii;
-       int     cnt;
-       Data    *dta;
-
-       if (datarange != NULL) {
-               cnt     = datarange->get_count();
-               for (ii = 0; ii < cnt; ii++) {
-                       dta     = datarange->get(ii);
-                       add(dta);
-                       delete(dta);
-               }
-       }
-}
-
-Data *DataRange::get(int row_index) {
-       Data            *ret_val;
-       int             start_indx;
-       int             ii;
-       vector<double>  vect;
-       Date            *date;
-       double          val;
-
-       ret_val = NULL;
-       if ((row_index >= 0) &&
-           (row_index < row_count)) {
-               start_indx      = row_index * column_count;
-               for (ii = 0; ii < column_count; ii++) {
-                       //val   = val_matrix[0];
-                       val     = val_matrix[start_indx + ii];
-                       //log_debug("val[%d] = %f\n", (start_indx + ii), val);
-                       vect.push_back(val);
-               }
-               date    = date_list.at(row_index);
-               ret_val = new Data(&vect, date, unit);
-       }
-       return ret_val;
-}
-
-int DataRange::get_count() {
-       return row_count;
-}
-
-int DataRange::get_data_item_value_count() {
-       return column_count;
-}
-
-Data *DataRange::get_first() {
-       Data    *ret_val;
-
-       ret_val = NULL;
-       if (row_count > 0) {
-               ret_val = get(0);
-       }
-       return ret_val;
-}
-
-Data *DataRange::get_last() {
-       return get(row_count - 1);
-}
-
-void DataRange::printout() {
-       int     ii;
-       Data    *data;
-
-       log_debug("---- DataRange, number of data items: %d\n ----", row_count);
-       for (ii = 0; ii < row_count; ii++) {
-               data    = get(ii);
-               if (data != NULL) {
-                       data->printout();
-                       delete(data);
-               }
-       }
-       log_debug("---- DataRange printout done ----\n");
-}