Index: src/libchcore/TOverlappedDataBufferQueue.h
===================================================================
diff -u -N -re4005a958c9412d890eeff1e8087c8298aa7bcf7 -radf2d680643ef85665b042e03fed274ab8f11180
--- src/libchcore/TOverlappedDataBufferQueue.h	(.../TOverlappedDataBufferQueue.h)	(revision e4005a958c9412d890eeff1e8087c8298aa7bcf7)
+++ src/libchcore/TOverlappedDataBufferQueue.h	(.../TOverlappedDataBufferQueue.h)	(revision adf2d680643ef85665b042e03fed274ab8f11180)
@@ -41,6 +41,8 @@
 	~TOverlappedDataBufferQueue();
 
 	void ReinitializeBuffers(size_t stCount, size_t stBufferSize);
+	size_t GetTotalBufferCount() const;
+	size_t GetSingleBufferSize() const;
 
 	// buffer management
 	virtual void AddEmptyBuffer(TOverlappedDataBuffer* pBuffer) override;
@@ -55,6 +57,10 @@
 	// data source change
 	void DataSourceChanged();
 
+	// processing info
+	bool IsDataSourceFinished() const { return m_bDataSourceFinished; }
+	bool IsDataWritingFinished() const { return m_bDataWritingFinished; }
+
 	// event access
 	HANDLE GetEventReadPossibleHandle() const { return m_eventReadPossible.Handle(); }
 	HANDLE GetEventWritePossibleHandle() const { return m_eventWritePossible.Handle(); }
@@ -72,7 +78,6 @@
 
 private:
 	std::deque<std::unique_ptr<TOverlappedDataBuffer>> m_listAllBuffers;
-	size_t m_stBufferSize;
 
 	std::list<TOverlappedDataBuffer*> m_listEmptyBuffers;
 
@@ -85,7 +90,6 @@
 	bool m_bDataSourceFinished;		// input file was already read to the end
 	bool m_bDataWritingFinished;	// output file was already written to the end
 
-	unsigned long long m_ullNextExpectedWritePosition;	// current write file pointer
 	unsigned long long m_ullNextReadBufferOrder;	// next order id for read buffers
 	unsigned long long m_ullNextWriteBufferOrder;	// next order id to be processed when writing
 	unsigned long long m_ullNextFinishedBufferOrder;	// next order id to be processed when finishing writing