MADARA  3.1.8
madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type > Class Template Reference

Tracker specialization for types that don't track modification status, and that can only write. More...

#include <Tracker.h>

Inheritance diagram for madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >:
Collaboration diagram for madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >:

Private Types

typedef std::decay< decltype(get_value(std::declval< T >)))>::type V
 

Private Member Functions

 Tracker (T *tracked, VariableReference ref)
 
virtual void force_push (KnowledgeBase &kb)
 As push, but ignore any modification status tracking. More...
 
virtual const char * get_name () const
 Get name of MADARA variable. More...
 
virtual const void * get_tracked () const
 Get pointer to tracked object. More...
 
virtual void pull ()
 Override to implement pulling logic (from ref_) More...
 
virtual void push (KnowledgeBase &kb)
 Override to implement pushing logic (into ref_) More...
 

Private Attributes

T * tracked_
 

Static Private Attributes

static const bool can_read = false
 Pointer to tracked object. More...
 
static const bool can_write = true
 

Friends

class Transaction
 

Detailed Description

template<class T>
class madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >

Tracker specialization for types that don't track modification status, and that can only write.

Definition at line 145 of file Tracker.h.

Member Typedef Documentation

template<class T >
typedef std::decay<decltype(get_value(std::declval<T>)))>::type madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >::V
private

Definition at line 153 of file Tracker.h.

Constructor & Destructor Documentation

template<class T >
madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >::Tracker ( T *  tracked,
VariableReference  ref 
)
inlineprivate

Definition at line 162 of file Tracker.h.

Member Function Documentation

template<class T >
virtual void madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >::force_push ( KnowledgeBase kb)
inlineprivatevirtual

As push, but ignore any modification status tracking.

Implements madara::knowledge::rcw::BaseTracker.

Definition at line 177 of file Tracker.h.

template<class T >
virtual const char* madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >::get_name ( ) const
inlineprivatevirtual

Get name of MADARA variable.

Implements madara::knowledge::rcw::BaseTracker.

Definition at line 183 of file Tracker.h.

template<class T >
virtual const void* madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >::get_tracked ( ) const
inlineprivatevirtual

Get pointer to tracked object.

Implements madara::knowledge::rcw::BaseTracker.

Definition at line 188 of file Tracker.h.

template<class T >
virtual void madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >::pull ( )
inlineprivatevirtual

Override to implement pulling logic (from ref_)

Implements madara::knowledge::rcw::BaseTracker.

Definition at line 165 of file Tracker.h.

template<class T >
virtual void madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >::push ( KnowledgeBase kb)
inlineprivatevirtual

Override to implement pushing logic (into ref_)

Implements madara::knowledge::rcw::BaseTracker.

Definition at line 170 of file Tracker.h.

Friends And Related Function Documentation

template<class T >
friend class Transaction
friend

Definition at line 193 of file Tracker.h.

Member Data Documentation

template<class T >
const bool madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >::can_read = false
staticprivate

Pointer to tracked object.

Definition at line 159 of file Tracker.h.

template<class T >
const bool madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >::can_write = true
staticprivate

Definition at line 160 of file Tracker.h.

template<class T >
T* madara::knowledge::rcw::Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_self_eq< T >::value &&!supports_is_dirty< T >::value >::type >::tracked_
private

Definition at line 155 of file Tracker.h.


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