The C++ framework for developing highly scalable, high performance servers on Windows platforms.

TThreadSafeReusableIdManager Class Template Reference

Inheritance diagram for TThreadSafeReusableIdManager:
Collaboration diagram for TThreadSafeReusableIdManager:

List of all members.

template<typename T>
class JetByteTools::Core::TThreadSafeReusableIdManager< T >


Public Types

enum  ReusePolicy { ReuseFast, ReuseSlow }

Public Member Functions

 TThreadSafeReusableIdManager (ReusePolicy reusePolicy=TReusableIdManager< T >::ReuseFast, T max=std::numeric_limits< T >::max())
 TThreadSafeReusableIdManager (const TThreadSafeReusableIdManager &rhs)
 ~TThreadSafeReusableIdManager () override
TThreadSafeReusableIdManageroperator= (const TThreadSafeReusableIdManager &rhs)
bool TryAllocate (T &id)
bool CanAllocate () const override
Allocate () override
void Free (T id) override
bool TryFree (T id) override
bool MarkAsUsed (T id) override
bool MarkAsUsed (T first, T last) override
_tstring Dump () const
void Swap (const TReusableIdManager &rhs) const

Protected Types

typedef std::set
< Interval > 
Intervals

Protected Member Functions

bool InternalMarkAsUsed (T id)
bool InternalTryFree (T id)

Member Typedef Documentation

typedef std::set<Interval> Intervals [protected, inherited]


Member Enumeration Documentation

enum ReusePolicy [inherited]

Enumerator:
ReuseFast 
ReuseSlow 


Constructor & Destructor Documentation

TThreadSafeReusableIdManager ( ReusePolicy  reusePolicy = TReusableIdManager<T>::ReuseFast,
max = std::numeric_limits<T>::max() 
) [inline, explicit]

~TThreadSafeReusableIdManager (  )  [override]


Member Function Documentation

TThreadSafeReusableIdManager& operator= ( const TThreadSafeReusableIdManager< T > &  rhs  ) 

bool TryAllocate ( T &  id  )  [inline]

bool CanAllocate (  )  const [inline, override, virtual]

Reimplemented from TReusableIdManager.

T Allocate (  )  [inline, override, virtual]

Reimplemented from TReusableIdManager.

void Free ( id  )  [inline, override, virtual]

Reimplemented from TReusableIdManager.

bool TryFree ( id  )  [inline, override, virtual]

Reimplemented from TReusableIdManager.

bool MarkAsUsed ( id  )  [inline, override, virtual]

Reimplemented from TReusableIdManager.

bool MarkAsUsed ( first,
last 
) [inline, override, virtual]

Reimplemented from TReusableIdManager.

_tstring Dump (  )  const [inline, inherited]

void Swap ( const TReusableIdManager< T > &  rhs  )  const [inline, inherited]

bool InternalMarkAsUsed ( id  )  [inline, protected, inherited]

bool InternalTryFree ( id  )  [inline, protected, inherited]


Generated on Sun Sep 12 19:08:53 2021 for The Server Framework - v7.4 by doxygen 1.5.3