The Vish Visualization Shell 0.3
Vish
MemCore Cache Management of Limited Resources

Classes for the management of administration of objects which require fragments of a limited shared resources, such as RAM, disc space or OpenGL display lists. More...

Classes

class  MemCore::Cache
 Main administrative Cache object container. More...
class  MemCore::Cacheable
 A domain for objects which may be cached. More...
class  MemCore::CacheBase
 Abstract base class for Cache objects. More...
class  MemCore::CacheMap
 A list of cache queues for each cacheable type. More...
struct  MemCore::CacheMultiQueue
 Cache queues of different purpose. More...
class  MemCore::CacheQueue
 A root object that holds a tail of cacheable objects. More...
class  MemCore::Creator< RefType, MyCreatorBase >
 A Creator is a forwarding of some data object to its creational object. More...
class  MemCore::CreatorBase< Domain >
 A Domain-related abstract base class for reference-counted objects which occupy some memory but are able to release it on demand. More...
class  MemCore::CreatorCacheMap
 A list of cache maps for each creator type. More...
class  MemCore::MutableCacheable
 Cache objects that are allowed to change their size after creation. More...
class  MemCore::NamedCreatures
 A convenience class to remember Creatures, which are base classes of all Creators, by name. More...

Typedefs

typedef StrongPtr< Cacheable, CacheableMemCore::CacheablePtr
 Strong pointer to a cacheable object.
typedef MemSizeConfig< sizeof(void *)>::memsize_t MemCore::memsize_t
 The type to describe memory in bytes.
using MemCore::WCacheablePtr = WeakPtr<Cacheable, Cacheable>
 Weak pointer to a cacheable object.

Variables

std::list< RefPtr< Provenance > > MemCore::myCreationSources
 An abstract base class for object creators.

Detailed Description

Classes for the management of administration of objects which require fragments of a limited shared resources, such as RAM, disc space or OpenGL display lists.

Typedef Documentation

◆ memsize_t

typedef MemSizeConfig<sizeof(void*)>::memsize_t MemCore::memsize_t

The type to describe memory in bytes.

It must be large enough to cover the local memory space of an architecture, i.e. of the same size as a pointer. However, the cacheing classes may also be used for non-memory objects but other limited resources, e.g. OpenGL display lists or disc space.

Variable Documentation

◆ myCreationSources

std::list<RefPtr<Provenance> > MemCore::myCreationSources

An abstract base class for object creators.

A memory management repository might want to keep track of all `Creatures' and try to release some of them when memory gets tight. The virtual release() function will then ask each object to remove itself from memory. If the object dies by itself, it will be removed from the cache list if that correctly refers to the Creature via a WeakPtrImpl<Creature>. */ class MEMCORE_API Creature : public ReferenceBase<Creature>, public Intercube, public Ageable { WCachePtr MyCache;

public:

/ Associated Exception class struct MEMCORE_API Exception : MemCore::Exception { const char*what() const throw() override; };

double TotalCreationTime = 0.0,///< Seconds, total LastCreationTime = 0.0;///< Seconds, last call

/ int NumberOfCreations = 0;

/** Optional information about this Creator, how it was born and to which data origin it may refer to.

Referenced by appendProvenance(), appendProvenance(), getFirstCreationSource(), setProvenance(), and setProvenance().