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:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -252,5 +252,10 @@ struct ZipFileIO : public CommonFileIOInterface
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
virtual void enableFileCaching(bool enable)
|
||||
{
|
||||
(void)enable;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user