|
Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
A Creator object that allows to create data on demand, when they are used and accessed. More...
#include <OnDemandCreator.hpp>
Classes | |
| struct | Exception |
| Associated Exception class. More... | |
Public Types | |
| enum | Dims_t { RANK = Rank } |
| typedef result_value_type | value_type |
| The type of values provided by the associated data set. | |
| Public Types inherited from Fiber::CreativeArrayBase | |
| enum class | CreationFailure { None , OutOfMemory , CannotOpen , CannotRead , CannotSave , Timeout , Unknown } |
| Public Types inherited from Fiber::OwnerBase | |
| template<class ItemType> | |
| using | Item = MemCore::InterfaceData<ItemType> |
| An optional convenience class that allows to easily add arbitrary types to Intercubes . | |
Public Member Functions | |
| OnDemandCreator (const Constructor_t &myConstructor, const MemCore::RefPtr< MemCore::Cache > &theCache) | |
| Construct an OnDemand Creator. | |
| Creature::ReasonForReleasal | release () override |
| bool | hasData () const override |
| const std::type_info & | getType () override |
| MemCore::CacheablePtr | getCacheable () const override |
| RefPtr< MemBase > | get () const override |
| RefPtr< MemBase > | take () override |
| RefPtr< MemBase > | produce () override |
| The data creation: Create an object of type Computer (the template argument), passing the constructor object from the Computer's class and a weak ptr to the creator, such as in: | |
| Public Member Functions inherited from Fiber::CreativeArrayBase | |
| CreativeArrayBase (const MemCore::WCachePtr &theCache) | |
| Ageable & | touch () throw () |
| const Ageable & | touchAttributes () const |
| const Ageable & | updateAttributeAge (const Ageable &A) const |
| void | extremeUnction () |
| bool | needsSaving () const |
| Check if the data here need to be saved, i.e. | |
| void | hasBeenSaved () const |
| Indicate that this dataset has been saved and does not need to be saved again. | |
| void | addDataMetaInfo (const MemCore::RefPtr< MemBase > &D) |
| Set the type and size interfaces according to the given data. | |
| const FiberTypeIndex & | getFiberTypeIndex () const |
| auto | value_type_size () const |
| How many bytes this object occupies in memory. | |
| RefPtr< FiberTypeBase > | getFiberType () const |
| void | setFiberType (const RefPtr< FiberTypeBase > &FTB) |
| template<class ... T> | |
| bool | isType () const |
| void | addMetaInfo (const DynamicSize &theSize, const RefPtr< FiberTypeBase > &theDataType) |
| void | addMetaInfo (int nDimensions, const RefPtr< FiberTypeBase > &theDataType) |
| RefPtr< BinderBase > | getBinder () const |
| Get the Binder from the Bundle where this Creator is contained, processing via Bundle::processOwnership(), which may be relatively slow. | |
| void | save (const MemCore::RefPtr< MemBase > &D) const |
| Passes the data object backwards through the ownership hierarchy, ultimately calling Bundle::processOwnership() which in turn calls Binder::save(). | |
| Public Member Functions inherited from MemCore::CreatorBase< MemBase > | |
| RefPtr< Domain > | create (bool CreateAsOld=false) |
| RefPtr< Domain > | createAsOld () |
| CreatorBase (const WCachePtr &theCache) | |
| RefPtr< Domain > | get_or_request (const result &R=nullptr) |
| bool | isUnderCreation () const override |
| virtual bool | request (const result &R=nullptr) |
| Public Member Functions inherited from Fiber::Ownable< CreativeArrayBase, CreativeArrayBaseContainerBase > | |
| void | x_updateOwnershipAge (const MemCore::Ageable &theNewAge) override |
| Forward some age to all Owners. | |
| void | insertOwner (const Container &theOwner) |
| Add some owner. | |
| void | addOwner (const Container &theOwner, const MemCore::Ageable &theNewAge) |
| Add some owner and broadcast a new age to all Ownerrs. | |
| Ownable () | |
| Default constructor, empty Ownership list. | |
| Ownable & | operator= (const Ownable &) |
| Assignment, does NOT copy any ownership information, the assigned Ownable will retain all its ownership information. | |
| MemCore::WeakPtr< Container > | getPrimaryOwner () const |
| Get the first valid owner. | |
| size_t | getNumberOfValidOwners () const |
| Get the first valid owner. | |
| bool | processOwnership (MemCore::Intercube &Output, const MemCore::Intercube &Input) const override |
| Process some ownership action. | |
| Public Member Functions inherited from Fiber::OwnerBase | |
| bool | processOwnership (MemCore::Intercube &OutputAndInput) const |
| Process ownership where the input information is shared with the output information in the same Intercube. | |
| Public Member Functions inherited from Fiber::SaveableAttributes | |
| void | attributesHaveBeenSaved () const |
| bool | attributesNeedSaving () const |
| Public Member Functions inherited from MemCore::Attributes | |
| MemCore::RefPtr< MemCore::ChunkBase > | getAttribute (const std::string &name) const |
| const Ageable & | getAttributeAge () const |
| std::pair< bool, T > | getAttributeValue (const string &AttributeName, size_t ElementNumber=0) const |
| attributes_t & | getAttributeValues () |
| const attributes_t & | getAttributeValues () const |
| size_t | getNumberOfAttributes () const |
| bool | hasAttribute (const std::string &name) const |
| int | Iterate (const Functor &L) const |
| int | iterate (Iterator &it) const |
| int | iterate_attributes (const Functor &L) const |
| size_t | NumberOfAttributes () const |
| void | setAttribute (const std::string &name, const MemCore::RefPtr< MemCore::ChunkBase > &AttribData) |
| ResizableChunk< T > & | setAttributeValue (const std::string &name, const T &AttribData) |
| ResizableChunk< T > & | setAttributeValues (const std::string &name, const std::initializer_list< T > &AttribData) |
| const T & | setValue (const T &AttribData, const std::string &name) |
| const T & | setValue (const T &AttribData, const std::string &name, const std::string &Comment, const std::string &CommentPrefix="Comment") |
| string | toString () const |
| const Ageable & | touchAttributes () const |
| const Ageable & | updateAttributeAge (const Ageable &A) const |
Static Public Member Functions | |
| static WeakPtr< FiberTypeBase > | getFiberType () |
| The FiberType that is associated with this data set. | |
| Static Public Member Functions inherited from Fiber::CreativeArrayBase | |
| static bool | retryCreation (CreativeArrayBase &) |
Additional Inherited Members | |
| Public Attributes inherited from Fiber::CreativeArrayBase | |
| AgeRelativeToBinder | LastSavedTimes |
| enum Fiber::CreativeArrayBase::CreationFailure | Error = CreationFailure::None |
| Public Attributes inherited from Fiber::Ownable< CreativeArrayBase, CreativeArrayBaseContainerBase > | |
| std::unordered_set< MemCore::WeakPtr< Container > > | Owners |
| The (internal) list of owners. | |
| Public Attributes inherited from Fiber::SaveableAttributes | |
| MemCore::Ageable | LastSavedAttributes |
| Protected Attributes inherited from Fiber::CreativeArrayBase | |
| FiberTypeIndex | myFiberTypeIndex |
| MemCore::WeakPtr< FiberTypeBase > | myFiberTypeBase |
| Related Symbols inherited from Fiber::CreativeArrayBase | |
| Ageable | LastSaved |
| The age when the data contained here had been saved last. | |
A Creator object that allows to create data on demand, when they are used and accessed.
For instance, some Field may be defined on a Grid whose values are computed once the Field is accessed. Providing such an On-Demand-Field does neither require computational nor memory resources.
The computational logic is put in the template argument Computer. It must
| enum Fiber::OnDemandCreator::Dims_t |
|
inlineoverridevirtual |
Implements MemCore::CreatorBase< MemBase >.
|
inlineoverridevirtual |
Implements MemCore::CreatorBase< MemBase >.
|
inlineoverride |
The data creation: Create an object of type Computer (the template argument), passing the constructor object from the Computer's class and a weak ptr to the creator, such as in:
Then the Computer's result() function will be called to get the data array, which is the data object to be cached and returned here.
|
inlineoverridevirtual |
Reimplemented from MemCore::CreatorBase< MemBase >.