gatb.core-API-0.0.0
SmartPointer Class Reference

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 ()
 

Detailed Description

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.

See also
SP_SETATTR
LOCAL

Constructor & Destructor Documentation

SmartPointer ( )
inlineprotected

Constructor.

virtual ~SmartPointer ( )
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.

Member Function Documentation

void forget ( )
inlinevirtual

Forget an instance by releasing a token on it

Implements ISmartPointer.

void use ( )
inlinevirtual

Use an instance by taking a token on it

Implements ISmartPointer.


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