FreePOOMA  2.4.1
Classes
DataObject.h File Reference

Traits and tags necessary for dealing with the Smarts data object inside some engines. More...

#include "Threads/PoomaSmarts.h"
#include "Engine/EngineFunctor.h"
#include "PETE/PETE.h"
Include dependency graph for DataObject.h:
This graph shows which files directly or indirectly include this file:

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 >

Detailed Description

Traits and tags necessary for dealing with the Smarts data object inside some engines.

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>())