MADARA  3.2.3
madara::knowledge::rcw Namespace Reference

Namespace holding Read-Compute-Write based abstractions for knowledge base access. More...

Classes

class  BaseTracker
 Base type for Trackers. More...
 
class  PrefixTracker
 Tracker that puts values into a multiple prefixed KnowledgeRecord. More...
 
class  PrefixTracker< T, R, false, false, void >
 If trying to create a tracker that is read-only, and write-only, give error. More...
 
class  PrefixTracker< T, VariableReference, RD, WR, typename std::enable_if< supports_get_value< T >::value &&supports_indexed_get_value< T >::value &&supports_size< T >::value &&supports_is_dirty< T >::value &&supports_is_all_dirty< T >::value &&supports_is_size_dirty< T >::value &&supports_indexed_is_dirty< T >::value >::type >
 Tracker that puts values into a multiple prefixed KnowledgeRecord. More...
 
class  Tracked
 Tracks the modification status of a wrapped object of the given type. More...
 
class  Tracked< std::vector< T > >
 Implement functionality specific to std::vectors. More...
 
class  TrackedCollection
 Used internally by Tracked. More...
 
class  TrackedExtra
 Provides default versions of methods below. More...
 
class  TrackedExtra< std::basic_string< Char >, Impl >
 Adds functionality specific to std::basic_string. More...
 
class  Tracker
 Tracker which puts variable values into a single KnowledgeRecord. More...
 
class  Tracker< T, R, false, false, void >
 If trying to create a tracker that is read-only, and write-only, give error. More...
 
class  Tracker< T, VariableReference, false, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_is_dirty< T >::value &&!supports_indexed_is_dirty< T >::value >::type >
 Tracker specialization for types that track their own modification status and that can only write. More...
 
class  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. More...
 
class  Tracker< T, VariableReference, RD, WR, typename std::enable_if< supports_get_value< T >::value &&supports_indexed_get_value< T >::value &&supports_size< T >::value &&supports_knowledge_cast< T >::value &&supports_is_dirty< T >::value &&supports_is_all_dirty< T >::value &&supports_is_size_dirty< T >::value &&supports_indexed_is_dirty< T >::value >::type >
 Tracker specialization for types that have individual indexed elements, and track their modification status individually. More...
 
class  Tracker< T, VariableReference, RD, WR, typename std::enable_if< supports_indexed_get_value< T >::value &&supports_size< T >::value &&!supports_is_all_dirty< T >::value &&!supports_is_size_dirty< T >::value &&supports_indexed_is_dirty< T >::value >::type >
 Tracker specialization for types with individual elements that each track their own modification status. More...
 
class  Tracker< T, VariableReference, true, false, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value >::type >
 Tracker specialization for types that can only read. More...
 
class  Tracker< T, VariableReference, true, true, typename std::enable_if< supports_get_value< T >::value &&supports_knowledge_cast< T >::value &&supports_is_dirty< T >::value &&!supports_indexed_is_dirty< T >::value >::type >
 Tracker specialization for types that track their own modification status and that can both read and write. More...
 
class  Tracker< T, VariableReference, true, 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 both read and write. More...
 
class  Transaction
 Manages a Read-Compute-Write cycle for registered variables. More...
 

Typedefs

typedef Tracked< bool > TrackedBool
 
typedef Tracked< char > TrackedChar
 
typedef Tracked< double > TrackedDouble
 
typedef Tracked< std::vector< double > > TrackedDoubleVector
 
typedef Tracked< float > TrackedFloat
 
typedef Tracked< int16_t > TrackedI16
 
typedef Tracked< int32_t > TrackedI32
 
typedef Tracked< int64_t > TrackedI64
 
typedef Tracked< int8_t > TrackedI8
 
typedef Tracked< int > TrackedInt
 
typedef Tracked< std::vector< int64_t > > TrackedIntVector
 
typedef Tracked< long > TrackedLong
 
typedef Tracked< long double > TrackedLongDouble
 
typedef Tracked< long long > TrackedLongLong
 
typedef Tracked< signed char > TrackedSChar
 
typedef Tracked< short > TrackedShort
 
typedef Tracked< std::string > TrackedString
 
typedef Tracked< uint16_t > TrackedU16
 
typedef Tracked< uint32_t > TrackedU32
 
typedef Tracked< uint64_t > TrackedU64
 
typedef Tracked< uint8_t > TrackedU8
 
typedef Tracked< unsigned char > TrackedUChar
 
typedef Tracked< unsigned int > TrackedUInt
 
typedef Tracked< unsigned long > TrackedULong
 
typedef Tracked< unsigned long long > TrackedULongLong
 
typedef Tracked< unsigned short > TrackedUShort
 

Functions

template<typename T >
void clear_dirty (Tracked< T > &t)
 Clears dirty flag of Tracked types. More...
 
template<typename T >
void clear_dirty (std::vector< Tracked< T >> &t, size_t i)
 Clears dirty flag of given index of vector of Tracked types. More...
 
template<typename T >
void clear_dirty (Tracked< std::vector< T >> &t, size_t i)
 Clear dirty flag at index of Tracked vector. More...
 
template<typename T >
const T & get_value (const T &t)
 Fallback definition of get_value; simply passes through the value. More...
 
template<typename T >
auto get_value (const std::vector< T > &t, size_t i) -> decltype(get_value(t[i]))
 General definition of get_value with index. More...
 
template<typename T >
auto get_value (const Tracked< T > &t) -> decltype(get_value(t.get()))
 Get value of Tracked type. More...
 
char get_value (const Tracked< std::string > &t, size_t i)
 Get value of given index of Tracked string type. More...
 
template<typename T >
const T & get_value (const Tracked< std::vector< T >> &t, size_t i)
 Get value at index of Tracked vector. More...
 
template<typename T >
bool is_all_dirty (const Tracked< std::vector< T >> &t)
 Return global dirty flag of Tracked vector. More...
 
template<typename T >
bool is_dirty (const Tracked< T > &t)
 Returns dirty flag of Tracked types. More...
 
template<typename T >
bool is_dirty (const std::vector< Tracked< T >> &t, size_t i)
 Returns dirty flag of given index of vector of Tracked types. More...
 
template<typename T >
bool is_dirty (const Tracked< std::vector< T >> &t, size_t i)
 Return dirty flag at index of Tracked vector. More...
 
template<typename T >
bool is_size_dirty (const Tracked< std::vector< T >> &t)
 Return size changed dirty flag of Tracked vector. More...
 
 MADARA_MAKE_SUPPORT_TEST (is_dirty, p,(is_dirty(*p), clear_dirty(*p)))
 Trait to test for an is_dirty overload for a given type. More...
 
 MADARA_MAKE_SUPPORT_TEST (is_all_dirty, p,(is_all_dirty(*p), clear_dirty(*p)))
 Trait to test for an is_all_dirty overload for a given type. More...
 
 MADARA_MAKE_SUPPORT_TEST (is_size_dirty, p,(is_size_dirty(*p), clear_dirty(*p)))
 Trait to test for an is_size_dirty overload for a given type. More...
 
 MADARA_MAKE_SUPPORT_TEST (indexed_is_dirty, p,(is_dirty(*p, 0), clear_dirty(*p, 0)))
 Trait to test for an indexed_is_dirty overload for given type. More...
 
 MADARA_MAKE_SUPPORT_TEST (get_value, p,(set_value(*p, get_value(*p))))
 Trait to test for get_/set_value overloads for given type. More...
 
 MADARA_MAKE_SUPPORT_TEST (indexed_get_value, p,(set_value(*p, 0, get_value(*p, 0))))
 Trait to test for indexed get_/set_value overloads for given type. More...
 
 MADARA_MAKE_SUPPORT_TEST (const_iter, p,(p->cbegin(), p->cend()))
 Trait to test if type supports const iterator methods. More...
 
 MADARA_MAKE_SUPPORT_TEST (size, p,(p->size()))
 Trait to test if type supports a size method. More...
 
 MADARA_MAKE_SUPPORT_TEST (knowledge_cast, p,(knowledge_cast(get_value(*p)), knowledge_cast< typename std::decay< decltype(get_value(*p))>::type >(std::declval< KnowledgeRecord >())))
 Trait to test if type supports knowledge_cast (both to and from) More...
 
 MADARA_MAKE_SUPPORT_TEST (self_eq, p,(get_value(*p)==get_value(*p), get_value(*p)!=get_value(*p)))
 Trait to test if type supports equality testing (values of same type) More...
 
template<class T >
auto operator! (const Tracked< T > &lhs) -> decltype(!lhs.get())
 
template<class T , class U >
auto operator!= (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()!=rhs.get())
 
template<class T , class U >
auto operator!= (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()!=std::forward< U >(rhs))
 
template<class T , class U >
auto operator!= (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)!=rhs.get())
 
template<class T , class U >
auto operator% (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()%rhs.get())
 
template<class T , class U >
auto operator% (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()%std::forward< U >(rhs))
 
template<class T , class U >
auto operator% (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)%rhs.get())
 
template<class T , class U >
auto operator%= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()%=rhs.get())
 
template<class T , class U >
auto operator%= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()%=std::forward< U >(rhs))
 
template<class T , class U >
auto operator%= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs%=rhs.get())
 
template<class T , class U >
auto operator& (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()&rhs.get())
 
template<class T , class U >
auto operator& (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()&std::forward< U >(rhs))
 
template<class T , class U >
auto operator& (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)&rhs.get())
 
template<class T , class U >
auto operator&= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()&=rhs.get())
 
template<class T , class U >
auto operator&= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()&=std::forward< U >(rhs))
 
template<class T , class U >
auto operator&= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs &=rhs.get())
 
template<class T , class U >
auto operator* (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()*rhs.get())
 
template<class T , class U >
auto operator* (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()*std::forward< U >(rhs))
 
template<class T , class U >
auto operator* (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)*rhs.get())
 
template<class T , class U >
auto operator*= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()*=rhs.get())
 
template<class T , class U >
auto operator*= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs *=rhs.get())
 
template<class T , class U >
auto operator*= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()*=std::forward< U >(rhs))
 
template<class T , class U >
auto operator+ (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()+rhs.get())
 
template<class T , class U >
auto operator+ (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()+std::forward< U >(rhs))
 
template<class T , class U >
auto operator+ (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)+rhs.get())
 
template<class T >
auto operator+ (const Tracked< T > &lhs) -> decltype(+lhs.get())
 
template<class T >
auto operator++ (Tracked< T > &lhs) -> decltype(++lhs.get_mut())
 
template<class T >
auto operator++ (Tracked< T > &lhs, int) -> decltype(lhs.get_mut()++)
 
template<class T , class U >
auto operator+= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()+=rhs.get())
 
template<class T , class U >
auto operator+= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()+=std::forward< U >(rhs))
 
template<class T , class U >
auto operator+= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs+=rhs.get())
 
template<class T , class U >
auto operator- (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()-rhs.get())
 
template<class T , class U >
auto operator- (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()-std::forward< U >(rhs))
 
template<class T , class U >
auto operator- (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)-rhs.get())
 
template<class T >
auto operator- (const Tracked< T > &lhs) -> decltype(-lhs.get())
 
template<class T >
auto operator-- (Tracked< T > &lhs) -> decltype(--lhs.get_mut())
 
template<class T >
auto operator-- (Tracked< T > &lhs, int) -> decltype(lhs.get_mut()--)
 
template<class T , class U >
auto operator-= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()-=rhs.get())
 
template<class T , class U >
auto operator-= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()-=std::forward< U >(rhs))
 
template<class T , class U >
auto operator-= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs-=rhs.get())
 
template<class T , class U >
auto operator/ (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()/rhs.get())
 
template<class T , class U >
auto operator/ (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()/std::forward< U >(rhs))
 
template<class T , class U >
auto operator/ (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)/rhs.get())
 
template<class T , class U >
auto operator/= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()/=std::forward< U >(rhs))
 
template<class T , class U >
auto operator/= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()/=rhs.get())
 
template<class T , class U >
auto operator/= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs/=rhs.get())
 
template<class T , class U >
auto operator< (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()< rhs.get())
 
template<class T , class U >
auto operator< (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()< std::forward< U >(rhs))
 
template<class T , class U >
auto operator< (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)< rhs.get())
 
template<class T , class U >
auto operator<< (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()<< std::forward< U >(rhs))
 
template<class T , class U >
auto operator<< (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()<< rhs.get())
 
template<class T , class U >
auto operator<< (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)<< rhs.get())
 
template<class T , class U >
auto operator<<= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()<<=rhs.get())
 
template<class T , class U >
auto operator<<= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()<<=std::forward< U >(rhs))
 
template<class T , class U >
auto operator<<= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs<<=rhs.get())
 
template<class T , class U >
auto operator<= (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()<=rhs.get())
 
template<class T , class U >
auto operator<= (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()<=std::forward< U >(rhs))
 
template<class T , class U >
auto operator<= (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)<=rhs.get())
 
template<class T , class U >
auto operator== (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()==std::forward< U >(rhs))
 
template<class T , class U >
auto operator== (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()==rhs.get())
 
template<class T , class U >
auto operator== (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)==rhs.get())
 
template<class T , class U >
auto operator> (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get() >std::forward< U >(rhs))
 
template<class T , class U >
auto operator> (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs) >rhs.get())
 
template<class T , class U >
auto operator> (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get() >rhs.get())
 
template<class T , class U >
auto operator>= (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs) >=rhs.get())
 
template<class T , class U >
auto operator>= (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get() >=rhs.get())
 
template<class T , class U >
auto operator>= (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get() >=std::forward< U >(rhs))
 
template<class T , class U >
auto operator>> (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get() >>std::forward< U >(rhs))
 
template<class T , class U >
auto operator>> (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs) >>rhs.get())
 
template<class T , class U >
auto operator>> (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get() >>rhs.get())
 
template<class T , class U >
auto operator>>= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut() >>=std::forward< U >(rhs))
 
template<class T , class U >
auto operator>>= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs >>=rhs.get())
 
template<class T , class U >
auto operator>>= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut() >>=rhs.get())
 
template<class T , class U >
auto operator^ (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()^rhs.get())
 
template<class T , class U >
auto operator^ (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)^rhs.get())
 
template<class T , class U >
auto operator^ (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()^std::forward< U >(rhs))
 
template<class T , class U >
auto operator^= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs^=rhs.get())
 
template<class T , class U >
auto operator^= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()^=std::forward< U >(rhs))
 
template<class T , class U >
auto operator^= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()^=rhs.get())
 
template<class T , class U >
auto operator| (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()|rhs.get())
 
template<class T , class U >
auto operator| (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)|rhs.get())
 
template<class T , class U >
auto operator| (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()|std::forward< U >(rhs))
 
template<class T , class U >
auto operator|= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()|=std::forward< U >(rhs))
 
template<class T , class U >
auto operator|= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()|=rhs.get())
 
template<class T , class U >
auto operator|= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs|=rhs.get())
 
template<class T >
auto operator~ (const Tracked< T > &lhs) -> decltype(~lhs.get())
 
template<typename T >
void set_value (T &t, const T &v)
 Fallback definition of set_value; simply passes through the value. More...
 
template<typename T , typename V >
void set_value (std::vector< T > &t, size_t i, V v)
 General definition of set_value with index. More...
 
template<typename T >
void set_value (Tracked< T > &t, decltype(get_value(t.get())) v)
 Set value of Tracked type. More...
 
void set_value (Tracked< std::string > &t, size_t i, char v)
 Set value of given index of Tracked string type. More...
 
template<typename T >
void set_value (Tracked< std::vector< T >> &t, size_t i, const T &v)
 Set value at index of Tracked vector. More...
 
template<class T >
Tracked< typename std::decay< T >::typetrack (T &&val)
 Create a tracked version of a given object. More...
 

Detailed Description

Namespace holding Read-Compute-Write based abstractions for knowledge base access.

For normal use, refer to

See also
Transaction and
Tracked.

See https://sourceforge.net/p/madara/wiki/ReadComputeWrite/ for details.

Typedef Documentation

Definition at line 302 of file Tracked.h.

Definition at line 305 of file Tracked.h.

Definition at line 327 of file Tracked.h.

Definition at line 863 of file Tracked.h.

Definition at line 326 of file Tracked.h.

Definition at line 319 of file Tracked.h.

Definition at line 321 of file Tracked.h.

Definition at line 323 of file Tracked.h.

Definition at line 317 of file Tracked.h.

Definition at line 307 of file Tracked.h.

typedef Tracked<std::vector<int64_t> > madara::knowledge::rcw::TrackedIntVector

Definition at line 862 of file Tracked.h.

Definition at line 308 of file Tracked.h.

Definition at line 328 of file Tracked.h.

Definition at line 309 of file Tracked.h.

Definition at line 311 of file Tracked.h.

Definition at line 306 of file Tracked.h.

Definition at line 529 of file Tracked.h.

Definition at line 320 of file Tracked.h.

Definition at line 322 of file Tracked.h.

Definition at line 324 of file Tracked.h.

Definition at line 318 of file Tracked.h.

Definition at line 310 of file Tracked.h.

Definition at line 313 of file Tracked.h.

Definition at line 314 of file Tracked.h.

Definition at line 315 of file Tracked.h.

Definition at line 312 of file Tracked.h.

Function Documentation

template<typename T >
void madara::knowledge::rcw::clear_dirty ( Tracked< T > &  t)

Clears dirty flag of Tracked types.

Definition at line 540 of file Tracked.h.

template<typename T >
void madara::knowledge::rcw::clear_dirty ( std::vector< Tracked< T >> &  t,
size_t  i 
)

Clears dirty flag of given index of vector of Tracked types.

Definition at line 554 of file Tracked.h.

template<typename T >
void madara::knowledge::rcw::clear_dirty ( Tracked< std::vector< T >> &  t,
size_t  i 
)

Clear dirty flag at index of Tracked vector.

Definition at line 843 of file Tracked.h.

template<typename T >
const T& madara::knowledge::rcw::get_value ( const T &  t)

Fallback definition of get_value; simply passes through the value.

Definition at line 34 of file BaseTracker.h.

template<typename T >
auto madara::knowledge::rcw::get_value ( const std::vector< T > &  t,
size_t  i 
) -> decltype(get_value(t[i]))

General definition of get_value with index.

Definition at line 48 of file BaseTracker.h.

template<typename T >
auto madara::knowledge::rcw::get_value ( const Tracked< T > &  t) -> decltype(get_value(t.get()))

Get value of Tracked type.

Definition at line 561 of file Tracked.h.

char madara::knowledge::rcw::get_value ( const Tracked< std::string > &  t,
size_t  i 
)

Get value of given index of Tracked string type.

Definition at line 574 of file Tracked.h.

template<typename T >
const T& madara::knowledge::rcw::get_value ( const Tracked< std::vector< T >> &  t,
size_t  i 
)

Get value at index of Tracked vector.

Definition at line 850 of file Tracked.h.

template<typename T >
bool madara::knowledge::rcw::is_all_dirty ( const Tracked< std::vector< T >> &  t)

Return global dirty flag of Tracked vector.

Definition at line 829 of file Tracked.h.

template<typename T >
bool madara::knowledge::rcw::is_dirty ( const Tracked< T > &  t)

Returns dirty flag of Tracked types.

Definition at line 533 of file Tracked.h.

template<typename T >
bool madara::knowledge::rcw::is_dirty ( const std::vector< Tracked< T >> &  t,
size_t  i 
)

Returns dirty flag of given index of vector of Tracked types.

Definition at line 547 of file Tracked.h.

template<typename T >
bool madara::knowledge::rcw::is_dirty ( const Tracked< std::vector< T >> &  t,
size_t  i 
)

Return dirty flag at index of Tracked vector.

Definition at line 822 of file Tracked.h.

template<typename T >
bool madara::knowledge::rcw::is_size_dirty ( const Tracked< std::vector< T >> &  t)

Return size changed dirty flag of Tracked vector.

Definition at line 836 of file Tracked.h.

madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST ( is_dirty  ,
,
(is_dirty(*p), clear_dirty(*p))   
)

Trait to test for an is_dirty overload for a given type.

madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST ( is_all_dirty  ,
,
(is_all_dirty(*p), clear_dirty(*p))   
)

Trait to test for an is_all_dirty overload for a given type.

madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST ( is_size_dirty  ,
,
(is_size_dirty(*p), clear_dirty(*p))   
)

Trait to test for an is_size_dirty overload for a given type.

madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST ( indexed_is_dirty  ,
,
(is_dirty(*p, 0), clear_dirty(*p, 0))   
)

Trait to test for an indexed_is_dirty overload for given type.

madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST ( get_value  ,
,
(set_value(*p, get_value(*p)))   
)

Trait to test for get_/set_value overloads for given type.

madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST ( indexed_get_value  ,
,
(set_value(*p, 0, get_value(*p, 0)))   
)

Trait to test for indexed get_/set_value overloads for given type.

madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST ( const_iter  ,
,
(p->cbegin(), p->cend())   
)

Trait to test if type supports const iterator methods.

madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST ( size  ,
,
(p->size())   
)

Trait to test if type supports a size method.

madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST ( knowledge_cast  ,
,
(knowledge_cast(get_value(*p)), knowledge_cast< typename std::decay< decltype(get_value(*p))>::type >(std::declval< KnowledgeRecord >()))   
)

Trait to test if type supports knowledge_cast (both to and from)

madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST ( self_eq  ,
,
(get_value(*p)==get_value(*p), get_value(*p)!=get_value(*p))   
)

Trait to test if type supports equality testing (values of same type)

template<class T >
auto madara::knowledge::rcw::operator! ( const Tracked< T > &  lhs) -> decltype( ! lhs.get() )

Definition at line 292 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator!= ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() != rhs.get() )

Definition at line 245 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator!= ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() != std::forward<U>(rhs) )

Definition at line 245 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator!= ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) != rhs.get() )

Definition at line 245 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator% ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() % rhs.get() )

Definition at line 278 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator% ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() % std::forward<U>(rhs) )

Definition at line 278 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator% ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) % rhs.get() )

Definition at line 278 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator%= ( Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get_mut() %= rhs.get() )

Definition at line 278 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator%= ( Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get_mut() %= std::forward<U>(rhs) )

Definition at line 278 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator%= ( T &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs %= rhs.get() )

Definition at line 278 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator& ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() & rhs.get() )

Definition at line 279 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator& ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() & std::forward<U>(rhs) )

Definition at line 279 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator& ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) & rhs.get() )

Definition at line 279 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator&= ( Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get_mut() &= rhs.get() )

Definition at line 279 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator&= ( Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get_mut() &= std::forward<U>(rhs) )

Definition at line 279 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator&= ( T &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs &= rhs.get() )

Definition at line 279 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator* ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() * rhs.get() )

Definition at line 276 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator* ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() * std::forward<U>(rhs) )

Definition at line 276 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator* ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) * rhs.get() )

Definition at line 276 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator*= ( Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get_mut() *= rhs.get() )

Definition at line 276 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator*= ( T &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs *= rhs.get() )

Definition at line 276 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator*= ( Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get_mut() *= std::forward<U>(rhs) )

Definition at line 276 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator+ ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() + rhs.get() )

Definition at line 274 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator+ ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() + std::forward<U>(rhs) )

Definition at line 274 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator+ ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) + rhs.get() )

Definition at line 274 of file Tracked.h.

template<class T >
auto madara::knowledge::rcw::operator+ ( const Tracked< T > &  lhs) -> decltype( + lhs.get() )

Definition at line 290 of file Tracked.h.

template<class T >
auto madara::knowledge::rcw::operator++ ( Tracked< T > &  lhs) -> decltype( ++ lhs.get_mut() )

Definition at line 301 of file Tracked.h.

template<class T >
auto madara::knowledge::rcw::operator++ ( Tracked< T > &  lhs,
int   
) -> decltype( lhs.get_mut() ++ )

Definition at line 301 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator+= ( Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get_mut() += rhs.get() )

Definition at line 274 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator+= ( Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get_mut() += std::forward<U>(rhs) )

Definition at line 274 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator+= ( T &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs += rhs.get() )

Definition at line 274 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator- ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() - rhs.get() )

Definition at line 275 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator- ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() - std::forward<U>(rhs) )

Definition at line 275 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator- ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) - rhs.get() )

Definition at line 275 of file Tracked.h.

template<class T >
auto madara::knowledge::rcw::operator- ( const Tracked< T > &  lhs) -> decltype( - lhs.get() )

Definition at line 291 of file Tracked.h.

template<class T >
auto madara::knowledge::rcw::operator-- ( Tracked< T > &  lhs) -> decltype( -- lhs.get_mut() )

Definition at line 302 of file Tracked.h.

template<class T >
auto madara::knowledge::rcw::operator-- ( Tracked< T > &  lhs,
int   
) -> decltype( lhs.get_mut() -- )

Definition at line 302 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator-= ( Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get_mut() -= rhs.get() )

Definition at line 275 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator-= ( Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get_mut() -= std::forward<U>(rhs) )

Definition at line 275 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator-= ( T &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs -= rhs.get() )

Definition at line 275 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator/ ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() / rhs.get() )

Definition at line 277 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator/ ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() / std::forward<U>(rhs) )

Definition at line 277 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator/ ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) / rhs.get() )

Definition at line 277 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator/= ( Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get_mut() /= std::forward<U>(rhs) )

Definition at line 277 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator/= ( Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get_mut() /= rhs.get() )

Definition at line 277 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator/= ( T &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs /= rhs.get() )

Definition at line 277 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator< ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() < rhs.get() )

Definition at line 248 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator< ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() < std::forward<U>(rhs) )

Definition at line 248 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator< ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) < rhs.get() )

Definition at line 248 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator<< ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() << std::forward<U>(rhs) )

Definition at line 282 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator<< ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() << rhs.get() )

Definition at line 282 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator<< ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) << rhs.get() )

Definition at line 282 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator<<= ( Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get_mut() <<= rhs.get() )

Definition at line 282 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator<<= ( Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get_mut() <<= std::forward<U>(rhs) )

Definition at line 282 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator<<= ( T &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs <<= rhs.get() )

Definition at line 282 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator<= ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() <= rhs.get() )

Definition at line 246 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator<= ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() <= std::forward<U>(rhs) )

Definition at line 246 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator<= ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) <= rhs.get() )

Definition at line 246 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator== ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() == std::forward<U>(rhs) )

Definition at line 244 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator== ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() == rhs.get() )

Definition at line 244 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator== ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) == rhs.get() )

Definition at line 244 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator> ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() > std::forward<U>(rhs) )

Definition at line 249 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator> ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) > rhs.get() )

Definition at line 249 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator> ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() > rhs.get() )

Definition at line 249 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator>= ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) >= rhs.get() )

Definition at line 247 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator>= ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() >= rhs.get() )

Definition at line 247 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator>= ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() >= std::forward<U>(rhs) )

Definition at line 247 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator>> ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() >> std::forward<U>(rhs) )

Definition at line 283 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator>> ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) >> rhs.get() )

Definition at line 283 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator>> ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() >> rhs.get() )

Definition at line 283 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator>>= ( Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get_mut() >>= std::forward<U>(rhs) )

Definition at line 283 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator>>= ( T &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs >>= rhs.get() )

Definition at line 283 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator>>= ( Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get_mut() >>= rhs.get() )

Definition at line 283 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator^ ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() ^ rhs.get() )

Definition at line 281 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator^ ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) ^ rhs.get() )

Definition at line 281 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator^ ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() ^ std::forward<U>(rhs) )

Definition at line 281 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator^= ( T &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs ^= rhs.get() )

Definition at line 281 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator^= ( Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get_mut() ^= std::forward<U>(rhs) )

Definition at line 281 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator^= ( Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get_mut() ^= rhs.get() )

Definition at line 281 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator| ( const Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get() | rhs.get() )

Definition at line 280 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator| ( T &&  lhs,
const Tracked< U > &  rhs 
) -> decltype( std::forward<T>(lhs) | rhs.get() )

Definition at line 280 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator| ( const Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get() | std::forward<U>(rhs) )

Definition at line 280 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator|= ( Tracked< T > &  lhs,
U &&  rhs 
) -> decltype( lhs.get_mut() |= std::forward<U>(rhs) )

Definition at line 280 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator|= ( Tracked< T > &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs.get_mut() |= rhs.get() )

Definition at line 280 of file Tracked.h.

template<class T , class U >
auto madara::knowledge::rcw::operator|= ( T &  lhs,
const Tracked< U > &  rhs 
) -> decltype( lhs |= rhs.get() )

Definition at line 280 of file Tracked.h.

template<class T >
auto madara::knowledge::rcw::operator~ ( const Tracked< T > &  lhs) -> decltype( ~ lhs.get() )

Definition at line 293 of file Tracked.h.

template<typename T >
void madara::knowledge::rcw::set_value ( T &  t,
const T &  v 
)

Fallback definition of set_value; simply passes through the value.

Definition at line 41 of file BaseTracker.h.

template<typename T , typename V >
void madara::knowledge::rcw::set_value ( std::vector< T > &  t,
size_t  i,
v 
)

General definition of set_value with index.

Definition at line 56 of file BaseTracker.h.

template<typename T >
void madara::knowledge::rcw::set_value ( Tracked< T > &  t,
decltype(get_value(t.get()))  v 
)

Set value of Tracked type.

Definition at line 568 of file Tracked.h.

void madara::knowledge::rcw::set_value ( Tracked< std::string > &  t,
size_t  i,
char  v 
)

Set value of given index of Tracked string type.

Definition at line 581 of file Tracked.h.

template<typename T >
void madara::knowledge::rcw::set_value ( Tracked< std::vector< T >> &  t,
size_t  i,
const T &  v 
)

Set value at index of Tracked vector.

Definition at line 857 of file Tracked.h.

template<class T >
Tracked<typename std::decay<T>::type> madara::knowledge::rcw::track ( T &&  val)

Create a tracked version of a given object.

Parameters
valthe value to track

Definition at line 225 of file Tracked.h.