example for fileIOPlugin.py loading SDF and its assets from a single zipfile,

also show how to disable file caching (used in the fileIOPlugin)
This commit is contained in:
erwincoumans
2018-11-17 14:11:01 -08:00
parent 9e99f5cdbc
commit f9f8d0fbb0
7 changed files with 54 additions and 4 deletions

View File

@@ -283,6 +283,11 @@ struct InMemoryFileIO : public CommonFileIOInterface
}
return 0;
}
virtual void enableFileCaching(bool enable)
{
(void)enable;
}
};
struct WrapperFileIO : public CommonFileIOInterface
@@ -292,10 +297,12 @@ struct WrapperFileIO : public CommonFileIOInterface
WrapperFileHandle m_wrapperFileHandles[B3_MAX_FILEIO_INTERFACES];
InMemoryFileIO m_cachedFiles;
bool m_enableFileCaching;
WrapperFileIO()
:CommonFileIOInterface(0,0),
m_numWrapperInterfaces(0)
m_numWrapperInterfaces(0),
m_enableFileCaching(true)
{
for (int i=0;i<B3_MAX_FILEIO_INTERFACES;i++)
{
@@ -406,7 +413,10 @@ struct WrapperFileIO : public CommonFileIOInterface
}
//potentially register a zero byte file, or files that only can be read partially
m_cachedFiles.registerFile(fileName,buffer, fileSize);
if (m_enableFileCaching)
{
m_cachedFiles.registerFile(fileName, buffer, fileSize);
}
childFileIO->fileClose(childHandle);
break;
}
@@ -525,6 +535,15 @@ struct WrapperFileIO : public CommonFileIOInterface
return numBytes;
}
virtual void enableFileCaching(bool enable)
{
m_enableFileCaching = enable;
if (!enable)
{
m_cachedFiles.clearCache();
}
}
};

View File

@@ -252,5 +252,10 @@ struct ZipFileIO : public CommonFileIOInterface
}
return size;
}
virtual void enableFileCaching(bool enable)
{
(void)enable;
}
};