www.pudn.com > acdx.rar > TransferStatus.h


#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