它们的结构图如下:

OGRE中文件相关类

Archive

Archive类代表文件容器。FileSystemArchive代表普通的文件容器,也就是文件夹。在Ogre中它还派生了ZipArchive。在上面的UML图中没有给出。Archive中给出了一些存虚函数:比如:

virtual StringVectorPtr list(bool recursive = true ) = 0;
virtual FileInfoListPtr listFileInfo(bool recursive = true ) = 0;
这两个函数用于列出Archive中所有文件的名字或信息。

 

virtual StringVectorPtr find(const String& pattern, bool recursive = true) = 0;
virtual FileInfoListPtr findFileInfo(const String& pattern, 
            bool recursive = true) = 0;
这两个函数列出和给定模式匹配的文件的名字或信息。

 

virtual void load() = 0;
virtual void unload() = 0;
这两个函数用于载入和卸载Archive,也搞不清楚有什么用,在Archive的具体类FileSystemArchive中也没什么功能,甚至Unload的实现为空。可能载入和卸载只是标记一下,在ArchiveManager中专门有一个map用于对已载入的文件的管理。

还有个比较重要的函数就是:
virtual DataStreamPtr open(const String& filename) const = 0;
它基于给定的文件名打开这个Archive中的一个文件返回这个文件的流.我们就可以通过这个DataStreamPtr来操作文件了。DataStream主要方法是对文件的读取操作,比如readLine等方法。注意因为返回了共享指针,所以这里没有相应得close方法。Ptr对象可以自己控制生命周期。

 

FileSystemArchiveFactory
FileSystemArchiveFactory类用于创建和销毁FileSystemArchive,并规定它的ArchiveTypeFileSystem


ArchiveManager

ArchiveManager类用于管理ArchiveFactory,而且负责Archive的载入。


今天一个网友在群里发了一个OGRE中的鱼,很可爱,贴出来:
OGRE中文件相关类

相关文章:

  • 2022-02-06
  • 2021-12-01
  • 2021-05-17
  • 2022-03-03
  • 2022-12-23
  • 2022-01-02
  • 2022-03-08
猜你喜欢
  • 2021-08-21
  • 2022-01-21
  • 2022-01-13
  • 2021-06-25
  • 2022-12-23
  • 2021-08-27
  • 2022-01-15
相关资源
相似解决方案