gatb.core-API-0.0.0
|
Implementation of the ISmartPointer interface. More...
#include <ISmartPointer.hpp>
Inherits ISmartPointer.
Inherited by BagCache< Type >, BooPHF< Key, Adaptator >, IBankFactory, AbstractBank, ContainerNode< Item >, ContainerNodeCascading< Item >, Simplifications< GraphType, Node, Edge >, SortCmd< Count >, TerminatorTemplate< Node, Edge, Graph >, TraversalTemplate< Node, Edge, Graph >, ICountProcessor< span >, FinalizeCmd< span >, Kmer< span >::ModelAbstract< ModelImpl, T >, PartitionsCommand< span >, PartitionsCommand_multibank< span >, ReadSuperKCommand< span >, Repartitor, SortCommand< span >, ThreadGroup, ISystemInfo::CpuInfo, IThreadGroup::Info, BagCache< Item >, BagCountCompressedFile< Item >, BagFile< Item >, BagGzFile< Item >, BloomGroup< Item, prec >, BloomGroupCacheCoherent< Item, prec >, BloomGroupOld< Item, prec >, BooPHF< Key, Adaptator, Progress >, CollectionCache< Item >, CollectionCacheSorted< Item >, ContainerSet< Item >, IBloom< Item >, IterableAdaptor< T1, T2, Adaptor >, IterableCountCompressedFile< Item > [virtual]
, IterableFile< Item > [virtual]
, IterableGzFile< Item > [virtual]
, MapMPHF< Key, Value, Adaptator >, EventInfo, IDispatcher, IDispatcher::IteratorCommand< Item, Functor >, CommandStartSynchro, SynchronizerNull, Iterator< Item >, IteratorListener, Algorithm, Histogram, HistogramCache, HistogramNull, TimeInfo, Tool, IOptionsParser, IProperties, IPropertiesVisitor, IProperty, Range< T >, Vector< T >, BagHDF5< Item >, BagHDF5Patch< Item >, Cell, CollectionCountFile< Item >, CollectionDataHDF5Patch< Item >, CollectionFile< Item >, CollectionGzFile< Item >, CollectionHDF5< Item >, CollectionHDF5Patch< Item >, IterableHDF5< Item >, IterableHDF5Patch< Item >, StorageFactory, IBloom< kmer_type >, IBloom< Type >, Iterator< bank::gatb::core::bank::Sequence >, Iterator< bank::Sequence >, Iterator< cell >, Iterator< char * >, Iterator< Edge >, Iterator< gatb::core::bank::Sequence >, Iterator< Key >, Iterator< Kmer >, Iterator< kmer_type >, Iterator< misc::Abundance< Item > >, Iterator< Node >, Iterator< Sequence >, Iterator< std::pair< T1, T2 > >, Iterator< std::vector< kmer_type > >, Iterator< T >, Iterator< T1 >, Iterator< T2 >, Iterator< Type >, Kmer< span >::ModelAbstract< ModelCanonical, Kmer< span >::KmerCanonical >, Kmer< span >::ModelAbstract< ModelDirect, Kmer< span >::KmerDirect >, Kmer< span >::ModelAbstract< ModelMinimizer< ModelType, Comparator >, KmerMinimizer< ModelType, Comparator > >, TerminatorTemplate< gatb::core::debruijn::impl::Node_t, gatb::core::debruijn::impl::Edge_t, gatb::core::debruijn::impl::GraphTemplate >, TerminatorTemplate< gatb::core::debruijn::impl::Node_t, gatb::core::debruijn::impl::Edge_t, Graph_t >, and Vector< char >.
Public Member Functions | |
void | use () |
void | forget () |
Public Member Functions inherited from ISmartPointer | |
virtual | ~ISmartPointer () |
Protected Member Functions | |
SmartPointer () | |
virtual | ~SmartPointer () |
Implementation of the ISmartPointer interface.
This class implements also a security against concurrent access by several clients acting from different threads. This is achieved by using intrinsics __sync_fetch_and_add and __sync_fetch_and_sub in use and forget respectively.
This class can't be instantiated since its default constructor is protected.
|
inlineprotected |
Constructor.
|
inlineprotectedvirtual |
Destruction of the instance will be automatically called when the reference counter becomes null. The destructor is private in order to avoid to directly delete the instance without using the 'use/forget' mechanism.
|
inlinevirtual |
Forget an instance by releasing a token on it
Implements ISmartPointer.
|
inlinevirtual |
Use an instance by taking a token on it
Implements ISmartPointer.