Implemented DatabasePath in DatabaseBase revision classes

This commit is contained in:
Robert Osfield
2009-06-02 16:54:34 +00:00
parent 55ae7c05bc
commit 1f878303b4
5 changed files with 76 additions and 9 deletions

View File

@@ -53,7 +53,7 @@ std::string FileCache::createCacheFileName(const std::string& originalFileName)
bool FileCache::existsInCache(const std::string& originalFileName) const
{
if (osgDB::fileExists(createCacheFileName(originalFileName)))
{
{
return !isCachedFileBlackListed(originalFileName);
}
return false;
@@ -228,6 +228,7 @@ ReaderWriter::WriteResult FileCache::writeShader(const osg::Shader& shader, cons
bool FileCache::isCachedFileBlackListed(const std::string& originalFileName) const
{
osg::notify(osg::NOTICE)<<"FileCache::isCachedFileBlackListed("<<originalFileName<<")"<<std::endl;
for(DatabaseRevisionsList::const_iterator itr = _databaseRevisionsList.begin();
itr != _databaseRevisionsList.end();
++itr)
@@ -236,3 +237,28 @@ bool FileCache::isCachedFileBlackListed(const std::string& originalFileName) con
}
return false;
}
bool FileCache::loadDatabaseRevisionsForFile(const std::string& originalFileName)
{
osg::notify(osg::NOTICE)<<"FileCache::loadDatabaseRevisionsForFile("<<originalFileName<<")"<<std::endl;
std::string revisionsFileName = originalFileName;
if (getLowerCaseFileExtension(revisionsFileName)!="revisions") revisionsFileName += ".revisions";
osg::notify(osg::NOTICE)<<" revisionsFileName("<<revisionsFileName<<")"<<std::endl;
osg::ref_ptr<osg::Object> object = osgDB::readObjectFile(revisionsFileName);
DatabaseRevisions* dr = dynamic_cast<DatabaseRevisions*>(object.get());
if (dr)
{
osg::notify(osg::NOTICE)<<" loaded revisions File("<<revisionsFileName<<")"<<std::endl;
_databaseRevisionsList.push_back(dr);
return true;
}
else
{
osg::notify(osg::NOTICE)<<" failed to read revisions File, object.get()="<<object.get()<<std::endl;
return false;
}
}