Column-oriented GPU-accelerated Database Management System
CoGaDB
|
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