Intrusive Containers
|
#include <Container.h>
Protected Member Functions | |
Container () | |
~Container () | |
virtual bool | check () const =0 |
unsigned | readLock (bool upgradable) const |
Obtain a read lock. | |
unsigned | readLock (bool upgradable) const |
Under ContainerNoSafety application handles all the needed restrictions. | |
unsigned | readLock (bool upgradable) const |
unsigned | readLock (bool upgradable) const |
unsigned | readLock (bool upgradable) const |
void | readUnlock (unsigned code) const |
Release the read lock that was held. | |
void | readUnlock (unsigned save) const |
Under ContainerNoSafety application handles all the needed restrictions. | |
void | readUnlock (unsigned save) const |
void | readUnlock (unsigned save) const |
void | readUnlock (unsigned save) const |
unsigned | writeLock (bool upgrade) const |
Obtain a write lock. | |
unsigned | writeLock (bool upgrade) const |
Under ContainerNoSafety application handles all the needed restrictions. | |
unsigned | writeLock (bool upgrade) const |
unsigned | writeLock (bool upgrade) const |
unsigned | writeLock (bool upgrade) const |
void | writeUnlock (unsigned code) const |
Release write lock. | |
void | writeUnlock (unsigned save) const |
Under ContainerNoSafety application handles all the needed restrictions. | |
void | writeUnlock (unsigned save) const |
void | writeUnlock (unsigned save) const |
void | writeUnlock (unsigned save) const |
Private Member Functions | |
Container (Container const &)=delete | |
We are not copyable. | |
void | operator= (Container const &)=delete |
We are not assignable;. | |
Friends | |
class | ContainerNode< s > |
Base Container Class.
Provides the base locking ability for the container.
s | The ContainerThreadSafety value to define the thread safety model of the Container |
|
inlineprotected |
|
inlineprotected |
|
privatedelete |
We are not copyable.
|
protectedpure virtual |
Implemented in BalTreeInRoot< R, N, K, s, n >, DListInRoot< R, N, s, n >, DListInRoot< N, L, s, 2 *n+1 >, DListInRoot< R, L, s, 2 *n >, ListInRoot< R, N, s, n >, ManyManyNode< R, N, s, n, L >, ManyManyRoot< R, N, s, n, L >, SortDListInRoot< R, N, s, n >, SortListInRoot< R, N, s, n >, and TreeInRoot< R, N, K, s, n >.
|
privatedelete |
We are not assignable;.
|
protected |
Obtain a read lock.
While a read lock is held on a container, the container can not be changed.
Read locks will not be given while a write lock is held.
upgradable | If called with upgradeable, then the lock can be upgradable to a write lock, and no other upgradable read lock will be granted. (Note, the code returned will need to encode the upgradable bit) |
Referenced by AATreeInRoot< R, N, K, s, n >::readLock(), BalTreeInRoot< R, N, K, s, n >::readLock(), DListInRoot< R, N, s, n >::readLock(), ListInRoot< R, N, s, n >::readLock(), ManyManyNode< R, N, s, n, L >::readLock(), ManyManyRoot< R, N, s, n, L >::readLock(), SortDListInNode< R, N, s, n >::readLock(), SortDListInRoot< R, N, s, n >::readLock(), SortListInNode< R, N, s, n >::readLock(), SortListInRoot< R, N, s, n >::readLock(), and TreeInRoot< R, N, K, s, n >::readLock().
|
inlineprotected |
Under ContainerNoSafety application handles all the needed restrictions.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
protected |
Release the read lock that was held.
code | from writeLock(); |
Referenced by DListInRoot< R, N, s, n >::readUnlock(), ListInRoot< R, N, s, n >::readUnlock(), ManyManyNode< R, N, s, n, L >::readUnlock(), ManyManyRoot< R, N, s, n, L >::readUnlock(), SortDListInNode< R, N, s, n >::readUnlock(), SortListInNode< R, N, s, n >::readUnlock(), and TreeInRoot< R, N, K, s, n >::readUnlock().
|
inlineprotected |
Under ContainerNoSafety application handles all the needed restrictions.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
protected |
Obtain a write lock.
While a write is held, no other read or write lock will be created.
upgrade | operation already has a read lock that was made with the upgradeable flag |
Referenced by AATreeInRoot< R, N, K, s, n >::writeLock(), BalTreeInRoot< R, N, K, s, n >::writeLock(), DListInRoot< R, N, s, n >::writeLock(), ListInRoot< R, N, s, n >::writeLock(), ManyManyNode< R, N, s, n, L >::writeLock(), ManyManyRoot< R, N, s, n, L >::writeLock(), SortDListInNode< R, N, s, n >::writeLock(), SortDListInRoot< R, N, s, n >::writeLock(), SortListInNode< R, N, s, n >::writeLock(), SortListInRoot< R, N, s, n >::writeLock(), and TreeInRoot< R, N, K, s, n >::writeLock().
|
inlineprotected |
Under ContainerNoSafety application handles all the needed restrictions.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
protected |
Release write lock.
If was from an upgraded read lock, we return to an upgradable read lock
code | the value returned from the previous call to writeLock() |
Referenced by AATreeInRoot< R, N, K, s, n >::writeUnlock(), BalTreeInRoot< R, N, K, s, n >::writeUnlock(), DListInRoot< R, N, s, n >::writeUnlock(), ListInRoot< R, N, s, n >::writeUnlock(), ManyManyNode< R, N, s, n, L >::writeUnlock(), ManyManyRoot< R, N, s, n, L >::writeUnlock(), SortDListInNode< R, N, s, n >::writeUnlock(), SortDListInRoot< R, N, s, n >::writeUnlock(), SortListInNode< R, N, s, n >::writeUnlock(), SortListInRoot< R, N, s, n >::writeUnlock(), and TreeInRoot< R, N, K, s, n >::writeUnlock().
|
inlineprotected |
Under ContainerNoSafety application handles all the needed restrictions.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
friend |