📄 multibuffer.cpp
字号:
// MultiBuffer.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "MultiBuffer.h"
#include "DiskFile.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// The one and only application object
CWinApp theApp;
using namespace std;
MultiBuffer::MultiBuffer(FileDescriptor * const inFile,FileDescriptor * const outFile):in(inFile),out(outFile)
{
}
MultiBuffer::~MultiBuffer()
{
if(in)
in->close();
if(out)
out->close();
in = NULL;
out = NULL;
}
void MultiBuffer::start()
{
if(in==NULL||in->getStatus()==CLOSED||out==NULL||out->getStatus()==CLOSED)
return;
InputStream fileInput(in);
OutputStream fileOutput(out);
IOThread iothread(&fileInput,&fileOutput);
#ifdef WIN32
DWORD start_time = GetTickCount();
#else
time_t start_time =time(0);
#endif
iothread.start();
fileInput.closeStream();
fileOutput.closeStream();
#ifdef WIN32
DWORD end_time = GetTickCount();
#else
time_t end_time = time(0);
#endif
printf("File Transfer Duration:%d\n",end_time-start_time);
}
/*
int main(int argc, char* argv[])
{
int nRetCode = 0;
// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
cerr << _T("Fatal Error: MFC initialization failed") << endl;
nRetCode = 1;
}
else
{
// TODO: code your application's behavior here.
DiskFile inputFile("D:\\[CASO][Pirates.of.Silicon.Valley][GB][Xvid_Mp3].avi","rb");
DiskFile outputFile("C:\\[CASO][Pirates.of.Silicon.Valley][GB][Xvid_Mp3]1.avi","wb");
MultiBuffer multiBuffer(&inputFile,&outputFile);
multiBuffer.start();
/*
char buf[8*1024];
int totalRead=0,totalWrite=0;
while(1)
{
int readSize = inputFile.read(buf,sizeof(buf));
printf("readSize=%d\n",readSize);
if(readSize<=0)break;
totalRead+=readSize;
int writeSize = outputFile.write(buf,readSize);
printf("writeSize=%d\n",writeSize);
totalWrite+=writeSize;
}
printf("totalread = %d,totalWrite=%d\n",totalRead,totalWrite);
*/
/*
}
return nRetCode;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -