QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
ON_SerialNumberMap Class Reference

#include <opennurbs_lookup.h>

Classes

struct  MAP_VALUE
 
struct  SN_BLOCK
 
struct  SN_ELEMENT
 

Public Member Functions

size_t ActiveIdCount () const
 
size_t ActiveSerialNumberCount () const
 
struct SN_ELEMENTAddSerialNumber (unsigned int sn)
 
struct SN_ELEMENTAddSerialNumberAndId (unsigned int sn, ON_UUID id)
 
void EmptyList ()
 
struct SN_ELEMENTFindId (ON_UUID) const
 
struct SN_ELEMENTFindSerialNumber (unsigned int sn) const
 
struct SN_ELEMENTFirstElement () const
 
size_t GetElements (unsigned int sn0, unsigned int sn1, size_t max_count, ON_SimpleArray< SN_ELEMENT > &elements) const
 
bool IsValid (ON_TextLog *textlog) const
 
struct SN_ELEMENTLastElement () const
 
 ON_SerialNumberMap (ON_MEMORY_POOL *pool=0)
 
struct SN_ELEMENTRemoveId (unsigned int sn, ON_UUID id)
 
struct SN_ELEMENTRemoveSerialNumberAndId (unsigned int sn)
 
 ~ON_SerialNumberMap ()
 

Private Types

enum  { SN_BLOCK_CAPACITY = 8192 , SN_PURGE_RATIO = 16 , ID_HASH_TABLE_COUNT = 8192 }
 

Private Member Functions

void AddBlockToHashTableHelper (struct SN_BLOCK *blk)
 
void BuildHashTableHelper ()
 
struct SN_ELEMENTFindElementHelper (unsigned int sn)
 
void GarbageCollectHelper ()
 
size_t GarbageCollectMoveHelper (SN_BLOCK *dst, SN_BLOCK *src)
 
size_t HashIndex (const ON_UUID *) const
 
void InvalidateHashTableHelper ()
 
 ON_SerialNumberMap (const ON_SerialNumberMap &)
 
ON_SerialNumberMapoperator= (const ON_SerialNumberMap &)
 
bool RemoveBlockFromHashTableHelper (const struct SN_BLOCK *blk)
 
void UpdateMaxSNHelper ()
 

Private Attributes

size_t m_active_id_count
 
bool m_bHashTableIsValid
 
struct SN_BLOCKm_e_blk
 
struct SN_ELEMENTm_hash_table [ID_HASH_TABLE_COUNT]
 
ON_UUID m_inactive_id
 
unsigned int m_maxsn
 
ON_MEMORY_POOLm_pool
 
unsigned int m_reserved
 
SN_BLOCK m_sn_block0
 
size_t m_sn_count
 
size_t m_sn_purged
 
struct SN_BLOCK ** m_snblk_list
 
size_t m_snblk_list_capacity
 
size_t m_snblk_list_count
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
SN_BLOCK_CAPACITY 
SN_PURGE_RATIO 
ID_HASH_TABLE_COUNT 

Constructor & Destructor Documentation

◆ ON_SerialNumberMap() [1/2]

ON_SerialNumberMap::ON_SerialNumberMap ( ON_MEMORY_POOL * pool = 0)

◆ ~ON_SerialNumberMap()

ON_SerialNumberMap::~ON_SerialNumberMap ( )

◆ ON_SerialNumberMap() [2/2]

ON_SerialNumberMap::ON_SerialNumberMap ( const ON_SerialNumberMap & )
private

Member Function Documentation

◆ ActiveIdCount()

size_t ON_SerialNumberMap::ActiveIdCount ( ) const

◆ ActiveSerialNumberCount()

size_t ON_SerialNumberMap::ActiveSerialNumberCount ( ) const

◆ AddBlockToHashTableHelper()

void ON_SerialNumberMap::AddBlockToHashTableHelper ( struct SN_BLOCK * blk)
private

◆ AddSerialNumber()

struct ON_SerialNumberMap::SN_ELEMENT * ON_SerialNumberMap::AddSerialNumber ( unsigned int sn)

◆ AddSerialNumberAndId()

struct ON_SerialNumberMap::SN_ELEMENT * ON_SerialNumberMap::AddSerialNumberAndId ( unsigned int sn,
ON_UUID id )

◆ BuildHashTableHelper()

void ON_SerialNumberMap::BuildHashTableHelper ( )
private

◆ EmptyList()

void ON_SerialNumberMap::EmptyList ( )

◆ FindElementHelper()

struct ON_SerialNumberMap::SN_ELEMENT * ON_SerialNumberMap::FindElementHelper ( unsigned int sn)
private

◆ FindId()

struct ON_SerialNumberMap::SN_ELEMENT * ON_SerialNumberMap::FindId ( ON_UUID id) const

◆ FindSerialNumber()

struct ON_SerialNumberMap::SN_ELEMENT * ON_SerialNumberMap::FindSerialNumber ( unsigned int sn) const

◆ FirstElement()

struct ON_SerialNumberMap::SN_ELEMENT * ON_SerialNumberMap::FirstElement ( ) const

◆ GarbageCollectHelper()

void ON_SerialNumberMap::GarbageCollectHelper ( )
private

◆ GarbageCollectMoveHelper()

size_t ON_SerialNumberMap::GarbageCollectMoveHelper ( ON_SerialNumberMap::SN_BLOCK * dst,
ON_SerialNumberMap::SN_BLOCK * src )
private

◆ GetElements()

size_t ON_SerialNumberMap::GetElements ( unsigned int sn0,
unsigned int sn1,
size_t max_count,
ON_SimpleArray< SN_ELEMENT > & elements ) const

◆ HashIndex()

size_t ON_SerialNumberMap::HashIndex ( const ON_UUID * id) const
private

◆ InvalidateHashTableHelper()

void ON_SerialNumberMap::InvalidateHashTableHelper ( )
private

◆ IsValid()

bool ON_SerialNumberMap::IsValid ( ON_TextLog * textlog) const

◆ LastElement()

struct ON_SerialNumberMap::SN_ELEMENT * ON_SerialNumberMap::LastElement ( ) const

◆ operator=()

ON_SerialNumberMap & ON_SerialNumberMap::operator= ( const ON_SerialNumberMap & )
private

◆ RemoveBlockFromHashTableHelper()

bool ON_SerialNumberMap::RemoveBlockFromHashTableHelper ( const struct SN_BLOCK * blk)
private

◆ RemoveId()

struct ON_SerialNumberMap::SN_ELEMENT * ON_SerialNumberMap::RemoveId ( unsigned int sn,
ON_UUID id )

◆ RemoveSerialNumberAndId()

struct ON_SerialNumberMap::SN_ELEMENT * ON_SerialNumberMap::RemoveSerialNumberAndId ( unsigned int sn)

◆ UpdateMaxSNHelper()

void ON_SerialNumberMap::UpdateMaxSNHelper ( )
private

Member Data Documentation

◆ m_active_id_count

size_t ON_SerialNumberMap::m_active_id_count
private

◆ m_bHashTableIsValid

bool ON_SerialNumberMap::m_bHashTableIsValid
private

◆ m_e_blk

struct SN_BLOCK* ON_SerialNumberMap::m_e_blk
private

◆ m_hash_table

struct SN_ELEMENT* ON_SerialNumberMap::m_hash_table[ID_HASH_TABLE_COUNT]
private

◆ m_inactive_id

ON_UUID ON_SerialNumberMap::m_inactive_id
private

◆ m_maxsn

unsigned int ON_SerialNumberMap::m_maxsn
private

◆ m_pool

ON_MEMORY_POOL* ON_SerialNumberMap::m_pool
private

◆ m_reserved

unsigned int ON_SerialNumberMap::m_reserved
private

◆ m_sn_block0

SN_BLOCK ON_SerialNumberMap::m_sn_block0
private

◆ m_sn_count

size_t ON_SerialNumberMap::m_sn_count
private

◆ m_sn_purged

size_t ON_SerialNumberMap::m_sn_purged
private

◆ m_snblk_list

struct SN_BLOCK** ON_SerialNumberMap::m_snblk_list
private

◆ m_snblk_list_capacity

size_t ON_SerialNumberMap::m_snblk_list_capacity
private

◆ m_snblk_list_count

size_t ON_SerialNumberMap::m_snblk_list_count
private

The documentation for this class was generated from the following files: