plugins/consoles/rcons/server/win32/DynamicBuffer.h
author Tom Sutcliffe <thomas.sutcliffe@accenture.com>
Wed, 13 Oct 2010 12:41:05 +0100
changeset 66 2a78c4ff2eab
parent 0 7f656887cf89
permissions -rw-r--r--
Migrated ciftest and various fixes from FCL to MCL.

// DynamicBuffer.h
// 
// Copyright (c) 2010 Accenture. All rights reserved.
// This component and the accompanying materials are made available
// under the terms of the "Eclipse Public License v1.0"
// which accompanies this distribution, and is available
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
// 
// Initial Contributors:
// Accenture - Initial contribution
//

#if !defined(AFX_DYNAMICBUFFER_H__FC5FE4BC_8299_4843_BC15_E5B01611B9E2__INCLUDED_)
#define AFX_DYNAMICBUFFER_H__FC5FE4BC_8299_4843_BC15_E5B01611B9E2__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


class CDynamicReadBuffer  
	{
public:
	static CDynamicReadBuffer* New(int aInitialLength);
	virtual ~CDynamicReadBuffer();
	const char* Buffer() const;
	char* Buffer(int aLength);
private:
	CDynamicReadBuffer();
	void Construct(int aInitialLength);
	void GrowBuf(int aNewLength);
private:
	char* iBuf;
	int iMaxBufLength;
	};


class CDynamicWriteBuffer  
	{
public:
	static CDynamicWriteBuffer* New(int aInitialLength);
	virtual ~CDynamicWriteBuffer();
	void Add(char* aBuf, int aLength);
	void Remove(int aLength);
	const char* Buffer() const;
	int Length() const;
private:
	CDynamicWriteBuffer();
	void Construct(int aInitialLength);
	void GrowBuf(int aNewLength);
private:
	char* iBuf;
	int iMaxBufLength;
	int iCurrentBufLength;
	};

#endif // !defined(AFX_DYNAMICBUFFER_H__FC5FE4BC_8299_4843_BC15_E5B01611B9E2__INCLUDED_)