Hybrid Query Processing Engine for Coprocessing in Database Systems
HyPE
|
00001 00002 #include <core/measurementpair.hpp> 00003 #include <boost/lexical_cast.hpp> 00004 00005 namespace hype{ 00006 namespace core{ 00007 00008 MeasurementPair::MeasurementPair() : feature_values_(), measured_time_(0), estimated_time_(0) { 00009 00010 } 00011 00012 MeasurementPair::MeasurementPair(const Tuple& feature_values, MeasuredTime measured_time,EstimatedTime estimated_time) 00013 : feature_values_(feature_values), measured_time_(measured_time), estimated_time_(estimated_time) 00014 { 00015 00016 } 00017 00018 const Tuple& MeasurementPair::getFeatureValues() const{ 00019 return feature_values_; 00020 } 00021 //{ return feature_values.getFeatureValues(); } 00022 00023 const MeasuredTime& MeasurementPair::getMeasuredTime() const{ 00024 return measured_time_; 00025 } 00026 00027 const EstimatedTime& MeasurementPair::getEstimatedTime() const{ 00028 return estimated_time_; 00029 } 00030 00031 const std::string MeasurementPair::toPlainString() const{ 00032 std::string result; 00033 for(unsigned int i=0;i<feature_values_.size();i++){ 00034 result+=boost::lexical_cast<std::string>(feature_values_[i]); 00035 result+="\t"; 00036 //if(i<feature_values_.size()-1) result+=","; 00037 } 00038 result+=boost::lexical_cast<std::string>(measured_time_.getTimeinNanoseconds()); 00039 result+="\t"; 00040 result+=boost::lexical_cast<std::string>(estimated_time_.getTimeinNanoseconds()); 00041 return result; 00042 } 00043 00044 std::ostream& operator<< (std::ostream &out, MeasurementPair &pair) 00045 { 00046 00047 if(pair.getFeatureValues().size()>1){ 00048 // Since operator<< is a friend of the Point class, we can access 00049 // Point's members directly. 00050 out << "(["; 00051 for(unsigned int i=0;i<pair.getFeatureValues().size();i++){ 00052 out << pair.getFeatureValues().at(i); 00053 if(i<pair.getFeatureValues().size()-1) out << ","; 00054 } 00055 out << "], "; 00056 00057 out << pair.getMeasuredTime().getTimeinNanoseconds() << ", " 00058 << pair.getEstimatedTime().getTimeinNanoseconds() << ")"; // << std::endl; 00059 }else if(pair.getFeatureValues().size()==1){ 00060 // Since operator<< is a friend of the Point class, we can access 00061 // Point's members directly. 00062 for(unsigned int i=0;i<pair.getFeatureValues().size();i++){ 00063 out << pair.getFeatureValues().at(i); 00064 out << "\t"; 00065 } 00066 00067 out << pair.getMeasuredTime().getTimeinNanoseconds() << "\t" 00068 << pair.getEstimatedTime().getTimeinNanoseconds(); //<< ")"; // << std::endl; 00069 }else{ 00070 out << "[[[INVALID MEASUREMENT PAIR]]]"; 00071 } 00072 00073 return out; 00074 } 00075 00076 }; //end namespace core 00077 }; //end namespace hype 00078 00079