VError CopyHelper::DoInit(const PathBuffer& inSrc, const PathBuffer& inDst) { OpenHelper srcOpnHlp; VError verr=srcOpnHlp.SetFileAccess(FA_READ).Open(inSrc, &fSrcFd); if(verr!=VE_OK) return verr; StatHelper srcStats; verr=srcStats.Stat(fSrcFd); if(verr!=VE_OK) return verr; fSrcSize=srcStats.GetSize(); OpenHelper dstOpnHlp; verr=dstOpnHlp.SetFileAccess(FA_READ_WRITE).SetFileOpenOpts(FO_CreateIfNotFound).Open(inDst, &fDstFd); return verr; }
VError XLinuxFile::Open(const FileAccess inFileAccess, FileOpenOptions inOptions, VFileDesc** outFileDesc) const { if(outFileDesc==NULL) return VE_INVALID_PARAMETER; OpenHelper opnHlp; FileDescSystemRef fd=-1; VError verr=opnHlp.SetFileAccess(inFileAccess).SetFileOpenOpts(inOptions).Open(fPath, &fd); if(verr!=VE_OK) return verr; *outFileDesc=new VFileDesc(fOwner, fd, inFileAccess); if(outFileDesc==NULL) return VE_MEMORY_FULL; return verr; }