33#ifndef TTA_DSDB_MANAGER_HH
34#define TTA_DSDB_MANAGER_HH
39#include <boost/tuple/tuple.hpp>
40#include <boost/tuple/tuple_comparison.hpp>
58#define ILLEGAL_ROW_ID (-1)
152 typedef boost::tuple<RowID, int, ClockCycleCount>
155 typedef std::set<ParetoPointConnectivityAndCycles>
218 std::vector<ClockCycleCount>
219 cycleCounts(
const MachineConfiguration& conf)
const;
236 const MachineConfiguration& conf,
const std::string& path);
int RowID
Type definition of row ID in relational databases.
IDF::MachineImplementation * implementation
the implementation definition of the estimated processor
find Finds info of the inner loops in the false
CycleCount ClockCycleCount
Alias for ClockCycleCount.
RowID addArchitecture(const TTAMachine::Machine &mom)
TTAMachine::Machine * architecture(RowID id) const
std::string file_
The DSDB file containing the current database.
bool hasApplication(RowID id) const
SQLite * db_
Handle to the database.
void writeConfigurationToFile(const MachineConfiguration &conf, const std::string &path)
void setAreaEstimate(RowID implementation, CostEstimator::AreaInGates area)
static DSDBManager * createNew(const std::string &file)
std::set< RowID > configurationIDs() const
std::set< ParetoPointConnectivityAndCycles > ParetoSetConnectivityAndCycles
bool hasEnergyEstimate(RowID application, RowID implementation) const
ClockCycleCount cycleCount(RowID application, RowID architecture) const
RelationalDBConnection * dbConnection_
Handle to the database connection.
std::set< RowID > applicationIDs() const
RowID configurationId(const MachineConfiguration &conf) const
std::string dsdbFile() const
void setUnschedulable(RowID application, RowID architecture)
void setLongestPathDelayEstimate(RowID implementation, double delay)
MachineConfiguration configuration(RowID id) const
std::string applicationPath(RowID id) const
void writeArchitectureToFile(RowID id, const std::string &path) const
double energyEstimate(RowID application, RowID implementation) const
boost::tuple< RowID, int, ClockCycleCount > ParetoPointConnectivityAndCycles
std::vector< ConfigurationCosts > applicationCostEstimatesByConf(Order ordering=ORDER_BY_CONFIGURATION) const
bool hasConfiguration(RowID id) const
double longestPathDelayEstimate(RowID implementation) const
int applicationCount() const
std::string implementationString(RowID id) const
std::vector< ClockCycleCount > cycleCounts(const MachineConfiguration &conf) const
RowID addImplementation(const IDF::MachineImplementation &impl, double longestPathDelay, CostEstimator::AreaInGates area)
bool hasArchitecture(RowID id) const
bool hasCycleCount(RowID application, RowID architecture) const
CostEstimator::AreaInGates areaEstimate(RowID implementation) const
Order
Identifiers for ordering results.
@ ORDER_BY_ENERGY_ESTIMATE
void removeApplication(RowID id)
std::set< RowID > architectureIDs() const
void removeConfiguration(RowID id)
void writeImplementationToFile(RowID id, const std::string &path) const
bool hasImplementation(RowID id) const
RowID addConfiguration(const MachineConfiguration &conf)
ParetoSetConnectivityAndCycles paretoSetConnectivityAndCycles(RowID application=ILLEGAL_ROW_ID) const
std::set< RowID > archConfigurationIDs(RowID architectureID) const
RowID addApplication(const std::string &path)
std::string architectureString(RowID id) const
void addCycleCount(RowID application, RowID architecture, ClockCycleCount count)
bool isUnschedulable(RowID application, RowID architecture) const
RowID architectureId(const TTAMachine::Machine &mach) const
void addEnergyEstimate(RowID application, RowID implementation, double energyEstimate)
double AreaInGates
type for area values in equivalent gates
Struct for configuration costs with a specified application.
ClockCycleCount cycleCount
MachineConfiguration(RowID arch, bool hasImpl, RowID impl)
bool operator()(ConfigurationCosts c1, ConfigurationCosts c2) const
bool operator()(ConfigurationCosts c1, ConfigurationCosts c2) const
bool operator()(ConfigurationCosts c1, ConfigurationCosts c2) const
bool operator()(ConfigurationCosts c1, ConfigurationCosts c2) const