Hybrid Query Processing Engine for Coprocessing in Database Systems
HyPE
measurementpair.cpp
Go to the documentation of this file.
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines