⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multibuffer.cpp

📁 缓冲 缓冲 缓冲 缓冲 缓冲 缓冲
💻 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 + -