Go to the documentation of this file.
91 if (!registry->
hasHDB(hdbFile)) {
94 return registry->
hdb(hdbFile);
121 std::map<RowID, FUArchitecture*>::iterator iter =
125 delete (*iter).second;
146 std::map<RowID, FUImplementation*>::iterator iter =
150 delete (*iter).second;
169 std::map<RowID, RFArchitecture*>::iterator iter =
173 delete (*iter).second;
194 std::map<RowID, RFImplementation*>::iterator iter =
198 delete (*iter).second;
221 std::map<RowID, FUArchitecture*>::iterator iter =
fuArchCache_.find(
id);
247 std::map<RowID, RFArchitecture*>::iterator iter =
rfArchCache_.find(
id);
272 const std::string& valueName,
const std::string& pluginName)
const {
275 std::map<std::string, std::map<std::string, DataObject> >::iterator iter =
279 std::map<std::string, DataObject>::iterator it =
280 (*iter).second.find(valueName);
281 if (it != (*iter).second.end()) {
285 (*iter).second[valueName] = dataObject;
289 std::map<std::string, DataObject> temp;
291 temp[valueName] = dataObject;
431 std::map<RowID, RFImplementation*>::iterator iter =
rfImplCache_.find(
id);
466 std::map<RowID, FUImplementation*>::iterator iter =
fuImplCache_.find(
id);
488 std::map<RowID, FUArchitecture*>::iterator iter =
fuArchCache_.find(
id);
502 std::map<RowID, RFArchitecture*>::iterator iter =
rfArchCache_.find(
id);
519 bool useCompiledQueries,
522 if (!useCompiledQueries) {
527 short int queryHash = 0;
532 std::map<short int,RelationalDBQueryResult*>::iterator it =
541 std::string query =
"";
556 std::map<short int,RelationalDBQueryResult*>::iterator it =
577 if (modTime == std::time_t(-1) ||
578 byteSize ==
static_cast<uintmax_t
>(-1)) {
std::map< std::string, std::map< std::string, DataObject > > costEstimationPluginValueCache_
Cost estimation plugin value cache (pluginName/valueName)
void createCostEstimatioDataIdsQuery(const CostEstimationData &match, std::string *query, RelationalDBQueryResult *compiledQuery=NULL, short int *queryHash=NULL, bool createBindableQuery=false) const
virtual FUArchitecture * fuArchitectureByID(RowID id) const
uintmax_t lastSizeInBytes_
used to detect modifications to the HDB file (which invalidates cache)
virtual FUImplementation * createImplementationOfFU(FUArchitecture &architecture, RowID id) const
virtual void removeFUEntry(RowID id) const
virtual void removeFUEntry(RowID id) const
virtual void removeRFImplementation(RowID archID) const
std::map< RowID, FUArchitecture * > fuArchCache_
FU Architecture cache.
virtual void modifyCostFunctionPlugin(RowID id, const CostFunctionPlugin &plugin)
virtual void removeBusEntry(RowID id) const
virtual void removeRFEntry(RowID id) const
virtual void removeFUImplementation(RowID implementationID) const
int RowID
Type definition of row ID in relational databases.
CachedHDBManager & hdb(const std::string fileName)
virtual FUArchitecture * fuArchitectureByID(RowID id) const
virtual void removeSocketEntry(RowID id) const
static CachedHDBManager & createNew(const std::string &fileName)
std::map< short int, RelationalDBQueryResult * > costEstimationDataIDsQueries_
map of cached (compiled) queries for costEstimatioDataIDs function
bool hasHDB(const std::string &hdbFile)
virtual void removeSocketEntry(RowID id) const
RowID rfEntryIDOfImplementation(RowID implID) const
std::map< RowID, FUImplementation * > fuImplCache_
FU Implementation cache.
virtual void removeCostFunctionPlugin(RowID pluginID) const
#define assert(condition)
virtual void modifyCostEstimationData(RowID id, const CostEstimationData &data)
virtual RFImplementation * createImplementationOfRF(RowID id) const
std::map< RowID, RFArchitecture * > rfArchCache_
RF Architecture cache.
static std::time_t lastModificationTime(const std::string &filePath)
virtual DataObject costEstimationDataValue(const std::string &valueName, const std::string &pluginName) const
static void createNew(const std::string &file)
virtual RFArchitecture * rfArchitectureByID(RowID id) const
RowID fuEntryIDOfImplementation(RowID implID) const
const FUArchitecture & fuArchitectureByIDConst(RowID id) const
virtual RelationalDBQueryResult * query(const std::string &queryString, bool init=true)=0
virtual ~CachedHDBManager()
virtual void removeRFEntry(RowID id) const
static uintmax_t sizeInBytes(const std::string &filePath)
virtual void removeRFArchitecture(RowID archID) const
virtual DataObject costEstimationDataValue(const std::string &valueName, const std::string &pluginName) const
const RFArchitecture & rfArchitectureByIDConst(RowID id) const
virtual void removeFUImplementation(RowID id) const
virtual void removeCostFunctionPlugin(RowID pluginID) const
std::string fileName() const
virtual std::set< RowID > costEstimationDataIDs(const CostEstimationData &match, bool useCompiledQueries=false, RelationalDBQueryResult *compiledQuery=NULL) const
RelationalDBConnection * getDBConnection() const
virtual void removeFUArchitecture(RowID archID) const
CachedHDBManager(const std::string &hdbFile)
virtual void removeBusEntry(RowID id) const
virtual std::set< RowID > costEstimationDataIDs(const CostEstimationData &match, bool useCompiledQueries=false, RelationalDBQueryResult *compiledQuery=NULL) const
virtual void removeCostEstimationData(RowID id) const
virtual FUImplementation * createImplementationOfFU(FUArchitecture &architecture, RowID id) const
void addHDB(CachedHDBManager *hdbManager)
virtual void removeRFImplementation(RowID implID) const
virtual void removeCostEstimationData(RowID id) const
void validateCache() const
virtual void deleteCostEstimationDataIDsQueries() const
virtual void removeFUArchitecture(RowID archID) const
virtual void modifyCostEstimationData(RowID id, const CostEstimationData &data)
virtual void modifyCostFunctionPlugin(RowID id, const CostFunctionPlugin &plugin)
virtual RFArchitecture * rfArchitectureByID(RowID id) const
virtual void removeRFArchitecture(RowID archID) const
std::time_t lastModificationTime_
used to detect modifications to the HDB file (which invalidates cache)
virtual RFImplementation * createImplementationOfRF(RowID id) const
static HDBRegistry & instance()
std::map< RowID, RFImplementation * > rfImplCache_
RF Implementation cache.
static CachedHDBManager & instance(const std::string &hdbFile)