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

📄 jbufferedoutputstream.h

📁 b tree code for index in the database design
💻 H
字号:
//////////////////////////////////////////////////////////////////
///
/// (C) 2007: Yuriy Soroka <ysoroka@scalingweb.com>
///	      Anton Fedoruk <afedoruk@scalingweb.com>
///
//////////////////////////////////////////////////////////////////

#ifndef __BufferedOutputStream_h__
#define __BufferedOutputStream_h__

#include "JOutputStream.h"

///
/// Class JBufferedOutputStream
///

template< class T >
class JBufferedOutputStream : public JOutputStream
{
public:

	JBufferedOutputStream();
	JBufferedOutputStream( T *writeDest );
	virtual ~JBufferedOutputStream();

	void setSource( T *writeDest );
	T* source();

	virtual void close();
	virtual int write( char ch );
	inline virtual gint64 pos() const;
	virtual bool seek( gint64 position );
	bool seekRaw( gint64 position );
	inline virtual gint64 size();

	virtual void flush();
	virtual gint64 write( const char* pBuffer, gint64 bufLen );

	inline bool isOk() const;

protected:

	const static long chunkBufSize_ = 65536;
	//const static long chunkBufSize_ = 4096;

	inline bool canWrite( gint64 bufLen ) const;
	void writeToBuffer(const char* pBuffer, gint64 bufLen);
	void flushBuffer();

	T *dest_;

	char chunkBuffer_[ chunkBufSize_ ];
	long chunkBufPtr_;
	bool status_;

private:

	JBufferedOutputStream(const JBufferedOutputStream& rhs);            // cannot be copied
	JBufferedOutputStream& operator=(const JBufferedOutputStream& rhs); // nor assigned
};

#include "JBufferedOutputStream.inl"

#endif //__BufferedOutputStream_h__

⌨️ 快捷键说明

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