1 #ifndef DUNE_FEM_REFERENCECOUNTER_HH 2 #define DUNE_FEM_REFERENCECOUNTER_HH 39 template<
class,
class >
99 return asImp().getObject();
113 return asImp().getObject();
133 template<
class ReferenceCounter >
137 static const bool v = Conversion< ReferenceCounter, ReferenceCounterInterfaceType >::exists;
153 template<
class RCT >
160 template<
class,
class >
183 : refcount_( refcount )
189 ThisType &operator= (
const ThisType &other );
207 assert( refcount_ > 0 );
230 template<
class ReferenceCounter >
241 typedef typename ReferenceCounterType::ObjectType
ObjectType;
252 object_->addReference();
263 : object_( other.object_ )
266 object_->addReference();
277 object_->removeReference();
282 ThisType &operator= (
const ThisType &other )
288 object_->removeReference();
291 object_->addReference();
304 assert( object_ != 0 );
305 return object_->getObject();
319 #endif // #ifndef DUNE_FEM_REFERENCECOUNTER_HH default implementation of ReferenceCounterInterface
Definition: referencecounter.hh:154
ObjectType & getObject()
access the real object (non-const version)
Definition: referencecounter.hh:110
ReferenceCounterType * object_
Definition: referencecounter.hh:312
void addReference() const
:: ReferenceCounterInterface :: addReference
Definition: referencecounter.hh:193
Traits::ReferenceCounterType ReferenceCounterType
type of the implementation (Barton-Nackman)
Definition: referencecounter.hh:47
friend class Conversion
Definition: referencecounter.hh:40
interface for objects capable of reference counting
Definition: referencecounter.hh:33
ReferenceCounterType::ObjectType ObjectType
Definition: referencecounter.hh:241
Traits::ObjectType ObjectType
type of the object, this is a reference counter for
Definition: referencecounter.hh:53
ReferenceCounterDefault(unsigned int refcount=1)
constructor initializing the reference counter
Definition: referencecounter.hh:182
const Implementation & asImp() const
Definition: bartonnackmaninterface.hh:37
void addReference() const
add a reference to this object
Definition: referencecounter.hh:68
ThisType ReferenceCounterInterfaceType
type of the reference counter interface
Definition: referencecounter.hh:50
ObjectPointer(ReferenceCounterType *const object=0)
initialize a pointer (with a standard C++ pointer)
Definition: referencecounter.hh:248
unsigned int referenceCounter() const
return current reference count
Definition: referencecounter.hh:309
Definition: coordinate.hh:4
RCT Traits
type of the traits
Definition: referencecounter.hh:44
models a pointer to a reference countable object
Definition: referencecounter.hh:231
void deleteObject()
delete to object
Definition: referencecounter.hh:83
unsigned int refcount_
Definition: referencecounter.hh:217
Double operator*(const Double &a, const Double &b)
Definition: double.hh:495
const ObjectType & getObject() const
access the real object (const version)
Definition: referencecounter.hh:96
ReferenceCounter ReferenceCounterType
type of the object, this pointer points to
Definition: referencecounter.hh:235
ReferenceCounterInterface< typename ReferenceCounter::Traits > ReferenceCounterInterfaceType
Definition: referencecounter.hh:136
~ObjectPointer()
destructor
Definition: referencecounter.hh:274
void removeReference() const
:: ReferenceCounterInterface :: removeReference
Definition: referencecounter.hh:205
void removeReference() const
remove a reference to this object
Definition: referencecounter.hh:125
Definition: referencecounter.hh:134
BaseType::ReferenceCounterType ReferenceCounterType
type of the implementation (Barton-Nackman)
Definition: referencecounter.hh:165
void deleteObject()
:: ReferenceCounterInterface :: deleteObject
Definition: referencecounter.hh:199
ObjectFactoryImp::ObjectType ObjectType
Definition: objectstack.hh:25
Definition: objectstack.hh:17
ObjectPointer(const ThisType &other)
copy constructor
Definition: referencecounter.hh:262
unsigned int referenceCounter() const
return current reference count
Definition: referencecounter.hh:214
Definition: bartonnackmaninterface.hh:15