transferstatus.h

来自「一个c++实现的acd的例子。 ----ACDCommandListener.」· C头文件 代码 · 共 126 行

H
126
字号
#if !defined(TransferStatus_H)
#define TransferStatus_H



/////////////////////////////////////////////////////////////////////////////////////
// TransferStatus
//
// Purpose:	used to keep track of a transfer

//##ModelId=424BB63F01BE
class TransferStatus
{
	//##ModelId=424BB63F01CC
	long			_blockSize;		// no to send at one time
	//##ModelId=424BB63F01CD
	long			_noToSend;		// number of bytes left to send 
	//##ModelId=424BB63F01DC
	long			_noSent;		// number of bytes sent in response

public:

	//##ModelId=424BB63F01EC
	TransferStatus () :
		_blockSize(0),
		_noToSend(0),
		_noSent(0)
	{}

	// setup status
	//##ModelId=424BB63F01ED
	void reset ()
	{
		_noToSend = 0;
		_noSent = 0;
	}

	//##ModelId=424BB63F01EE
	void begin ( long noToSend )
	{
		_blockSize = noToSend;
		_noToSend = noToSend;
		_noSent = 0;
	}

	//##ModelId=424BB63F01FB
	void setSizeToSend ( long noToSend )
	{
		begin(noToSend);
	}

	// get/set block size
	//##ModelId=424BB63F01FD
	long getBlockSize ()
	{
		return _blockSize;
	}

	//##ModelId=424BB63F01FE
	void setBlockSize ( long set )
	{
		_blockSize = set;
	}

	// status methods
	//##ModelId=424BB63F020C
	long size()
	{
		return _noToSend;
	}

	//##ModelId=424BB63F020D
	long getNoToSend ()
	{
		return _noToSend;
	}

	//##ModelId=424BB63F020E
	long getNoSent ()
	{
		return _noSent;
	}

	//##ModelId=424BB63F021B
	void incNoSent ( long inc )
	{
		// if not valid stop
		if ( inc <= 0 )
			return;

		// update no sent
		_noSent += inc;
		if ( _noSent > size() )
			_noSent = size();
	}

	//##ModelId=424BB63F021D
	void decNoToSend ( long dec )
	{
		// if not valid stop
		if ( dec <= 0 )
			return;

		// update no to send
		_noToSend -= dec;
		if ( _noToSend < 0 )
			_noToSend = 0;
	}

	//##ModelId=424BB63F021F
	bool finished ()
	{
		// if all sent show it
		if ( _noSent == _noToSend )
			return true;
		else
			return false;
	}




};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?