MADARA  3.1.8
BaseTracker.h File Reference
#include <string>
#include <vector>
#include <map>
#include <list>
#include <type_traits>
#include <initializer_list>
#include "madara/knowledge/KnowledgeRecord.h"
#include "madara/knowledge/Functions.h"
#include "madara/utility/stdint.h"
#include "madara/MADARA_export.h"
#include "madara/knowledge/VariableReference.h"
#include "madara/knowledge/KnowledgeBase.h"
#include "madara/knowledge/knowledge_cast.h"
#include "madara/knowledge/ContextGuard.h"
Include dependency graph for BaseTracker.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  madara::knowledge::rcw::BaseTracker
 Base type for Trackers. More...
 
struct  madara::knowledge::rcw::supports_const_iter< T >
 
struct  madara::knowledge::rcw::supports_const_iter_impl< T >
 Trait to test if type supports const iterator methods. More...
 
struct  madara::knowledge::rcw::supports_get_value< T >
 
struct  madara::knowledge::rcw::supports_get_value_impl< T >
 Trait to test for get_/set_value overloads for given type. More...
 
struct  madara::knowledge::rcw::supports_indexed_get_value< T >
 
struct  madara::knowledge::rcw::supports_indexed_get_value_impl< T >
 Trait to test for indexed get_/set_value overloads for given type. More...
 
struct  madara::knowledge::rcw::supports_indexed_is_dirty< T >
 
struct  madara::knowledge::rcw::supports_indexed_is_dirty_impl< T >
 Trait to test for an indexed_is_dirty overload for given type. More...
 
struct  madara::knowledge::rcw::supports_is_all_dirty< T >
 
struct  madara::knowledge::rcw::supports_is_all_dirty_impl< T >
 Trait to test for an is_all_dirty overload for a given type. More...
 
struct  madara::knowledge::rcw::supports_is_dirty< T >
 
struct  madara::knowledge::rcw::supports_is_dirty_impl< T >
 Trait to test for an is_dirty overload for a given type. More...
 
struct  madara::knowledge::rcw::supports_is_size_dirty< T >
 
struct  madara::knowledge::rcw::supports_is_size_dirty_impl< T >
 Trait to test for an is_size_dirty overload for a given type. More...
 
struct  madara::knowledge::rcw::supports_knowledge_cast< T >
 
struct  madara::knowledge::rcw::supports_knowledge_cast_impl< T >
 Trait to test if type supports knowledge_cast (both to and from) More...
 
struct  madara::knowledge::rcw::supports_self_eq< T >
 
struct  madara::knowledge::rcw::supports_self_eq_impl< T >
 Trait to test if type supports equality testing (values of same type) More...
 
struct  madara::knowledge::rcw::supports_size< T >
 
struct  madara::knowledge::rcw::supports_size_impl< T >
 Trait to test if type supports a size method. More...
 

Namespaces

 madara
 Copyright (c) 2015 Carnegie Mellon University.
 
 madara::knowledge
 Provides functions and classes for the distributed knowledge base.
 
 madara::knowledge::rcw
 Namespace holding Read-Compute-Write based abstractions for knowledge base access.
 

Macros

#define MADARA_MAKE_SUPPORT_TEST(name, var, expr)
 Macro which generates feature testing traits, to allow enabling features based on what a given type supports. More...
 

Functions

template<typename T >
const T & madara::knowledge::rcw::get_value (const T &t)
 Fallback definition of get_value; simply passes through the value. More...
 
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. More...
 
template<typename T >
void madara::knowledge::rcw::set_value (T &t, const T &v)
 Fallback definition of set_value; simply passes through the value. More...
 
template<typename T , typename V >
void madara::knowledge::rcw::set_value (std::vector< T > &t, size_t i, V v)
 General definition of set_value with index. More...
 

Macro Definition Documentation

#define MADARA_MAKE_SUPPORT_TEST (   name,
  var,
  expr 
)
Value:
template <typename T> \
struct supports_##name##_impl { \
template<typename U> static auto test(U *var) -> decltype((expr), std::true_type()); \
template<typename U> static auto test(...) -> std::false_type; \
using type = decltype(test<T>(0)); \
}; \
template <typename T> struct supports_##name : supports_##name##_impl<T>::type {}

Macro which generates feature testing traits, to allow enabling features based on what a given type supports.

The tests provide ::value member which is true if the given expr can compile correctly with the given type; false otherwise

Definition at line 166 of file BaseTracker.h.