class FreeSpaceArrayPtr { protected: class FreeSpaceArray //body class { friend FreeSpaceArrayPtr; protected: SVector m_BlockPtr; ArrayIndex m_FreeSpaceListCount; ArrayIndex m_FreeSpaceListBlockCount; ArrayIndex m_CurrentLowestFreeBlock; ArrayIndex m_QuantumBlockNumberAdjustment; int m_ReferenceCount; public: FreeSpaceArray(); FreeSpaceArray(QuantumFile *p_QuantumFile); ~FreeSpaceArray(); QFreeSpaceEntry Get(ArrayIndex p_Index); void Set(ArrayIndex p_Index, QFreeSpaceEntry p_Entry); QuantumNumber FindEmptyBlock(); QuantumNumber FindSpaceForItem(ObjectNumber p_ObjectNumber, ArrayIndex p_ItemSize); ArrayIndex QGetFreeSpaceListCount() {return m_FreeSpaceListCount;} };