Vault
4.1
|
00001 /* 00002 Copyright c1997-2014 Trygve Isaacson. All rights reserved. 00003 This file is part of the Code Vault version 4.1 00004 http://www.bombaydigital.com/ 00005 License: MIT. See LICENSE.md in the Vault top level directory. 00006 */ 00007 00008 #ifndef vstreamcopier_h 00009 #define vstreamcopier_h 00010 00013 #include "vtypes.h" 00014 00015 class VStream; 00016 class VIOStream; 00017 00053 class VStreamCopier { 00054 public: 00055 00060 VStreamCopier(); 00067 VStreamCopier(int chunkSize, VStream* from, VStream* to); 00074 VStreamCopier(int chunkSize, VIOStream* from, VIOStream* to); 00081 VStreamCopier(int chunkSize, VStream* from, VIOStream* to); 00088 VStreamCopier(int chunkSize, VIOStream* from, VStream* to); 00092 virtual ~VStreamCopier() {} 00093 00100 void init(int chunkSize, VStream* from, VStream* to); 00107 void init(int chunkSize, VIOStream* from, VIOStream* to); 00114 void init(int chunkSize, VStream* from, VIOStream* to); 00121 void init(int chunkSize, VIOStream* from, VStream* to); 00122 00130 bool copyChunk(); 00135 Vs64 numBytesCopied() const; 00136 00137 private: 00138 00139 VStreamCopier(const VStreamCopier&); // not copyable 00140 VStreamCopier& operator=(const VStreamCopier&); // not assignable 00141 00142 int mChunkSize; 00143 VStream* mFrom; 00144 VStream* mTo; 00145 Vs64 mNumBytesCopied; 00146 }; 00147 00150 #endif /* vstreamcopier_h */