core/CDataPack.h
author David Anderson <dvander@alliedmods.net>
Thu Jun 21 23:06:37 2007 +0000 (2007-06-21)
changeset 997 2fc3152c3118
parent 653 ef60870067ff
child 1231 17badaf66ce4
permissions -rw-r--r--
bumped menu api again - added feature to get menu end reason
faluco@484
     1
/**
ds@653
     2
 * vim: set ts=4 :
ds@653
     3
 * ===============================================================
ds@653
     4
 * SourceMod (C)2004-2007 AlliedModders LLC.  All rights reserved.
ds@653
     5
 * ===============================================================
ds@653
     6
 *
ds@653
     7
 * This file is not open source and may not be copied without explicit
ds@653
     8
 * written permission of AlliedModders LLC.  This file may not be redistributed 
ds@653
     9
 * in whole or significant part.
ds@653
    10
 * For information, see LICENSE.txt or http://www.sourcemod.net/license.php
ds@653
    11
 *
ds@653
    12
 * Version: $Id$
ds@653
    13
 */
faluco@484
    14
faluco@484
    15
#ifndef _INCLUDE_SOURCEMOD_CDATAPACK_H_
faluco@484
    16
#define _INCLUDE_SOURCEMOD_CDATAPACK_H_
faluco@484
    17
faluco@484
    18
#include <IDataPack.h>
faluco@484
    19
faluco@484
    20
using namespace SourceMod;
faluco@484
    21
faluco@484
    22
class CDataPack : public IDataPack
faluco@484
    23
{
faluco@484
    24
public:
faluco@484
    25
	CDataPack();
faluco@484
    26
	~CDataPack();
faluco@484
    27
public: //IDataReader
faluco@484
    28
	void Reset() const;
faluco@484
    29
	size_t GetPosition() const;
faluco@484
    30
	bool SetPosition(size_t pos) const;
faluco@484
    31
	cell_t ReadCell() const;
faluco@484
    32
	float ReadFloat() const;
faluco@484
    33
	bool IsReadable(size_t bytes) const;
faluco@484
    34
	const char *ReadString(size_t *len) const;
faluco@484
    35
	void *GetMemory() const;
faluco@488
    36
	void *ReadMemory(size_t *size) const;
faluco@484
    37
public: //IDataPack
faluco@484
    38
	void ResetSize();
faluco@484
    39
	void PackCell(cell_t cell);
faluco@484
    40
	void PackFloat(float val);
faluco@484
    41
	void PackString(const char *string);
faluco@484
    42
	size_t CreateMemory(size_t size, void **addr);
faluco@484
    43
public:
faluco@484
    44
	void Initialize();
faluco@484
    45
private:
faluco@484
    46
	void CheckSize(size_t sizetype);
faluco@484
    47
private:
faluco@484
    48
	char *m_pBase;
faluco@484
    49
	mutable char *m_curptr;
faluco@484
    50
	size_t m_capacity;
faluco@484
    51
	size_t m_size;
faluco@484
    52
};
faluco@484
    53
faluco@485
    54
#endif //_INCLUDE_SOURCEMOD_CDATAPACK_H_