MAK Legion 1.1 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Legion::SetView< SET_TYPE > Class Template Reference

The SetView is a concrete view class that provides a view of the database for instances of a given type. More...

+ Inheritance diagram for Legion::SetView< SET_TYPE >:
+ Collaboration diagram for Legion::SetView< SET_TYPE >:

Classes

struct  InstanceUpdateData
 

Public Types

typedef Callback< void(const
std::vector< SET_TYPE > &)> 
InstanceCallback
 Callback for when instances are added or removed from the view. More...
 
typedef Callback< void(const
std::vector
< InstanceUpdateData > &)> 
InstanceUpdateCallback
 
typedef Callback< bool(const
SET_TYPE &instance)> 
PredicateCallback
 

Public Member Functions

 SetView (ViewHandle handle, SimulationDatabase &database)
 constructor More...
 
virtual ~SetView ()
 destructor More...
 
std::vector< SET_TYPE > & instances ()
 Returns the instances in this view. More...
 
virtual bool addInstanceAddedCallback (InstanceCallback cb)
 Add/Remove Instances added callbacks. More...
 
virtual bool removeInstanceAddedCallback (InstanceCallback cb)
 
virtual bool addInstanceMovedCallback (InstanceCallback cb)
 Add/Remove Instances moved callbacks. More...
 
virtual bool removeInstanceMovedCallback (InstanceCallback cb)
 
virtual bool addInstanceRemovedCallback (InstanceCallback cb)
 Add/Remove Instances removed callbacks. More...
 
virtual bool removeInstanceRemovedCallback (InstanceCallback cb)
 
virtual bool addInstanceUpdatedCallback (InstanceUpdateCallback cb, const std::vector< AttributeIndex > &attributeIndexFilter=std::vector< AttributeIndex >())
 Add/Remove Instances updated callbacks if attributeIndexFiter == null then all attributes will be tested and returned. More...
 
virtual bool removeInstanceUpdatedCallback (InstanceUpdateCallback cb)
 
virtual void setPredicateFunction (PredicateCallback cb)
 
- Public Member Functions inherited from Legion::View
 View (ViewHandle handle, SimulationDatabase &database)
 constructor More...
 
virtual ~View ()
 destructor More...
 
virtual void initialize ()
 initializes the view once the derived class has installed any predicates/callbacks More...
 
virtual std::string name () const
 Get the name of the view. More...
 
virtual UInt32 count () const
 Get the number entities in this view. More...
 
virtual ViewScope scope () const
 Get the scope of the view Scope determines if the view contains local, remote, or mixed instances. More...
 
SimulationDatabasedatabase () const
 The database this view uses. More...
 

Protected Member Functions

virtual void rebuildInstanceList ()
 Rebuilds the instance list if instances are added/removed. More...
 
void callAddedCallbacks (const InstanceHandle *instances, UInt32 count)
 
void callMovedCallbacks (const InstanceHandle *instances, UInt32 count)
 
void callRemovedCallbacks (const InstanceHandle *instances, UInt32 count)
 
void callUpdatedCallbacks (const LEG_InstanceUpdateData *instances, UInt32 count, int cbIndex)
 
- Protected Member Functions inherited from Legion::View
virtual void reset ()
 

Static Protected Member Functions

static void addedCallback (void *usr, const InstanceHandle *instances, UInt32 count)
 
static void movedCallback (void *usr, const InstanceHandle *instances, UInt32 count)
 
static void removedCallback (void *usr, const InstanceHandle *instances, UInt32 count)
 
static void updatedCallback (void *usr, const LEG_InstanceUpdateData *instances, UInt32 count, int cbIndex)
 
static int predicate (void *usr, InstanceHandle instance)
 

Protected Attributes

std::vector< SET_TYPE > myInstances
 
std::mutex myRebuildMutex
 
std::vector< InstanceCallbackmyAddedCallbacks
 
std::vector< InstanceCallbackmyMovedCallbacks
 
std::vector< InstanceCallbackmyRemovedCallbacks
 
std::vector
< InstanceUpdateCallback
myUpdatedCallbacks
 
PredicateCallback myPredicateFunction
 
- Protected Attributes inherited from Legion::View
ViewHandle myHandle
 
SimulationDatabasemyDatabase
 
std::atomic< UInt32myCount
 
bool myDirty
 

Detailed Description

template<typename SET_TYPE>
class Legion::SetView< SET_TYPE >

The SetView is a concrete view class that provides a view of the database for instances of a given type.

Users should derive from this class and overload the predicate function to create custom views of an instance type.

Member Typedef Documentation

template<typename SET_TYPE>
typedef Callback<void(const std::vector<SET_TYPE>&)> Legion::SetView< SET_TYPE >::InstanceCallback

Callback for when instances are added or removed from the view.

template<typename SET_TYPE>
typedef Callback<void(const std::vector<InstanceUpdateData>&)> Legion::SetView< SET_TYPE >::InstanceUpdateCallback
template<typename SET_TYPE>
typedef Callback<bool(const SET_TYPE& instance)> Legion::SetView< SET_TYPE >::PredicateCallback

Constructor & Destructor Documentation

template<typename SET_TYPE >
Legion::SetView< SET_TYPE >::SetView ( ViewHandle  handle,
SimulationDatabase database 
)
template<typename SET_TYPE >
Legion::SetView< SET_TYPE >::~SetView ( )
virtual

destructor

Member Function Documentation

template<typename SET_TYPE >
void Legion::SetView< SET_TYPE >::addedCallback ( void *  usr,
const InstanceHandle instances,
UInt32  count 
)
staticprotected
template<typename SET_TYPE >
bool Legion::SetView< SET_TYPE >::addInstanceAddedCallback ( InstanceCallback  cb)
virtual

Add/Remove Instances added callbacks.

Referenced by DtVehicleSim::DtVehicleSim().

template<typename SET_TYPE >
bool Legion::SetView< SET_TYPE >::addInstanceMovedCallback ( InstanceCallback  cb)
virtual

Add/Remove Instances moved callbacks.

template<typename SET_TYPE >
bool Legion::SetView< SET_TYPE >::addInstanceRemovedCallback ( InstanceCallback  cb)
virtual

Add/Remove Instances removed callbacks.

Referenced by DtVehicleSim::DtVehicleSim().

template<typename SET_TYPE >
bool Legion::SetView< SET_TYPE >::addInstanceUpdatedCallback ( InstanceUpdateCallback  cb,
const std::vector< AttributeIndex > &  attributeIndexFilter = std::vector<AttributeIndex>() 
)
virtual

Add/Remove Instances updated callbacks if attributeIndexFiter == null then all attributes will be tested and returned.

References legion_view_addInstanceUpdatedCallback().

template<typename SET_TYPE >
void Legion::SetView< SET_TYPE >::callAddedCallbacks ( const InstanceHandle instances,
UInt32  count 
)
protected
template<typename SET_TYPE >
void Legion::SetView< SET_TYPE >::callMovedCallbacks ( const InstanceHandle instances,
UInt32  count 
)
protected
template<typename SET_TYPE >
void Legion::SetView< SET_TYPE >::callRemovedCallbacks ( const InstanceHandle instances,
UInt32  count 
)
protected
template<typename SET_TYPE >
void Legion::SetView< SET_TYPE >::callUpdatedCallbacks ( const LEG_InstanceUpdateData instances,
UInt32  count,
int  cbIndex 
)
protected
template<typename SET_TYPE >
std::vector< SET_TYPE > & Legion::SetView< SET_TYPE >::instances ( )

Returns the instances in this view.

template<typename SET_TYPE >
void Legion::SetView< SET_TYPE >::movedCallback ( void *  usr,
const InstanceHandle instances,
UInt32  count 
)
staticprotected
template<typename SET_TYPE >
int Legion::SetView< SET_TYPE >::predicate ( void *  usr,
InstanceHandle  instance 
)
staticprotected
template<typename SET_TYPE >
void Legion::SetView< SET_TYPE >::rebuildInstanceList ( )
protectedvirtual

Rebuilds the instance list if instances are added/removed.

References legion_view_instances().

template<typename SET_TYPE >
void Legion::SetView< SET_TYPE >::removedCallback ( void *  usr,
const InstanceHandle instances,
UInt32  count 
)
staticprotected
template<typename SET_TYPE >
bool Legion::SetView< SET_TYPE >::removeInstanceAddedCallback ( InstanceCallback  cb)
virtual
template<typename SET_TYPE >
bool Legion::SetView< SET_TYPE >::removeInstanceMovedCallback ( InstanceCallback  cb)
virtual
template<typename SET_TYPE >
bool Legion::SetView< SET_TYPE >::removeInstanceRemovedCallback ( InstanceCallback  cb)
virtual
template<typename SET_TYPE >
bool Legion::SetView< SET_TYPE >::removeInstanceUpdatedCallback ( InstanceUpdateCallback  cb)
virtual
template<typename SET_TYPE >
void Legion::SetView< SET_TYPE >::setPredicateFunction ( PredicateCallback  cb)
virtual
template<typename SET_TYPE >
void Legion::SetView< SET_TYPE >::updatedCallback ( void *  usr,
const LEG_InstanceUpdateData instances,
UInt32  count,
int  cbIndex 
)
staticprotected

Member Data Documentation

template<typename SET_TYPE>
std::vector<InstanceCallback> Legion::SetView< SET_TYPE >::myAddedCallbacks
protected
template<typename SET_TYPE>
std::vector<SET_TYPE> Legion::SetView< SET_TYPE >::myInstances
protected
template<typename SET_TYPE>
std::vector<InstanceCallback> Legion::SetView< SET_TYPE >::myMovedCallbacks
protected
template<typename SET_TYPE>
PredicateCallback Legion::SetView< SET_TYPE >::myPredicateFunction
protected
template<typename SET_TYPE>
std::mutex Legion::SetView< SET_TYPE >::myRebuildMutex
protected
template<typename SET_TYPE>
std::vector<InstanceCallback> Legion::SetView< SET_TYPE >::myRemovedCallbacks
protected
template<typename SET_TYPE>
std::vector<InstanceUpdateCallback> Legion::SetView< SET_TYPE >::myUpdatedCallbacks
protected

The documentation for this class was generated from the following files:

Document ID: Generated on Wed May 26 15:17:05 EDT 2021 from SVN revision 229676
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)