mirror of
https://github.com/ondra-novak/gates_of_skeldal.git
synced 2025-07-04 21:50:38 -04:00
61 lines
1.9 KiB
C++
61 lines
1.9 KiB
C++
// WStringMemory.h: interface for the WStringMemory class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_WSTRINGMEMORY_H__79693029_4788_4099_9A97_92AF310A7AD5__INCLUDED_)
|
|
#define AFX_WSTRINGMEMORY_H__79693029_4788_4099_9A97_92AF310A7AD5__INCLUDED_
|
|
|
|
#include <WCHAR.H>
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
class WStringProxy;
|
|
|
|
class WStringMemory
|
|
{
|
|
public:
|
|
|
|
static WStringProxy * AllocString(const wchar_t *text, size_t size);
|
|
static WStringProxy * AllocProxy(const WStringProxy &templateProxy);
|
|
static void FreeProxy(WStringProxy *proxy);
|
|
static void LockProxy(WStringProxy *proxy);
|
|
static void UnlockProxy(WStringProxy *proxy);
|
|
|
|
//Releases extra memory leaved for future fast allocations
|
|
static void FreeExtra();
|
|
|
|
//Support addref for proxy - Single- or Multi- thread support
|
|
static void AddRefProxy(WStringProxy *proxy);
|
|
|
|
//Support addref for proxy - Single- or Multi- thread support
|
|
//returns true, when counter reached zero
|
|
static bool ReleaseRefProxy(WStringProxy *proxy);
|
|
|
|
///Gets statistics about memory manager
|
|
/**
|
|
@param details optional pointer to 32 size_t items. Array will be filled
|
|
with sizes of each string fastalloc group.
|
|
@return function returns total bytes allocated for string fast allocation.
|
|
(This number should be below 256KB)
|
|
*/
|
|
static size_t GetStatistics(size_t *details=NULL);
|
|
|
|
///Function allows sharing the strings
|
|
/** This function is called by WString::Share function
|
|
Function mark proxy shared. If string is same as shared,
|
|
it returns pointer to proxy with proxy of string that contains
|
|
the same text.
|
|
Read description of WString::Share for more informations
|
|
*/
|
|
static WStringProxy *ShareString(WStringProxy *proxy);
|
|
|
|
///Function disables sharing of the string
|
|
static void UnshareString(WStringProxy *proxy);
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // !defined(AFX_WSTRINGMEMORY_H__79693029_4788_4099_9A97_92AF310A7AD5__INCLUDED_)
|