一聚教程网:一个值得你收藏的教程网站

热门教程

第二人生的源码分析(四十四)虚拟文件系统的请求处理

时间:2022-07-02 11:05:04 编辑:袖梨 来源:一聚教程网


在虚拟文件系统的消息队列里,主要就是LLVFSThread::Request类的请求,Request类是嵌套类,定义在LLVFSThread类里面。它主要实现对类LLVFS的封装访问,让操作更加方便一些,当然它是继续QueuedRequest类的,这样才可以添加到消息队列里去,否则不能添加到这个消息队列容器,也不能实现请求处理的多态了。
 
下面是类Request的构造函数。
#001 LLVFSThread::Request::Request(handle_t handle, U32 priority, U32 flags,
#002                                                  operation_t op, LLVFS* vfs,
#003                                                  const LLUUID &file_id, const LLAssetType::EType file_type,
#004                                                  U8* buffer, S32 offset, S32 numbytes) :
#005      QueuedRequest(handle, priority, flags),
#006      mOperation(op),
#007      mVFS(vfs),
#008      mFileID(file_id),
#009      mFileType(file_type),
#010      mBuffer(buffer),
#011      mOffset(offset),
#012      mBytes(numbytes),
#013      mBytesRead(0)
#014 {
#015      llassert(mBuffer);
#016 
 
判断是否非法出错。
#017      if (numbytes <= 0 && mOperation != FILE_RENAME)
#018 &n