1#ifndef __FIBER_FIELD_ONDEMAND_CREATOR_HPP
2#define __FIBER_FIELD_ONDEMAND_CREATOR_HPP
4#include "CreativeArray.hpp"
5#include "MemArrayProperties.hpp"
7#if defined(__GNUC__) && defined(_GLIBCXX_USE_NOEXCEPT)
8#define USE_NOEXCEPT _GLIBCXX_USE_NOEXCEPT
10#define USE_NOEXCEPT throw()
62template <
class Computer, Dims_t Rank = Computer::ResultArray_t::Dims,
63 typename result_value_type =
typename Computer::ResultArray_t::value_type>
66 typedef typename Computer::ResultArray_t ResultArray_t;
67 typedef typename Computer::Constructor_t Constructor_t;
69 Constructor_t MyConstructor;
88 const char* what()
const USE_NOEXCEPT
override
90 return "Unspecified Fiber::OnDemandCreator Exception";
112 Creature::ReasonForReleasal release()
override
117 bool hasData()
const override
138 RefPtr<MemBase> get()
const override
144 RefPtr<MemBase> take()
override
146 RefPtr<MemBase> result = MyData;
174 MyData->setCreator( this->
self() );
Base class for multidimensional arrays that employ deferred storage, i.e.
Definition CreativeArrayBase.hpp:75
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
Allocating array types through registry of types.
Definition MemBase.hpp:315
A Creator object that allows to create data on demand, when they are used and accessed.
Definition OnDemandCreator.hpp:65
RefPtr< MemBase > produce() override
The data creation: Create an object of type Computer (the template argument), passing the constructor...
Definition OnDemandCreator.hpp:164
OnDemandCreator(const Constructor_t &myConstructor, const MemCore::RefPtr< MemCore::Cache > &theCache)
Construct an OnDemand Creator.
Definition OnDemandCreator.hpp:104
result_value_type value_type
The type of values provided by the associated data set.
Definition OnDemandCreator.hpp:80
static WeakPtr< FiberTypeBase > getFiberType()
The FiberType that is associated with this data set.
Definition OnDemandCreator.hpp:96
Dims_t
Definition OnDemandCreator.hpp:74
@ RANK
The dimensionality of the data set.
Definition OnDemandCreator.hpp:76
ReasonForReleasal releasePtr(RefPtr< RefType > &Data) const
const auto & self() const
Given a fragmented field of curvilinear coordinates, (3D array of coordinates), build a uniform Grid ...
Definition FAQ.dox:2
Associated Exception class.
Definition OnDemandCreator.hpp:84