Vault  4.1
vstreamcopier.cpp
Go to the documentation of this file.
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 
00010 #include "vstreamcopier.h"
00011 #include "vstream.h"
00012 #include "viostream.h"
00013 
00014 VStreamCopier::VStreamCopier()
00015     : mChunkSize(0)
00016     , mFrom(NULL)
00017     , mTo(NULL)
00018     , mNumBytesCopied(0)
00019     {
00020 }
00021 
00022 VStreamCopier::VStreamCopier(int chunkSize, VStream* from, VStream* to)
00023     : mChunkSize(chunkSize)
00024     , mFrom(from)
00025     , mTo(to)
00026     , mNumBytesCopied(0)
00027     {
00028 }
00029 
00030 VStreamCopier::VStreamCopier(int chunkSize, VIOStream* from, VIOStream* to)
00031     : mChunkSize(chunkSize)
00032     , mFrom(&from->getRawStream())
00033     , mTo(&to->getRawStream())
00034     , mNumBytesCopied(0)
00035     {
00036 }
00037 
00038 VStreamCopier::VStreamCopier(int chunkSize, VStream* from, VIOStream* to)
00039     : mChunkSize(chunkSize)
00040     , mFrom(from)
00041     , mTo(&to->getRawStream())
00042     , mNumBytesCopied(0)
00043     {
00044 }
00045 
00046 VStreamCopier::VStreamCopier(int chunkSize, VIOStream* from, VStream* to)
00047     : mChunkSize(chunkSize)
00048     , mFrom(&from->getRawStream())
00049     , mTo(to)
00050     , mNumBytesCopied(0)
00051     {
00052 }
00053 
00054 void VStreamCopier::init(int chunkSize, VStream* from, VStream* to) {
00055     mChunkSize = chunkSize;
00056     mFrom = from;
00057     mTo = to;
00058     mNumBytesCopied = 0;
00059 }
00060 
00061 void VStreamCopier::init(int chunkSize, VIOStream* from, VIOStream* to) {
00062     mChunkSize = chunkSize;
00063     mFrom = &from->getRawStream();
00064     mTo = &to->getRawStream();
00065     mNumBytesCopied = 0;
00066 }
00067 
00068 void VStreamCopier::init(int chunkSize, VStream* from, VIOStream* to) {
00069     mChunkSize = chunkSize;
00070     mFrom = from;
00071     mTo = &to->getRawStream();
00072     mNumBytesCopied = 0;
00073 }
00074 
00075 void VStreamCopier::init(int chunkSize, VIOStream* from, VStream* to) {
00076     mChunkSize = chunkSize;
00077     mFrom = &from->getRawStream();
00078     mTo = to;
00079     mNumBytesCopied = 0;
00080 }
00081 
00082 bool VStreamCopier::copyChunk() {
00083     Vs64    numBytesToCopy = mChunkSize;
00084     Vs64    theNumBytesCopied = 0;
00085 
00086     if ((mFrom != NULL) && (mTo != NULL)) {
00087         theNumBytesCopied = VStream::streamCopy(*mFrom, *mTo, numBytesToCopy);
00088     }
00089 
00090     mNumBytesCopied += theNumBytesCopied;
00091 
00092     return (theNumBytesCopied == numBytesToCopy);
00093 }
00094 
00095 Vs64 VStreamCopier::numBytesCopied() const {
00096     return mNumBytesCopied;
00097 }
00098 

Copyright ©1997-2014 Trygve Isaacson. All rights reserved. This documentation was generated with Doxygen.