Hybrid Query Processing Engine for Coprocessing in Database Systems
HyPE
scheduling_decision.hpp
Go to the documentation of this file.
00001 /***********************************************************************************************************
00002 Copyright (c) 2012, Sebastian Breß, Otto-von-Guericke University of Magdeburg, Germany. All rights reserved.
00003 
00004 This program and accompanying materials are made available under the terms of the 
00005 GNU LESSER GENERAL PUBLIC LICENSE - Version 3, http://www.gnu.org/licenses/lgpl-3.0.txt
00006 ***********************************************************************************************************/
00007 #pragma once
00008 
00009 #include <string>
00010 //#include <vector>
00011 #include <config/exports.hpp>
00012 //#include <core/operation.hpp>
00013 #include <config/global_definitions.hpp>
00014 #include <core/time_measurement.hpp>
00015 #include <core/measurementpair.hpp>
00016 #include <core/specification.hpp>
00017 
00018 /* temporarily disable warnings because of missing STL DLL interface */
00019 #ifdef _MSC_VER
00020 #  pragma warning(push)
00021 #  pragma warning(disable: 4251)
00022 #endif
00023 
00024 namespace hype{
00025    namespace core{
00026 
00027       class Algorithm; //forward declaration
00028       
00029       uint64_t getUniqueID();
00030       
00044       class HYPE_EXPORT SchedulingDecision{
00045          public:
00051             SchedulingDecision(Algorithm& alg_ref, const EstimatedTime& estimated_time_for_algorithm, const Tuple& feature_values);
00052             
00053             ~SchedulingDecision();
00054             
00058             const std::string getNameofChoosenAlgorithm() const;
00062             const EstimatedTime getEstimatedExecutionTimeforAlgorithm() const;
00066             const Tuple getFeatureValues() const;
00070             const DeviceSpecification getDeviceSpecification() const throw(); 
00071             
00072             bool operator==(const SchedulingDecision& sched_dec) const;
00073             
00074          private:
00076             //std::string name_of_algorithm_;
00078             Algorithm& alg_ref_;
00080             EstimatedTime estimated_time_for_algorithm_;
00082             Tuple feature_values_;
00084             uint64_t scheduling_id_;
00085       };
00086 
00087    }; //end namespace core
00088 }; //end namespace hype
00089 
00090 #ifdef _MSC_VER
00091 #  pragma warning(pop)
00092 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines