42 #ifndef _FX_EXCEPTION_H_ 130 if (m_AllocSize <= m_DataSize)
135 m_pBuffer[m_DataSize++] = byte;
189 void Delete(
int start_index,
int count);
471 void GetWideStringL(CFX_WideStringL& wideText)
const;
778 virtual void Clear();
842 virtual FX_BOOL DoWork(
const void* pBuf,
size_t size) = 0;
879 virtual void Clear();
925 virtual FX_BOOL DoWork(
const void* pBuf,
size_t size);
1050 void GetResult(CFX_WideStringL &result)
const {m_Buffer.GetWideStringL(result);}
1204 FX_BOOL SetSize(
int nNewSize,
int nGrowBy);
1232 FX_LPBYTE InsertSpaceAt(
int nIndex,
int nCount);
1242 FX_BOOL RemoveAt(
int nIndex,
int nCount);
1261 const void* GetDataPtr(
int index)
const;
1277 template<
class TYPE>
1324 const char *errorMsg[] = {
1325 "Invalid array size",
1326 "Memory allocation error",
1330 fprintf(stderr,
"%s\n", errorMsg[error]);
1332 fprintf(stderr,
"%i\n", badIndex);
1360 return CFX_BasicArray::SetSize(nNewSize, nGrowBy);
1378 if (nIndex < 0 || nIndex >= m_nSize)
1382 return ((
const TYPE*)m_pData)[nIndex];
1394 if (nIndex < 0 || nIndex >= m_nSize)
return false;
1395 ((TYPE*)m_pData)[nIndex] = newElement;
1408 if (nIndex < 0 || nIndex >= m_nSize)
1412 return ((TYPE*)m_pData)[nIndex];
1420 const TYPE*
GetData()
const {
return (
const TYPE*)m_pData; }
1439 if (nIndex < 0)
return false;
1440 if (nIndex >= m_nSize)
1441 if (!
SetSize(nIndex+1, -1))
return false;
1442 ((TYPE*)m_pData)[nIndex] = newElement;
1455 if (m_nSize < m_nMaxSize)
1458 if (!
SetSize(m_nSize+1, -1))
return false;
1459 ((TYPE*)m_pData)[m_nSize-1] = newElement;
1488 TYPE*
GetDataPtr(
int index) {
return (TYPE*)CFX_BasicArray::GetDataPtr(index); }
1495 TYPE*
AddSpace() {
return (TYPE*)CFX_BasicArray::InsertSpaceAt(m_nSize, 1); }
1505 TYPE*
InsertSpaceAt(
int nIndex,
int nCount) {
return (TYPE*)CFX_BasicArray::InsertSpaceAt(nIndex, nCount); }
1525 if (nIndex < 0 || nIndex >= m_nSize)
1527 *(
volatile char*)0 =
'\0';
1528 return ((
const TYPE*)m_pData)[nIndex];
1540 if (nIndex < 0 || nIndex >= m_nSize)
1542 *(
volatile char*)0 =
'\0';
1543 return ((TYPE*)m_pData)[nIndex];
1559 ((TYPE*)m_pData)[nIndex++] = newElement;
1571 FX_BOOL RemoveAt(
int nIndex,
int nCount = 1) {
return CFX_BasicArray::RemoveAt(nIndex, nCount); }
1590 int Find(
const TYPE& data,
int iStart = 0)
const 1592 if (iStart < 0)
return -1;
1593 for (; iStart < (int)m_nSize; iStart ++)
1594 if (((TYPE*)m_pData)[iStart] == data)
return iStart;
1624 template <
class ObjectClass>
1674 void Add(
const ObjectClass& data)
1676 #ifndef _FX_NOPLACEMENTNEW_ 1677 new ((
void*)InsertSpaceAt(m_nSize, 1)) ObjectClass(data);
1679 ::new ((
void*)InsertSpaceAt(m_nSize, 1)) ObjectClass(data);
1693 #ifndef _FX_NOPLACEMENTNEW_ 1694 return *(ObjectClass*)
new ((
void*)InsertSpaceAt(m_nSize, 1)) ObjectClass();
1696 return *(ObjectClass*) ::
new ((
void*)InsertSpaceAt(m_nSize, 1)) ObjectClass();
1709 return InsertSpaceAt(m_nSize, 1);
1724 if (nCount == 0)
return 0;
1726 if (!nSize)
return 0;
1728 if (nCount < 0) nCount = nSize;
1729 if (nStart + nCount > nSize) nCount = nSize - nStart;
1730 if (nCount < 1)
return 0;
1732 InsertSpaceAt(m_nSize, nCount);
1733 ObjectClass* pStartObj = (ObjectClass*)
GetDataPtr(nSize);
1734 nSize = nStart + nCount;
1735 for (
FX_INT32 i = nStart; i < nSize; i ++, pStartObj++)
1737 #ifndef _FX_NOPLACEMENTNEW_ 1738 new ((
void*)pStartObj) ObjectClass(src[i]);
1740 ::new ((
void*)pStartObj) ObjectClass(src[i]);
1759 if (
this == &src)
return 0;
1761 if (nCount == 0)
return 0;
1763 if (!nSize)
return 0;
1765 if (nCount < 0) nCount = nSize;
1766 if (nStart + nCount > nSize) nCount = nSize - nStart;
1767 if (nCount < 1)
return 0;
1768 nSize = nStart + nCount;
1769 SetSize(nCount, -1);
1770 ObjectClass* pStartObj = (ObjectClass*)m_pData;
1771 for (
FX_INT32 i = nStart; i < nSize; i ++, pStartObj++)
1773 #ifndef _FX_NOPLACEMENTNEW_ 1774 new ((
void*)pStartObj) ObjectClass(src[i]);
1776 ::new ((
void*)pStartObj) ObjectClass(src[i]);
1800 return *(ObjectClass*)CFX_BasicArray::GetDataPtr(index);
1810 ObjectClass*
GetDataPtr(
int index)
const {
return (ObjectClass*)CFX_BasicArray::GetDataPtr(index);}
1822 ((ObjectClass*)
GetDataPtr(index))->~ObjectClass();
1823 CFX_BasicArray::RemoveAt(index, 1);
1833 for (
int i = 0; i < m_nSize; i ++)
1834 ((ObjectClass*)
GetDataPtr(i))->~ObjectClass();
1835 CFX_BasicArray::SetSize(0, -1);
1847 template <
class TYPE>
1861 return m_Container.GetSize() == 0;
1871 return m_Container.GetSize();
1881 return m_Container[
Size() - 1];
1891 m_Container.RemoveAt(
Size() - 1);
1903 m_Container.Add(val);
1913 m_Container.RemoveAll();
1922 template <
class TYPE>
1936 return m_Container.
GetSize() == 0;
1956 return m_Container[
Size() - 1];
1978 m_Container.
Add(val);
2002 return m_Container.GetSize() == 0;
2012 return m_Container.GetSize();
2022 return m_Container[
Size() - 1];
2032 m_Container.RemoveAt(
Size() - 1);
2044 m_Container.Add(val);
2081 void SetUnitSize(
int unit_size,
int segment_units,
int index_size = 8);
2097 void*
GetAt(
int index)
const;
2114 void Delete(
int index,
int count = 1);
2145 void*
Iterate(
FX_BOOL (*callback)(
void* param,
void* pData),
void* param)
const;
2153 short m_SegmentSize;
2163 void** GetIndex(
int seg_index)
const;
2164 void* IterateIndex(
int level,
int& start,
void** pIndex,
FX_BOOL (*callback)(
void* param,
void* pData),
void* param)
const;
2165 void* IterateSegment(
FX_LPCBYTE pSegment,
int count,
FX_BOOL (*callback)(
void* param,
void* pData),
void* param)
const;
2171 template <
class ElementType>
2215 template <
class DataType,
int FixedSize>
2226 : m_pAllocator(pAllocator)
2240 : m_pAllocator(pAllocator)
2243 if (data_size > FixedSize)
2261 if (data_size > FixedSize)
2273 operator DataType*() {
return m_pData ? m_pData : m_Data; }
2278 DataType m_Data[FixedSize];
2285 template <
class DataType>
2310 DataType& operator[](
int i) {
FXSYS_assert(m_pData !=
NULL);
return m_pData[i]; }
2311 operator DataType*()
const {
return m_pData; }
2408 void SetAt(
void* key,
void* newValue) { (*this)[key] = newValue; }
2470 CAssoc** m_pHashTable;
2476 CAssoc* m_pFreeList;
2478 struct CFX_Plex* m_pBlocks;
2503 void FreeAssoc(CAssoc* pAssoc);
2512 CAssoc* GetAssocAt(
void* key,
FX_DWORD& hash)
const;
2520 CAssoc* GetCurrentAssoc(
FX_POSITION& rNextPosition)
const;
2537 template <
class KeyType,
class ValueType>
2604 void* pKey =
NULL;
void* pValue =
NULL;
2840 CAssoc** m_pHashTable;
2846 CAssoc* m_pFreeList;
2848 struct CFX_Plex* m_pBlocks;
2865 void FreeAssoc(CAssoc* pAssoc);
2882 CAssoc* GetCurrentAssoc(
FX_POSITION& rNextPosition)
const;
3200 struct CFX_Plex* m_pBlocks;
3212 CNode* NewNode(CNode* pPrev, CNode* pNext);
3218 void FreeNode(CNode* pNode);
3339 if (!module_id)
return false;
3341 for (
FX_DWORD n = 0; n < nCount; n++) {
3342 if (m_DataList[n].m_pModuleId == module_id) {
3343 pData = m_DataList[n].m_pData;
3533 m_pObject = ref.m_pObject;
3542 if (!m_pObject)
return;
3565 if (!m_pObject)
return NULL;
3586 m_pObject = ref.m_pObject;
3599 if (m_pObject ==
NULL)
return;
3620 operator const ObjClass*()
const 3632 return m_pObject ==
NULL;
3641 return m_pObject !=
NULL;
3654 if (m_pObject ==
NULL) {
3676 if (m_pObject ==
NULL)
return;
3692 return m_pObject == ref.m_pObject;
3702 return m_pObject ? m_pObject->
m_RefCount : 0;
3712 if (m_pObject ==
NULL)
return;
3723 if (m_pObject ==
NULL)
return;
3733 CountedObj* m_pObject;
3845 virtual void v_ResetStatistics() {};
3865 template<
typename T>
3874 m_Location = location;
3875 m_OldValue = *location;
3925 #define FX_DATALIST_LENGTH 1024 3928 template<
size_t unit>
3969 for (
FX_INT32 i = m_DataLists.GetUpperBound(); i >= 0; i--){
3970 DataList list = m_DataLists.ElementAt(i);
3973 m_DataLists.RemoveAll();
3987 if (nStart < 0)
return;
3996 if (!list.data)
break;
3998 list.
start = nStart;
3999 list.
count = temp_count;
4004 nCount -= temp_count;
4005 nStart += temp_count;
4024 if (nIndex < 0)
return NULL;
4025 if (m_CurList < 0 || m_CurList >= m_DataLists.GetSize())
return NULL;
4026 DataList *pCurList = m_DataLists.GetDataPtr(m_CurList);
4027 if (!pCurList || nIndex < pCurList->start || nIndex >= pCurList->
start + pCurList->
count){
4030 FX_INT32 iEnd = m_DataLists.GetUpperBound();
4031 while (iStart <= iEnd){
4032 FX_INT32 iMid = (iStart + iEnd) / 2;
4033 DataList* list = m_DataLists.GetDataPtr(iMid);
4034 if (nIndex < list->start)
4036 else if (nIndex >= list->
start + list->
count)
4045 return pCurList ? pCurList->data + (nIndex - pCurList->
start) * unit :
NULL;
4052 FX_INT32 iEnd = m_DataLists.GetUpperBound();
4054 while (iStart <= iEnd) {
4055 FX_INT32 iMid = (iStart + iEnd) / 2;
4056 DataList* cur_list = m_DataLists.GetDataPtr(iMid);
4057 if (list.start == cur_list->start){
4059 }
else if (list.start < cur_list->start + cur_list->count)
4066 DataList* next_list = m_DataLists.GetDataPtr(iMid + 1);
4067 if (list.start == next_list->start){
4069 }
else if (list.start < next_list->start){
4077 m_DataLists.InsertAt(iFind, list);
4086 template<
typename T1,
typename T2>
4110 m_Data.Append(nStart, nCount);
4125 return (T2&)(*(
volatile T2*)data);
4137 return (T2*)m_Data.GetAt(nIndex);
4168 #define ProgressiveStatus FX_ProgressiveStatus 4170 #ifdef _FX_NO_NAMESPACE_ 4172 #define FX_NAMESPACE_DECLARE(namespace, type) type 4176 #define FX_NAMESPACE_DECLARE(namespace, type) namespace::type 4203 #define FX_IsOdd(a) ((a) & 1) 4208 #endif // _FX_BASIC_H_ Definition: fx_basic.h:3752
void GetNextAssoc(FX_POSITION &rNextPosition, CFX_ByteString &rKey, void *&rValue) const
获取当前关联并将位置设置为下一个关联。
void SetAt(FX_BSTR key, void *newValue)
添加新的(键, 值)对。如果不存在则添加,否则修改。
Definition: fx_basic.h:2761
FX_POSITION GetStartPosition() const
获取第一个键值对位置。用于遍历所有(键, 值)对。
Definition: fx_basic.h:3265
CFX_WideTextBuf & operator<<(int i)
左移(<<)运算符重载。将整数输出到宽字符文本缓冲区。
CNode * pNext
指向下一个节点的指针。
Definition: fx_basic.h:3019
CFX_WideStringC GetResult() const
获取结果。
Definition: fx_basic.h:1041
void * FX_LPVOID
指向任意类型的指针。
Definition: fx_system.h:654
void RemoveAll()
移除映射中的所有(键, 值)对。
为更高效追加而设计的动态二进制缓冲区。
Definition: fx_basic.h:52
Definition: fx_basic.h:2054
Definition: fx_basic.h:4181
就绪。
Definition: fx_basic.h:4155
~CFX_MapByteStringToPtr()
析构函数。
T2 & operator [](FX_INT32 nIndex)
下标([])运算符重载。
Definition: fx_basic.h:4120
void Add(const ObjectClass &data)
向数组添加现有对象的副本。
Definition: fx_basic.h:1674
wchar_t FX_WCHAR
编译器相关的Unicode字符(Microsoft编译器为16位,gcc为32位)。
Definition: fx_system.h:732
CFX_PtrList中的双向节点。
Definition: fx_basic.h:3016
FX_LPVOID m_pModuleId
模块ID
Definition: fx_basic.h:3247
CFX_ByteStringC GetResult() const
获取结果。
Definition: fx_basic.h:1097
TYPE & operator[](int nIndex)
下标([])运算符重载。此函数返回由nIndex中的基于零的索引指定的指定元素的引用。
Definition: fx_basic.h:1538
unsigned long FX_DWORD
32位无符号整数。
Definition: fx_system.h:726
Definition: fx_basic.h:1064
FX_BOOL RemovePrivateData(FX_LPVOID module_id)
移除之前存储的私有数据。FPDFAPI假定模块已释放数据, 因此不会调用释放数据回调。
FX_BOOL AppendChar(FX_WCHAR wch)
追加单个宽字符。
int Size() const
获取容器的大小。
Definition: fx_basic.h:2010
FX_BOOL IsEmpty() const
验证映射是否为空。
Definition: fx_basic.h:2370
FX_POSITION InsertAfter(FX_POSITION pos, void *newElement)
在指定位置后插入一个值。
常量宽字符串类
Definition: fx_string.h:1210
未找到。
Definition: fx_basic.h:4161
CFX_MapByteStringToPtr中的关联。
Definition: fx_basic.h:2697
IFX_Allocator * m_pAllocator
特殊分配器指针。NULL表示使用默认分配器。
Definition: fx_basic.h:1161
void Incref()
增加引用计数。
Definition: fx_basic.h:3710
void Delete(int index, int count=1)
删除一定数量的元素。
Definition: fx_basic.h:1848
~CFX_ObjectArray()
析构函数。
Definition: fx_basic.h:1638
void GetNextAssoc(FX_POSITION &rNextPosition, void *&rKey, void *&rValue) const
获取当前关联并将位置设置为下一个关联。
#define FX_Allocator_Alloc(fxAllocator, type, size)
在分配器上进行发布模式分配。
Definition: fx_memory.h:1084
FX_STRSIZE GetLength() const
获取字节字符串的长度。
Definition: fx_string.h:227
CFX_ArrayTemplate< FX_DWORD > CFX_DWordArray
双字数组类型的类型定义。
Definition: fx_basic.h:1604
TYPE & ElementAt(int nIndex)
此方法检索由索引号指定的元素的引用。
Definition: fx_basic.h:1406
CFX_ObjectArray(const CFX_ObjectArray &other, IFX_Allocator *pAllocator=0)
拷贝构造函数。
Definition: fx_basic.h:1646
void AddValue(FX_BSTR key, void *pValue)
向字典添加键值对,假定不存在重复键。
T2 * GetPtrAt(FX_INT32 nIndex)
获取数据的指针。
Definition: fx_basic.h:4135
void Push(const CFX_ByteString &val)
将字节字符串压入栈中。
Definition: fx_basic.h:2042
CFX_ArrayTemplate< FX_WORD > CFX_WordArray
字数组类型的类型定义。
Definition: fx_basic.h:1602
void RemoveAll()
移除列表中的所有节点。
int GetCount() const
获取键值对的数量。
CFX_ByteTextBuf & operator<<(int i)
左移(<<)运算符重载。将整数输出到字节文本缓冲区。
FX_BOOL IsNull() const
检查对象指针是否为NULL。
Definition: fx_basic.h:3630
ElementType & operator [](int index)
下标([])运算符重载。此函数返回由从零开始的索引指定的元素的引用。
Definition: fx_basic.h:2206
CFX_FixedBufGrow(IFX_Allocator *pAllocator=0)
使用分配器进行构造。
Definition: fx_basic.h:2225
void * data
节点数据。
Definition: fx_basic.h:3023
void SetAt(FX_DWORD key, FX_DWORD value)
添加新的(键, 值)对。如果不存在则添加,否则修改。
static CFX_CharMap * GetDefaultMapper(FX_INT32 codepage=0)
根据Windows代码页或其他编码系统获取字符映射器。 这些字符映射由FXAPI管理,请勿销毁它们。
FX_BOOL Empty() const
清空容器。
Definition: fx_basic.h:1934
void Init(FX_LPCBYTE pData, FX_DWORD dwSize)
使用内存块初始化位流。必须先调用Init()。
CFX_ByteString key
键数据。
Definition: fx_basic.h:2705
void SetAt(KeyType key, ValueType newValue)
添加新的(键, 值)对。如果不存在则添加,否则修改。
Definition: fx_basic.h:2582
FX_POSITION GetStartPosition() const
获取第一个键值对位置。用于遍历所有(键, 值)对。
Definition: fx_basic.h:2784
FX_INT32(* m_GetCodePage)()
GetCodePage函数的指针类型。该函数返回平台的代码页。
Definition: fx_basic.h:983
void GetByteStringL(CFX_ByteStringL &str) const
从当前缓冲区对象获取字节字符串。
CFX_BinaryBuf(IFX_Allocator *pAllocator=0)
创建空缓冲区的默认构造函数。
void SetAt(void *key, void *newValue)
添加新的(键, 值)对。如果不存在则添加,否则修改。
Definition: fx_basic.h:2408
void(* PD_CALLBACK_FREEDATA)(FX_LPVOID pData)
Definition: fx_basic.h:3232
wchar_t const * FX_LPCWSTR
指向常量Unicode字符的指针。
Definition: fx_system.h:736
CFX_ObjectArray & operator=(const CFX_ObjectArray &other)
赋值运算符。
Definition: fx_basic.h:1659
FX_BOOL m_bSelfDestruct
决定是否对私有数据使用自销毁的布尔值。 如果为true,m_pData实际上必须指向CFX_DestructObject派生对象。
Definition: fx_basic.h:3259
FX_LPVOID m_pData
私有数据。
Definition: fx_basic.h:3250
CFX_WideTextBuf(IFX_Allocator *pAllocator=0)
使用分配器构造。
Definition: fx_basic.h:354
FX_BOOL Flush()
刷新文件的内部缓冲区。
void FilterFinish(CFX_BinaryBuf &dest_buf)
指示输入已完成。 对于某些过滤器,可能会生成一些最后的输出。
FX_INT32 start
起始索引。
Definition: fx_basic.h:3935
CFX_Stack()
构造。
Definition: fx_basic.h:1993
~CFX_CountRef()
析构引用并释放它引用的对象。
Definition: fx_basic.h:3540
void RemoveAt(int index)
移除指定位置的对象。
Definition: fx_basic.h:1819
int GetSize() const
获取数组中元素的数量。
Definition: fx_basic.h:2121
int GetCurBytePos()
获取当前字节位置。
Definition: fx_basic.h:3477
CFX_PtrList(int nBlockSize=10, IFX_Allocator *pAllocator=0)
使用块大小和分配器进行构造。
void Clear()
清除解码状态并将输出宽字符文本缓冲区设为空。
virtual ~CFX_DataFilter()
析构函数。销毁此过滤器及其所有链。
void ByteAlign()
对齐到字节边界。如果当前位位置不是8的倍数,当前字节的剩余部分将被跳过。
void SetUnitSize(int unit_size, int segment_units, int index_size=8)
更改单元大小和段单元数。只能在数组为空时调用。
void FilterIn(FX_LPCBYTE src_buf, size_t src_size, CFX_BinaryBuf &dest_buf)
向过滤器(及其过滤器链)输入数据块,并接收最终输出。
int GetSize() const
获取数组中元素的数量。
Definition: fx_basic.h:1341
FX_BOOL EstimateSize(FX_STRSIZE size, FX_STRSIZE alloc_step=0)
更改已分配的缓冲区大小,如果alloc_step非零则设置分配步长。
FX_POSITION GetNextPosition(FX_POSITION pos) const
获取下一个位置。
Definition: fx_basic.h:3081
T & operator *(void)
获取对象引用运算符。
Definition: fx_basic.h:3912
Definition: fx_basic.h:755
FX_LPVOID GetPrivateData(FX_LPVOID module_id)
获取之前存储的私有数据。未存储则返回NULL。
FX_INT32 Copy(const CFX_ObjectArray &src, FX_INT32 nStart=0, FX_INT32 nCount=-1)
从数组复制。
Definition: fx_basic.h:1757
Definition: fx_basic.h:2172
CFX_UTF8Encoder(IFX_Allocator *pAllocator=0)
构造函数。将编码器设置为初始状态。
Definition: fx_basic.h:1072
void SetStream(IFX_FileStream *pStream)
设置附加的流。
Definition: fx_basic.h:629
void operator=(FX_LPCWSTR lpsz)
赋值(=)运算符重载。从以零结尾的宽字符字符串。
CFX_TempBuf(int size, IFX_Allocator *pAllocator=0)
使用分配器进行构造。
Definition: fx_basic.h:2296
#define FX_MIN(a, b)
返回a和b中最小值的宏。
Definition: fx_system.h:826
FX_BOOL Abort() const
指示是否中止过滤器处理。
Definition: fx_basic.h:3823
FX_BOOL AttachFile(IFX_StreamWrite *pFile, FX_BOOL bTakeover=false)
附加文件
void GetResult(CFX_ByteStringL &result) const
获取结果。
Definition: fx_basic.h:1106
CFX_CMapDWordToDWord(IFX_Allocator *pAllocator=0)
使用分配器的构造函数。
Definition: fx_basic.h:2625
int GetUnitSize() const
获取每个元素的字节数。
Definition: fx_basic.h:2135
Definition: fx_basic.h:1923
宽字符串类
Definition: fx_string.h:1457
FX_BOOL AppendFill(FX_BYTE byte, FX_STRSIZE count)
将指定字节追加指定次数。内部不是逐字节处理,而是字节填充处理。
CFX_UTF8Decoder(IFX_Allocator *pAllocator=0)
构造函数。将解码器设置为初始状态。
Definition: fx_basic.h:1002
CFX_CountRef< ObjClass > Ref
类型定义:CFX_CountRef<ObjClass>的缩写。
Definition: fx_basic.h:3496
CFX_ObjectArray(IFX_Allocator *pAllocator=0)
构造函数。
Definition: fx_basic.h:1633
流写入接口。
Definition: fx_stream.h:441
CFX_Stack()
构造。
Definition: fx_basic.h:1852
virtual FX_DWORD AddRef()=0
增加引用计数。
CFX_MapByteStringToPtr(int nBlockSize=10, IFX_Allocator *pAllocator=0)
使用指定的块大小进行构造。
void * FX_POSITION
用于表示集合中元素位置的值。
Definition: fx_system.h:658
CFX_PrivateData(IFX_Allocator *pAllocator=0)
使用分配器进行构造。
Definition: fx_basic.h:3273
virtual FX_DWORD Release()=0
减少引用计数并释放当前对象。
int GetSegmentSize() const
获取每段中元素的数量。
Definition: fx_basic.h:2128
void Input(FX_WCHAR unicode)
输入Unicode字符。
FX_INTPTR GetLength() const
获取已保存数据的长度。
Definition: fx_basic.h:613
内存分配错误。
Definition: fx_basic.h:1291
FX_LPCBYTE GetBuffer() const
获取指向已保存数据的常量字节指针。
Definition: fx_basic.h:620
FX_BOOL Read(void *pBuf, FX_DWORD dwSize)
反序列化内存块。
virtual FX_BOOL NeedToPauseNow()=0
检查调用者是否需要立即暂停。
void InitHashTable(FX_DWORD hashSize, FX_BOOL bAllocNow=true)
初始化哈希表。
ObjectClass & operator[](int index) const
下标([])运算符重载。此函数返回由nIndex中的基于零的索引指定的指定对象的引用。
Definition: fx_basic.h:1797
FX_BOOL Copy(const CFX_ArrayTemplate &src)
从数组复制。
Definition: fx_basic.h:1479
FX_BOOL SetSize(int nNewSize, int nGrowBy=-1)
更改分配的大小和增长量。
Definition: fx_basic.h:1358
FX_LPCBYTE GetPtr() const
获取指向字节字符串的常量字节字符串指针。
Definition: fx_string.h:215
void SetPrivateObj(FX_LPVOID module_id, CFX_DestructObject *pObj)
设置私有对象。
Definition: fx_basic.h:345
void Clear()
从栈中移除所有剩余数据。
Definition: fx_basic.h:1911
FX_DWORD HashKey(FX_BSTR key) const
用于用户提供的哈希键的例程。
IFX_Allocator * m_pAllocator
特殊分配器指针。NULL 表示使用默认分配器。
Definition: fx_basic.h:229
int m_RefCount
引用计数。
Definition: fx_basic.h:3515
Definition: fx_basic.h:3887
CFX_FileBufferArchive(FX_STRSIZE size=32768, IFX_Allocator *pAllocator=0)
使用大小和分配器的构造函数。
字符串的头文件,可变长度字符序列。 这里有两种字符串,字节字符串和宽字符串
void * value
值数据。
Definition: fx_basic.h:2339
CFX_MapPtrToPtr(int nBlockSize=10, IFX_Allocator *pAllocator=0)
使用指定的块大小进行构造。
FX_INT64 GetSrcPos() const
获取源流中的当前位置(从所有输入数据开始的字节偏移量)。
Definition: fx_basic.h:3781
FX_BOOL Append(const CFX_ArrayTemplate &src)
追加数组。
Definition: fx_basic.h:1470
FX_BOOL RemoveKey(KeyType key)
移除现有的(键, 值)对。
Definition: fx_basic.h:2591
T * operator ->(void)
获取对象指针运算符。
Definition: fx_basic.h:3919
int FX_INT32
32位有符号整数。
Definition: fx_system.h:683
FX_BOOL Lookup(KeyType key, ValueType &rValue) const
通过键查找。
Definition: fx_basic.h:2556
void * FXSYS_memset32(void *dst, FX_INT32 v, size_t size)
将缓冲区数据设置为指定值。
CFX_CountRef()
构造空引用。
Definition: fx_basic.h:3521
int FX_STRSIZE
字符串大小限制为 2^31-1。
Definition: fx_string.h:35
void RemoveAll()
清理数组。
Definition: fx_basic.h:1368
FX_POSITION GetHeadPosition() const
获取头部位置。
Definition: fx_basic.h:3041
FX_POSITION GetStartPosition() const
获取第一个键值对位置。用于遍历所有(键, 值)对。
FX_BOOL Add(TYPE newElement)
在尾部添加元素。可能会增长数组。
Definition: fx_basic.h:1453
CFX_ArrayTemplate< FX_INT32 > CFX_Int32Array
INT32数组的类型定义。
Definition: fx_basic.h:1612
Definition: fx_basic.h:2905
Definition: fx_basic.h:251
FX_BOOL IsEOF()
检查反序列化是否到达加载缓冲区的末尾。
CFX_ByteTextBuf(IFX_Allocator *pAllocator=0)
使用分配器构造。
Definition: fx_basic.h:260
CFX_MapPtrToPtr中的关联。
Definition: fx_basic.h:2332
int GetCount() const
获取元素的数量。
Definition: fx_basic.h:2725
void * Iterate(FX_BOOL(*callback)(void *param, void *pData), void *param) const
遍历所有单元,对每个单元执行回调函数。
int FX_BOOL
布尔变量(应为TRUE或FALSE)。
Definition: fx_system.h:691
ErrorType
错误类型的枚举。
Definition: fx_basic.h:1286
void RemoveAll()
移除所有(键, 值)对。
Definition: fx_basic.h:2680
virtual void Clear()
清除文本缓冲区。
~CFX_TempBuf()
析构函数。
Definition: fx_basic.h:2304
Definition: fx_basic.h:3929
void SetDestFilter(CFX_DataFilter *pFilter)
设置目标过滤器。注意过滤器将被追加到当前过滤器链的末尾。
Definition: fx_basic.h:4087
void ByteAlign()
对齐到字节边界。如果当前位位置不是8的倍数,当前字节的剩余部分将被跳过。
CFX_ArchiveSaver & operator<<(FX_BYTE i)
左移(<<)运算符重载。序列化单个字节。
char const * FX_LPCSTR
指向常量8位Windows (ANSI) 字符的指针。
Definition: fx_system.h:705
void AppendChar(FX_DWORD ch)
将字符追加到宽字符文本缓冲区。
Definition: fx_basic.h:3012
FX_INT32 Append(const CFX_ObjectArray &src, FX_INT32 nStart=0, FX_INT32 nCount=-1)
追加数组。
Definition: fx_basic.h:1722
FX_INT32 count
数据计数。
Definition: fx_basic.h:3937
T * Get(void)
获取对象指针。
Definition: fx_basic.h:3905
CFX_WideString FX_DecodeURI(const CFX_ByteString &bsURI)
简单的URI解码。
CFX_WideString(* m_GetWideString)(CFX_CharMap *pMap, const CFX_ByteString &bstr)
GetWideString函数的指针类型。
Definition: fx_basic.h:963
数据列表。
Definition: fx_basic.h:3933
void GetNextAssoc(FX_POSITION &rNextPosition, KeyType &rKey, ValueType &rValue) const
获取当前关联并将位置设置为下一个关联。
Definition: fx_basic.h:2602
FX_BOOL IsExhaustBuffer() const
指示此过滤器是否耗尽输入缓冲区。
Definition: fx_basic.h:3809
FX_LPBYTE GetAt(FX_INT32 nIndex)
获取数据。
Definition: fx_basic.h:4022
文件流接口,用于读取和写入。
Definition: fx_stream.h:692
FX_BOOL SetAtGrow(int nIndex, TYPE newElement)
在指定位置设置元素值。可能会增长数组。
Definition: fx_basic.h:1437
已找到。
Definition: fx_basic.h:4159
void AppendStr(FX_BSTR str)
追加非缓冲字节字符串。
Definition: fx_basic.h:1090
CFX_ObjectStack()
构造。
Definition: fx_basic.h:1927
FX_INT32 AppendBlock(const void *pBuf, size_t size)
追加二进制缓冲区块。
void GetResult(CFX_WideStringL &result) const
获取结果。
Definition: fx_basic.h:1050
CFX_ArrayTemplate< FX_INT64 > CFX_FileSizeArray
文件大小数组类型的类型定义。
Definition: fx_basic.h:1608
UINT_PTR FX_UINTPTR
指针精度的无符号整型。
Definition: fx_system.h:752
TYPE * InsertSpaceAt(int nIndex, int nCount)
插入若干元素。
Definition: fx_basic.h:1505
void RemoveAt(FX_POSITION pos)
移除指定位置的节点。
FX_BOOL RemoveKey(FX_BSTR key)
移除现有键。
int RefCount() const
获取引用计数。
Definition: fx_basic.h:3700
FX_BOOL RemoveAt(int nIndex, int nCount=1)
在指定位置移除若干元素。
Definition: fx_basic.h:1571
Definition: fx_basic.h:3737
void Rewind()
倒带位流。简单地将当前位位置设置为零。
Definition: fx_basic.h:3431
FX_DWORD GetHashTableSize() const
获取内部哈希表大小。派生类的高级功能。
Definition: fx_basic.h:2811
CFX_ObjectArray< CFX_WideString > CFX_WideStringArray
CFX_WideString数组类型的类型定义。
Definition: fx_basic.h:1842
void *& operator[](void *key)
下标([])运算符重载。查找,如果不存在则添加。
void AttachData(void *pBuf, FX_STRSIZE size)
附加到缓冲区(此缓冲区将属于此对象)。缓冲区必须由FX_Alloc分配。
void operator=(const Ref &ref)
赋值(=)运算符重载。从另一个引用赋值。
Definition: fx_basic.h:3577
void * GetNext(FX_POSITION &rPosition) const
获取当前值并将位置设置为下一个节点。
Definition: fx_basic.h:3057
FX_DWORD nHashValue
缓存的哈希值,高效迭代所需。
Definition: fx_basic.h:2703
void DetachBuffer()
分离缓冲区。仅将缓冲区指针设置为 NULL,并将二进制缓冲区大小设置为零。
void * GetPrev(FX_POSITION &rPosition) const
获取当前值并将位置设置为前一个节点。
Definition: fx_basic.h:3069
CFX_ArrayTemplate(const CFX_ArrayTemplate &other, IFX_Allocator *pAllocator=0)
拷贝构造函数。
Definition: fx_basic.h:1311
void * AddSpace()
向数组添加空空间。
Definition: fx_basic.h:1707
TYPE & Top()
获取栈顶的类型对象。
Definition: fx_basic.h:1954
FX_POSITION AddTail(void *newElement)
向尾部添加一个值。
void Write(const void *pData, FX_STRSIZE dwSize)
序列化内存块。
CFX_SmartPointer(T *pObj)
构造函数。
Definition: fx_basic.h:3895
Definition: fx_basic.h:3492
void ResetStatistics()
重置统计信息。
Definition: fx_basic.h:1278
const TYPE GetAt(int nIndex) const
此方法检索由索引号指定的元素。
Definition: fx_basic.h:1377
ObjectClass & Add()
向数组添加空对象。
Definition: fx_basic.h:1691
CFX_ArrayTemplate(IFX_Allocator *pAllocator=0)
构造函数,从分配器。
Definition: fx_basic.h:1302
unsigned char * FX_LPBYTE
指向FX_BYTE的指针。
Definition: fx_system.h:667
FX_BOOL AppendByte(FX_BYTE byte)
追加单个字节。
Definition: fx_basic.h:128
FX_POSITION Find(void *searchValue, FX_POSITION startAfter=0) const
从指定位置后开始查找值。
CFX_ByteString FX_EncodeURI(const CFX_WideString &wsURI)
简单的URI编码。
void Append(FX_INT32 nStart, FX_INT32 nCount)
追加列表数据。
Definition: fx_basic.h:3985
void EstimateSize(FX_DWORD size, FX_DWORD grow_by)
更改内部分配大小和增长量。
CountedObj(const CountedObj &src)
拷贝构造函数。
Definition: fx_basic.h:3512
FX_BOOL Lookup(FX_DWORD key, FX_DWORD &value) const
通过键查找。
FX_BOOL AppendBlock(const void *pBuf, FX_STRSIZE size)
追加一个二进制缓冲区块。
const TYPE * GetData() const
直接访问元素数据(可能返回NULL)。
Definition: fx_basic.h:1420
CFX_ArrayTemplate & operator=(const CFX_ArrayTemplate &src)
赋值运算符重载。
Definition: fx_basic.h:1514
void FreeData()
释放m_pData指向的私有数据。
const TYPE operator[](int nIndex) const
下标([])运算符重载。它检索由nIndex中的基于零的索引指定的元素。
Definition: fx_basic.h:1523
CFX_ArrayTemplate< FX_BYTE > CFX_ByteArray
字节数组类型的类型定义
Definition: fx_basic.h:1600
Foxit分配器接口。
Definition: fx_memory.h:994
void AppendChar(int ch)
追加单个字符或字节。
Definition: fx_basic.h:278
void SkipBits(FX_DWORD nBits)
跳过一定数量的位。
Definition: fx_basic.h:3424
CFX_SegmentedArray(int segment_units, int index_size=8, IFX_Allocator *pAllocator=0)
使用指定的段单元数进行构造。
Definition: fx_basic.h:2182
CNode * pPrev
指向前一个节点的指针。
Definition: fx_basic.h:3021
void Pop()
从栈中弹出字节字符串。
Definition: fx_basic.h:2030
Definition: fx_basic.h:937
void RemoveAll()
移除映射中的所有键值对。
无效的数组大小。
Definition: fx_basic.h:1288
FX_STRSIZE GetLength() const
获取宽字符文本缓冲区的长度。
Definition: fx_basic.h:442
void Add(ElementType data)
添加一个元素。
Definition: fx_basic.h:2194
float FX_FLOAT
32位浮点数。
Definition: fx_system.h:685
FX_BOOL IsEmpty() const
验证映射是否为空。
Definition: fx_basic.h:2732
FX_POSITION FindIndex(int index) const
通过索引号查找值。
CFX_CountRef(const Ref &ref)
从另一个引用的拷贝构造函数。
Definition: fx_basic.h:3531
#define FXSYS_assert
断言。
Definition: fx_system.h:804
TYPE * AddSpace()
添加元素的空间。
Definition: fx_basic.h:1495
CAssoc * pNext
指向下一个关联的指针。
Definition: fx_basic.h:2700
TYPE * GetDataPtr(int index)
获取指向数组中指定元素的指针。直接指针访问。
Definition: fx_basic.h:1488
FX_INT32 AppendByte(FX_BYTE byte)
追加单个字节。
int GetCount() const
获取元素的数量。
Definition: fx_basic.h:2363
void SetAt(FX_POSITION pos, void *newElement)
更改指定位置的值。
Definition: fx_basic.h:3137
FX_POSITION AddHead(void *newElement)
向头部添加一个值。
CFX_ArchiveSaver(IFX_Allocator *pAllocator=0)
使用分配器构造。
Definition: fx_basic.h:493
virtual void Clear()
清除缓冲区。
void WriteBits(FX_INT64 value, FX_INT32 nBits)
写入位值。
void Delete(int start_index, int count)
删除宽字符文本缓冲区中由参数 start_index 和 count 定义的区间缓冲区。
Definition: fx_basic.h:459
FX_BOOL SetAt(int nIndex, TYPE newElement)
此方法覆盖由索引号指定的元素。
Definition: fx_basic.h:1393
int GetSize() const
获取数组的大小。
Definition: fx_basic.h:1788
CFX_ByteString & Top()
获取栈顶的字节字符串。
Definition: fx_basic.h:2020
FX_BOOL InsertBlock(FX_STRSIZE pos, const void *pBuf, FX_STRSIZE size)
在指定位置插入二进制缓冲区块。
void * GetAt(FX_POSITION rPosition) const
获取指定位置的值。
Definition: fx_basic.h:3099
FX_POSITION GetTailPosition() const
获取尾部位置。
Definition: fx_basic.h:3048
FX_BOOL Empty() const
清空容器。
Definition: fx_basic.h:1859
~CFX_AutoRestorer()
析构函数。
Definition: fx_basic.h:3879
~CFX_BaseSegmentedArray()
析构函数。
CFX_MapPtrTemplate(IFX_Allocator *pAllocator=0)
默认构造函数。
Definition: fx_basic.h:2546
Definition: fx_basic.h:992
FX_STRSIZE GetLength() const
获取字节文本缓冲区的长度。
Definition: fx_basic.h:339
Definition: fx_basic.h:2538
void AppendString(FX_BSTR str)
追加一个非缓冲字节字符串。
Definition: fx_basic.h:119
FX_BOOL Empty() const
清空容器。
Definition: fx_basic.h:2000
Definition: fx_basic.h:3237
Definition: fx_basic.h:2286
FX_LPVOID GetNextValue(FX_POSITION &rNextPosition) const
获取当前值并将位置设置为下一个关联。
Definition: fx_basic.h:641
void GetNextAssoc(FX_POSITION &rNextPosition, CFX_ByteString &rKey, void *&rValue) const
获取当前关联并将位置设置为下一个关联。
CFX_SortListArray(IFX_Allocator *pAllocator=0)
构造函数。
Definition: fx_basic.h:3952
CFX_BinaryBuf m_Buffer
Definition: fx_basic.h:2684
失败。
Definition: fx_basic.h:4163
void * key
键数据。
Definition: fx_basic.h:2337
FX_LPWSTR GetBuffer() const
获取宽字符指针。
Definition: fx_basic.h:449
~CFX_FixedBufGrow()
析构函数。
Definition: fx_basic.h:2271
完成。
Definition: fx_basic.h:4165
void FX_Error(ErrorType error, FX_INT32 badIndex=0) const
当引发致命错误时调用此函数。打印错误信息并exit(1)。
Definition: fx_basic.h:1322
CFX_FixedBufGrow(int data_size, IFX_Allocator *pAllocator=0)
使用分配器进行构造。
Definition: fx_basic.h:2239
常量字节字符串类
Definition: fx_string.h:51
TYPE * GetData()
直接访问元素数据(可能返回NULL)。
Definition: fx_basic.h:1427
Definition: fx_basic.h:1625
CFX_ObjectArray< CFX_ByteString > CFX_ByteStringArray
CFX_ByteString数组类型的类型定义。
Definition: fx_basic.h:1840
FX_BOOL LookupPrivateData(FX_LPVOID module_id, FX_LPVOID &pData) const
查找私有数据。
Definition: fx_basic.h:3337
~CFX_SmartPointer()
析构函数。
Definition: fx_basic.h:3898
ObjClass * New()
创建新对象并引用它。 返回的对象指针可用于修改对象的内容。
Definition: fx_basic.h:3556
在此定义从用户数据类派生的类,带有附加的引用计数成员。
Definition: fx_basic.h:3501
CFX_ArrayTemplate< FX_FLOAT > CFX_FloatArray
浮点数组的类型定义。
Definition: fx_basic.h:1610
void ClearStatus()
清除解码状态。
Definition: fx_basic.h:1034
~CFX_SortListArray()
析构函数。
Definition: fx_basic.h:3955
IFX_BufferArchive(FX_STRSIZE size, IFX_Allocator *pAllocator=0)
使用缓冲区大小和特殊分配器构造。
FX_DWORD GetHashTableSize() const
获取内部哈希表大小。派生类的高级功能。
Definition: fx_basic.h:2452
void *& operator[](FX_BSTR key)
下标([])运算符重载。查找,如果不存在则添加。
FX_BOOL NotNull() const
检查对象指针是否不为NULL。
Definition: fx_basic.h:3639
const ObjClass * GetObjectF() const
获取常量对象的指针。此指针不能用于更改对象内容。
Definition: fx_basic.h:3611
TYPE & Top()
获取栈顶字节数据。
Definition: fx_basic.h:1879
FX_BOOL RemoveKey(void *key)
移除现有的(键, 值)对。
FX_INT32 AppendDWord(FX_DWORD i)
追加FX_DWORD值。
FX_BOOL Lookup(FX_BSTR key, void *&rValue) const
通过键查找。
void SetAt(FX_BSTR key, void *value)
添加新的(键, 值)对。如果不存在则添加,否则修改。
Definition: fx_basic.h:2216
CFX_BitWriter(CFX_BinaryBuf *pBinBuf)
带位写入的构造函数。
Definition: fx_basic.h:3453
FX_BOOL InsertAt(int nStartIndex, const CFX_BasicArray *pNewArray)
在指定位置插入数组。
Definition: fx_basic.h:1581
~CFX_FileBufferArchive()
析构函数。
void Clear()
清空数据。
Definition: fx_basic.h:4095
void Delete(int start_index, int count)
删除由参数start_index和count定义的二进制缓冲区中的区间缓冲区。
待继续。
Definition: fx_basic.h:4157
CFX_WideString FX_UrlDecode(const CFX_ByteString &bsUrl)
简单的URL解码。
FX_DWORD GetBits(FX_DWORD nBits)
获取指定数量的位(最多32位)。
ValueType & operator[](KeyType key)
下标([])运算符重载。查找,如果不存在则添加。
Definition: fx_basic.h:2572
字节字符串类
Definition: fx_string.h:317
FX_BOOL Lookup(FX_BSTR key, void *&rValue) const
通过键查找。
void SetPrivateData(FX_LPVOID module_id, FX_LPVOID pData, PD_CALLBACK_FREEDATA callback)
设置私有数据。
void operator=(FX_BSTR str)
赋值(=)运算符重载。从非缓冲字节字符串。
CFX_CMapByteStringToPtr(IFX_Allocator *pAllocator=0)
构造函数。
virtual ~IFX_BufferArchive()
析构函数。
Definition: fx_basic.h:771
Definition: fx_basic.h:1157
FX_BOOL CopyData(const void *pBuf, FX_STRSIZE size)
从另一个缓冲区复制。
CFX_AutoRestorer(T *location)
构造函数。
Definition: fx_basic.h:3873
unsigned char const * FX_LPCBYTE
指向常量FX_BYTE的指针。
Definition: fx_system.h:669
FX_LPBYTE GetBuffer() const
获取指向二进制缓冲区的字节指针。
Definition: fx_basic.h:196
void SetDataSize(int data_size)
使用分配器进行构造。
Definition: fx_basic.h:2257
FX_BOOL Lookup(void *key, void *&rValue) const
通过键查找。
FX_ProgressiveStatus
渐进状态的枚举。
Definition: fx_basic.h:4153
void Pop()
从栈中弹出数据。
Definition: fx_basic.h:1889
wchar_t * FX_LPWSTR
指向Unicode字符的指针。
Definition: fx_system.h:734
FX_BOOL NeedNewSrc()
指示此过滤器是否需要输入新的源数据。
FX_BOOL InsertAt(int nIndex, TYPE newElement, int nCount=1)
在指定位置插入一个或多个连续元素。
Definition: fx_basic.h:1555
索引超出范围。
Definition: fx_basic.h:1294
IFX_Allocator * m_pAllocator
特殊分配器指针。NULL表示使用默认分配器。
Definition: fx_basic.h:2148
FX_BOOL IsEOF() const
检测EOF。
Definition: fx_basic.h:3774
void Push(const TYPE &val)
将类型对象压入栈中。
Definition: fx_basic.h:1976
~CFX_CMapByteStringToPtr()
析构函数。
void TakeOver(CFX_BinaryBuf &other)
接管另一个缓冲区。
#define NULL
空指针值。
Definition: fx_system.h:792
void * GetValueAt(void *key) const
通过键获取值指针。
FX_INT32 AppendInt64(FX_INT64 i)
追加FX_INT64值。
CFX_ArchiveLoader & operator >>(FX_BYTE &i)
右移(>>)运算符重载。反序列化字节。
int GetUpperBound() const
获取数组中的上界,实际上是最大有效索引。
Definition: fx_basic.h:1348
int Size() const
获取容器的大小。
Definition: fx_basic.h:1944
void RemoveKey(FX_BSTR key)
移除现有的(键, ?)对。
Definition: fx_basic.h:2617
Definition: fx_basic.h:2326
Definition: fx_basic.h:3445
FX_BOOL IsEOF() const
检查是否到达流的末尾。
Definition: fx_basic.h:3415
CFX_ByteString FX_UrlEncode(const CFX_WideString &wsUrl)
简单的URL编码。
void Push(const TYPE &val)
将数据压入栈中。
Definition: fx_basic.h:1901
#define FX_FILESIZE
直接支持大文件。
Definition: fx_stream.h:155
FX_POSITION GetStartPosition() const
获取第一个键值对位置。用于遍历所有(键, 值)对。
Definition: fx_basic.h:2431
Definition: fx_basic.h:2691
void Clear()
清空数据列表。
Definition: fx_basic.h:3965
CountedObj()
构造函数。
Definition: fx_basic.h:3505
void RemoveAll()
移除数组中的所有对象。
Definition: fx_basic.h:1831
int GetCount() const
获取节点的数量。
Definition: fx_basic.h:3109
FX_BOOL AbortAll()
指示是否中止过滤器处理,包括所有目标过滤器。
ObjClass * GetModify()
获取对象的可修改副本。
Definition: fx_basic.h:3652
void GetNextAssoc(FX_POSITION &pos, FX_DWORD &key, FX_DWORD &value) const
获取下一个关联。
void RemoveAll()
移除映射中的所有(键, 值)对。
int Size() const
获取容器的大小。
Definition: fx_basic.h:1869
#define FX_Allocator_Free(fxAllocator, ptr)
在分配器上释放内存块。
Definition: fx_memory.h:1091
FX_POSITION GetPrevPosition(FX_POSITION pos) const
获取前一个位置。
Definition: fx_basic.h:3090
CFX_WideStringC GetWideString() const
从宽字符文本缓冲区获取宽字符串。
CFX_ArchiveLoader(FX_LPCBYTE pData, FX_DWORD dwSize)
构造加载存档。
PD_CALLBACK_FREEDATA m_pCallback
自定义模块提供的用于释放私有数据的回调函数指针。
Definition: fx_basic.h:3253
FX_STRSIZE GetSize() const
获取二进制缓冲区的长度。
Definition: fx_basic.h:203
CFX_ByteString(* m_GetByteString)(CFX_CharMap *pMap, const CFX_WideString &wstr)
GetByteString函数的指针类型。
Definition: fx_basic.h:976
Definition: fx_basic.h:3381
void SetNull()
将对象指针设置为null。
Definition: fx_basic.h:3674
Definition: fx_basic.h:3866
CFX_ArrayTemplate< FX_WCHAR > CFX_WCHARArray
FX_WHAR数组的类型定义。
Definition: fx_basic.h:1614
FX_INT32 AppendString(FX_BSTR lpsz)
追加字节字符串值。
void InitHashTable(FX_DWORD hashSize, FX_BOOL bAllocNow=true)
初始化哈希表。
FX_BOOL operator==(const Ref &ref) const
比较(==)运算符重载。与另一个引用进行比较。
Definition: fx_basic.h:3690
ObjectClass * GetDataPtr(int index) const
获取指向数组中指定元素的指针。直接指针访问。
Definition: fx_basic.h:1810
void * value
值数据。
Definition: fx_basic.h:2707
INT_PTR FX_INTPTR
指针精度的有符号整型。
Definition: fx_system.h:750
unsigned char FX_BYTE
字节(8位)。
Definition: fx_system.h:665
void * GetAt(int index) const
获取指向元素数据的无类型指针。
void RemoveAll()
移除数组中的所有元素。
void Pop()
从栈中弹出类型对象。
Definition: fx_basic.h:1964
Definition: fx_basic.h:858
void Decref()
减少引用计数。
Definition: fx_basic.h:3721
virtual ~IFX_Pause()
析构函数。
Definition: fx_basic.h:3741
CFX_ArrayTemplate< void * > CFX_PtrArray
无类型指针数组类型的类型定义。
Definition: fx_basic.h:1606
Definition: fx_basic.h:484
CFX_BaseSegmentedArray(int unit_size=1, int segment_units=512, int index_size=8, IFX_Allocator *pAllocator=0)
使用指定的单元大小、段单元数和索引级别数进行构造。
int Find(const TYPE &data, int iStart=0) const
从指定位置到最后查找元素。
Definition: fx_basic.h:1590
void Input(FX_BYTE byte)
输入字节。
FX_LPVOID GetNextValue(FX_POSITION &rNextPosition) const
获取当前值并将位置设置为下一个关联。
CFX_ByteStringC GetByteString() const
从缓冲区获取字节字符串。
void Add(FX_INT32 nStart, FX_INT32 nCount)
添加列表数据。
Definition: fx_basic.h:4108
CAssoc * pNext
指向下一个关联的指针。
Definition: fx_basic.h:2335