#include "Threads/PoomaSmarts.h"
#include "Engine/EngineFunctor.h"
#include "PETE/PETE.h"
Classes | |
struct | DataObjectApply< Block > |
DataObjectApply is used to wrap the two cases of whether an object has a smarts data object or not. More... | |
struct | DataObjectApply< false > |
struct | DataObjectApply< true > |
class | DataObjectRequest< RequestType > |
This class has two functions. More... | |
struct | EngineFunctorDefault< Eng, DataObjectRequest< RequestType > > |
struct | EngineFunctorScalar< T, DataObjectRequest< RequestType > > |
LeafFunctors for DataObjectRequest. More... | |
struct | BlockAffinity |
DataObjectRequest<BlockAffinity> Used to get the affinity for an array. More... | |
struct | AffinityCombine |
This trivial combiner returns the left-most object in an expression. More... | |
struct | Combine2< int, int, Op, AffinityCombine > |
class | DataObjectRequest< BlockAffinity > |
Engine_t::dataObject is true if the engine has a smarts data object, false otherwise. Anything that requires information about smarts data objects should query this trait first.
The tag needs to be of type DataObjectTag<RequestType>, which satisfy the interface of array message tags and ForEach LeafFunctor tags. In this file we define two request types, GetDataObject and BlockAffinity to return the data object and the affinity:
Pooma::DataObject_t obj = forEach(array,DataObjectRequest<GetDataObject>()) int affinity = forEach(array,DataObjectRequest<BlockAffinity>())