Column-oriented GPU-accelerated Database Management System
CoGaDB
/home/sebastian/gpudbms/trunk/hype-library/include/core/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