MADARA  3.2.3
madara::knowledge Namespace Reference

Provides functions and classes for the distributed knowledge base. More...

Namespaces

 containers
 Provides container classes for fast knowledge base access and mutation.
 
 rcw
 Namespace holding Read-Compute-Write based abstractions for knowledge base access.
 
 tags
 Tags to specify what type to construct in KnowledgeRecord forwarding constructors.
 

Classes

class  AggregateFilter
 This class stores a function definition. More...
 
class  CheckpointSettings
 Holds settings for checkpoints to load or save. More...
 
class  CompiledExpression
 Compiled, optimized KaRL logic. More...
 
class  ContextGuard
 A thread-safe guard for a context or knowledge base. More...
 
class  EvalSettings
 Encapsulates settings for an evaluation statement. More...
 
class  FileHeader
 Defines a file header which is the default for KaRL checkpointing. More...
 
class  FileSettings
 This class provides an interface into the KnowledgeEngine that governs how files are prioritized, modified, and handled. More...
 
class  Function
 This class stores a function definition. More...
 
class  KnowledgeBase
 This class provides a distributed knowledge base to users. More...
 
class  KnowledgeBaseImpl
 This class provides a distributed knowledge base implementation. More...
 
class  KnowledgeRecord
 This class encapsulates an entry in a KnowledgeBase. More...
 
class  KnowledgeRecordFilters
 Provides map of data types to a filter chain to apply to the data. More...
 
class  KnowledgeReferenceSettings
 Settings for applying knowledge updates. More...
 
class  KnowledgeRequirements
 Holds settings requirements for knowledge, usually in copying. More...
 
class  KnowledgeUpdateSettings
 Settings for applying knowledge updates. More...
 
class  ThreadSafeContext
 This class stores variables and their values for use by any entity needing state information in a thread safe way. More...
 
class  type
 helper type for specifying template type parameters using a function argument instead of inside explicit "<...>". More...
 
class  VariableReference
 Optimized reference to a variable within the knowledge base. More...
 
struct  VariableReferenceMapCompare
 
class  Variables
 Provides an interface for external functions into the MADARA KaRL variable settings. More...
 
class  WaitSettings
 Encapsulates settings for a wait statement. More...
 

Typedefs

typedef std::list< AggregateFilterAggregateFilters
 Typedef for a list of aggregate filters. More...
 
typedef std::map< std::string, bool > CopySet
 Typedef for set of copyable keys. More...
 
typedef std::list< FunctionFilterChain
 a chain of filters More...
 
typedef std::map< uint32_t, FilterChainFilterMap
 a map of types to filter chain More...
 
typedef std::vector< KnowledgeRecordFunctionArguments
 
typedef std::map< std::string, FunctionFunctionMap
 
typedef std::string KnowledgeKey
 
typedef ::std::map< std::string, KnowledgeRecordKnowledgeMap
 
typedef ::std::map< std::string, KnowledgeRecord * > KnowledgeRecords
 
typedef ::std::vector< std::string > KnowledgeRules
 
typedef KnowledgeRecord KnowledgeValue
 
typedef ::std::vector< KnowledgeRecordKnowledgeVector
 
typedef std::vector< std::string > PrefixVector
 Typedef for vector of prefixes to use for a generic task. More...
 
typedef ::std::vector< std::string > StringVector
 
typedef madara::knowledge::KnowledgeRecord VALUE_TYPE
 
typedef std::map< const char *, VariableReference, VariableReferenceMapCompareVariableReferenceMap
 a map of variable references More...
 
typedef std::vector< VariableReferenceVariableReferences
 a vector of variable references More...
 

Enumerations

enum  { ASSIGNMENT = 0, MULTIPLE_ASSIGNMENT = 1 }
 

Functions

template<typename T >
void destruct (T &x)
 
template<class Out >
Out knowledge_cast (const KnowledgeRecord &in)
 Convert a KnowledgeRecord into a specified type. More...
 
template<class Out >
Out knowledge_cast (type< T > t, const KnowledgeRecord &in)
 Convert a KnowledgeRecord into a specified type, using the "type" helper struct to specify type. More...
 
template<class Out >
Out & knowledge_cast (const KnowledgeRecord &in, Out &out)
 Convert a KnowledgeRecord into a specified type, using an output parameter. More...
 
template<class In >
KnowledgeRecord knowledge_cast (const In &in)
 Convert a given value into a KnowledgeRecord. More...
 
uint32_t max_quality (const knowledge::VariableReferenceMap &records)
 
uint32_t max_quality (const KnowledgeRecords &records)
 Returns the maximum quality within the records. More...
 
bool operator!= (const char *l, const KnowledgeRecord &r)
 
bool operator!= (const KnowledgeRecord &l, const std::string &r)
 
bool operator!= (const std::string &l, const KnowledgeRecord &r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator!= (const KnowledgeRecord &l, const T &r) -> decltype(knowledge_cast< T >(l)!=r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator!= (const T &l, const KnowledgeRecord &r) -> decltype(l!=knowledge_cast< T >(r))
 
bool operator!= (const KnowledgeRecord &l, std::nullptr_t)
 
bool operator!= (const KnowledgeRecord &l, const char *r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator% (const KnowledgeRecord &l, const T &r) -> decltype(l%knowledge_cast(r))
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator% (const T &l, const KnowledgeRecord &r) -> decltype(knowledge_cast(l)%r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator%= (KnowledgeRecord &l, const T &r) -> decltype(l%=knowledge_cast(r))
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator* (const KnowledgeRecord &l, const T &r) -> decltype(l *knowledge_cast(r))
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator* (const T &l, const KnowledgeRecord &r) -> decltype(knowledge_cast(l)*r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator*= (KnowledgeRecord &l, const T &r) -> decltype(l *=knowledge_cast(r))
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator+ (const KnowledgeRecord &l, const T &r) -> decltype(l+knowledge_cast(r))
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator+ (const T &l, const KnowledgeRecord &r) -> decltype(knowledge_cast(l)+r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator+= (KnowledgeRecord &l, const T &r) -> decltype(l+=knowledge_cast(r))
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator- (const KnowledgeRecord &l, const T &r) -> decltype(l-knowledge_cast(r))
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator- (const T &l, const KnowledgeRecord &r) -> decltype(knowledge_cast(l)-r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator-= (KnowledgeRecord &l, const T &r) -> decltype(l-=knowledge_cast(r))
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator/ (const T &l, const KnowledgeRecord &r) -> decltype(knowledge_cast(l)/r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator/ (const KnowledgeRecord &l, const T &r) -> decltype(l/knowledge_cast(r))
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator/= (KnowledgeRecord &l, const T &r) -> decltype(l/=knowledge_cast(r))
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator< (const KnowledgeRecord &l, const T &r) -> decltype(knowledge_cast< T >(l)< r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator< (const T &l, const KnowledgeRecord &r) -> decltype(l< knowledge_cast< T >(r))
 
bool operator< (const KnowledgeRecord &l, std::nullptr_t)
 
bool operator< (const KnowledgeRecord &l, const char *r)
 
bool operator< (const char *l, const KnowledgeRecord &r)
 
bool operator< (const KnowledgeRecord &l, const std::string &r)
 
bool operator< (const std::string &l, const KnowledgeRecord &r)
 
std::ostream & operator<< (std::ostream &stream, const KnowledgeRecord &rhs)
 output stream buffering More...
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator<= (const KnowledgeRecord &l, const T &r) -> decltype(knowledge_cast< T >(l)<=r)
 
bool operator<= (const char *l, const KnowledgeRecord &r)
 
bool operator<= (const KnowledgeRecord &l, std::nullptr_t)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator<= (const T &l, const KnowledgeRecord &r) -> decltype(l<=knowledge_cast< T >(r))
 
bool operator<= (const KnowledgeRecord &l, const char *r)
 
bool operator<= (const KnowledgeRecord &l, const std::string &r)
 
bool operator<= (const std::string &l, const KnowledgeRecord &r)
 
bool operator== (const KnowledgeRecord &l, const char *r)
 
bool operator== (const KnowledgeRecord &l, std::nullptr_t)
 
bool operator== (const char *l, const KnowledgeRecord &r)
 
bool operator== (const KnowledgeRecord &l, const std::string &r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator== (const KnowledgeRecord &l, const T &r) -> decltype(knowledge_cast< T >(l)==r)
 
bool operator== (const std::string &l, const KnowledgeRecord &r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator== (const T &l, const KnowledgeRecord &r) -> decltype(l==knowledge_cast< T >(r))
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator> (const KnowledgeRecord &l, const T &r) -> decltype(knowledge_cast< T >(l) >r)
 
bool operator> (const KnowledgeRecord &l, const std::string &r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator> (const T &l, const KnowledgeRecord &r) -> decltype(l >knowledge_cast< T >(r))
 
bool operator> (const std::string &l, const KnowledgeRecord &r)
 
bool operator> (const char *l, const KnowledgeRecord &r)
 
bool operator> (const KnowledgeRecord &l, const char *r)
 
bool operator> (const KnowledgeRecord &l, std::nullptr_t)
 
bool operator>= (const char *l, const KnowledgeRecord &r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator>= (const KnowledgeRecord &l, const T &r) -> decltype(knowledge_cast< T >(l) >=r)
 
bool operator>= (const KnowledgeRecord &l, std::nullptr_t)
 
bool operator>= (const KnowledgeRecord &l, const std::string &r)
 
bool operator>= (const KnowledgeRecord &l, const char *r)
 
bool operator>= (const std::string &l, const KnowledgeRecord &r)
 
template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto operator>= (const T &l, const KnowledgeRecord &r) -> decltype(l >=knowledge_cast< T >(r))
 

Detailed Description

Provides functions and classes for the distributed knowledge base.

Main entry point to library.

Typedef Documentation

Typedef for a list of aggregate filters.

Definition at line 173 of file AggregateFilter.h.

typedef std::map<std::string, bool> madara::knowledge::CopySet

Typedef for set of copyable keys.

See also
copy. We use map instead of set so we are not wasting significant memory/time with copying the key to the value (a STL set uses the type as both the key and value).

Definition at line 60 of file ThreadSafeContext.h.

a chain of filters

Definition at line 41 of file KnowledgeRecordFilters.h.

typedef std::map<uint32_t, FilterChain> madara::knowledge::FilterMap

a map of types to filter chain

Definition at line 44 of file KnowledgeRecordFilters.h.

Definition at line 20 of file FunctionArguments.h.

typedef std::map<std::string, Function> madara::knowledge::FunctionMap

Definition at line 17 of file FunctionMap.h.

typedef std::string madara::knowledge::KnowledgeKey

Definition at line 1485 of file KnowledgeRecord.h.

typedef ::std::map< std::string, KnowledgeRecord> madara::knowledge::KnowledgeMap

Definition at line 1479 of file KnowledgeRecord.h.

typedef ::std::map< std::string, KnowledgeRecord *> madara::knowledge::KnowledgeRecords

Definition at line 1483 of file KnowledgeRecord.h.

typedef ::std::vector< std::string> madara::knowledge::KnowledgeRules

Definition at line 1481 of file KnowledgeRecord.h.

Definition at line 1480 of file KnowledgeRecord.h.

typedef std::vector<std::string> madara::knowledge::PrefixVector

Typedef for vector of prefixes to use for a generic task.

See also
copy.

Definition at line 65 of file ThreadSafeContext.h.

typedef ::std::vector< std::string> madara::knowledge::StringVector

Definition at line 1482 of file KnowledgeRecord.h.

a map of variable references

Definition at line 112 of file VariableReference.h.

a vector of variable references

Definition at line 101 of file VariableReference.h.

Enumeration Type Documentation

anonymous enum
Enumerator
ASSIGNMENT 
MULTIPLE_ASSIGNMENT 

Definition at line 8 of file UpdateTypes.h.

Function Documentation

template<typename T >
void madara::knowledge::destruct ( T &  x)
inline

Definition at line 860 of file KnowledgeRecord.inl.

template<class Out >
Out madara::knowledge::knowledge_cast ( const KnowledgeRecord in)
inline

Convert a KnowledgeRecord into a specified type.

Supports std::string, bool, all arithmetic primitives, and std::vector of arithmetic primitives. This is implemented using the appropriate "to_..." methods provided by KnowledgeRecord, so refer to those for details on type coercion.

Internally this overload calls the version which takes type<Out> as first parameter, so to support custom types, overload that form.

Template Parameters
Outthe type to try to convert to (must be specified explicitly)
Parameters
inthe KnowledgeRecord to read from
Returns
a value of type Out
template<class Out >
Out madara::knowledge::knowledge_cast ( type< T >  t,
const KnowledgeRecord in 
)
inline

Convert a KnowledgeRecord into a specified type, using the "type" helper struct to specify type.

Supports std::string, bool, all arithmetic primitives, and std::vector of arithmetic primitives. This is implemented using the appropriate "to_..." methods provided by KnowledgeRecord, so refer to those for details on type coercion.

To support custom types, overload this form with other Out types. These overloads should exist in the same namespace as the types themselves so they can be found with ADL.

Parameters
tan instance of the type helper struct to infer target type
inthe KnowledgeRecord to read from
Returns
a value of type Out
Template Parameters
Outthe type to try to convert to (inferred from t)
template<class Out >
Out& madara::knowledge::knowledge_cast ( const KnowledgeRecord in,
Out &  out 
)
inline

Convert a KnowledgeRecord into a specified type, using an output parameter.

Supports std::string, bool, all arithmetic primitives, and STL containers of arithmetic primitives. This is implemented using the appropriate "to_..." methods provided by KnowledgeRecord, so refer to those for details on type coercion.

For most types, this calls the form which takes a type struct, and returns by value, putting that value into out. For STL containers, it modifies those containers inplace. For resizable containers, such as std::vector, the container will be resized to fit the value. For unresizable containers, such as std::array and native C arrays, excess values will be discarded, and any extra values in the target will be zeroed.

Parameters
inthe KnowledgeRecord to read from
outoutput parameter to put converted value
Returns
a value of type Out
Template Parameters
Outthe type to try to convert to (inferred from out)
template<class In >
KnowledgeRecord madara::knowledge::knowledge_cast ( const In &  in)
inline

Convert a given value into a KnowledgeRecord.

Supports std::string, bool, all arithmetic primitives, and std::vector of arithmetic primitives.

Parameters
inthe value to convert
Returns
a new KnowledgeRecord initialized from in
Template Parameters
Inthe type to convert from (inferred from in)
uint32_t madara::knowledge::max_quality ( const knowledge::VariableReferenceMap records)
inline

Definition at line 60 of file VariableReference.inl.

uint32_t madara::knowledge::max_quality ( const KnowledgeRecords records)
inline

Returns the maximum quality within the records.

Parameters
recordsthe list of records to gauge quality of
Returns
the maximum quality within the list of records

Definition at line 832 of file KnowledgeRecord.inl.

bool madara::knowledge::operator!= ( const char *  l,
const KnowledgeRecord r 
)
inline

Definition at line 546 of file KnowledgeCast.h.

bool madara::knowledge::operator!= ( const KnowledgeRecord l,
const std::string &  r 
)
inline

Definition at line 546 of file KnowledgeCast.h.

bool madara::knowledge::operator!= ( const std::string &  l,
const KnowledgeRecord r 
)
inline

Definition at line 546 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator!= ( const KnowledgeRecord l,
const T &  r 
) -> decltype(knowledge_cast<T>(l) != r)
inline

Definition at line 546 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator!= ( const T &  l,
const KnowledgeRecord r 
) -> decltype(l != knowledge_cast<T>(r))
inline

Definition at line 546 of file KnowledgeCast.h.

bool madara::knowledge::operator!= ( const KnowledgeRecord l,
std::nullptr_t   
)
inline

Definition at line 546 of file KnowledgeCast.h.

bool madara::knowledge::operator!= ( const KnowledgeRecord l,
const char *  r 
)
inline

Definition at line 546 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator% ( const KnowledgeRecord l,
const T &  r 
) -> decltype(l % knowledge_cast(r))
inline

Definition at line 577 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator% ( const T &  l,
const KnowledgeRecord r 
) -> decltype(knowledge_cast(l) % r)
inline

Definition at line 577 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator%= ( KnowledgeRecord l,
const T &  r 
) -> decltype(l %= knowledge_cast(r))
inline

Definition at line 595 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator* ( const KnowledgeRecord l,
const T &  r 
) -> decltype(l * knowledge_cast(r))
inline

Definition at line 576 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator* ( const T &  l,
const KnowledgeRecord r 
) -> decltype(knowledge_cast(l) * r)
inline

Definition at line 576 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator*= ( KnowledgeRecord l,
const T &  r 
) -> decltype(l *= knowledge_cast(r))
inline

Definition at line 594 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator+ ( const KnowledgeRecord l,
const T &  r 
) -> decltype(l + knowledge_cast(r))
inline

Definition at line 573 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator+ ( const T &  l,
const KnowledgeRecord r 
) -> decltype(knowledge_cast(l) + r)
inline

Definition at line 573 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator+= ( KnowledgeRecord l,
const T &  r 
) -> decltype(l += knowledge_cast(r))
inline

Definition at line 591 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator- ( const KnowledgeRecord l,
const T &  r 
) -> decltype(l - knowledge_cast(r))
inline

Definition at line 574 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator- ( const T &  l,
const KnowledgeRecord r 
) -> decltype(knowledge_cast(l) - r)
inline

Definition at line 574 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator-= ( KnowledgeRecord l,
const T &  r 
) -> decltype(l -= knowledge_cast(r))
inline

Definition at line 592 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator/ ( const T &  l,
const KnowledgeRecord r 
) -> decltype(knowledge_cast(l) / r)
inline

Definition at line 575 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator/ ( const KnowledgeRecord l,
const T &  r 
) -> decltype(l / knowledge_cast(r))
inline

Definition at line 575 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator/= ( KnowledgeRecord l,
const T &  r 
) -> decltype(l /= knowledge_cast(r))
inline

Definition at line 593 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator< ( const KnowledgeRecord l,
const T &  r 
) -> decltype(knowledge_cast<T>(l) < r)
inline

Definition at line 549 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator< ( const T &  l,
const KnowledgeRecord r 
) -> decltype(l < knowledge_cast<T>(r))
inline

Definition at line 549 of file KnowledgeCast.h.

bool madara::knowledge::operator< ( const KnowledgeRecord l,
std::nullptr_t   
)
inline

Definition at line 549 of file KnowledgeCast.h.

bool madara::knowledge::operator< ( const KnowledgeRecord l,
const char *  r 
)
inline

Definition at line 549 of file KnowledgeCast.h.

bool madara::knowledge::operator< ( const char *  l,
const KnowledgeRecord r 
)
inline

Definition at line 549 of file KnowledgeCast.h.

bool madara::knowledge::operator< ( const KnowledgeRecord l,
const std::string &  r 
)
inline

Definition at line 549 of file KnowledgeCast.h.

bool madara::knowledge::operator< ( const std::string &  l,
const KnowledgeRecord r 
)
inline

Definition at line 549 of file KnowledgeCast.h.

std::ostream& madara::knowledge::operator<< ( std::ostream &  stream,
const KnowledgeRecord rhs 
)
inline

output stream buffering

Definition at line 555 of file KnowledgeRecord.inl.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator<= ( const KnowledgeRecord l,
const T &  r 
) -> decltype(knowledge_cast<T>(l) <= r)
inline

Definition at line 547 of file KnowledgeCast.h.

bool madara::knowledge::operator<= ( const char *  l,
const KnowledgeRecord r 
)
inline

Definition at line 547 of file KnowledgeCast.h.

bool madara::knowledge::operator<= ( const KnowledgeRecord l,
std::nullptr_t   
)
inline

Definition at line 547 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator<= ( const T &  l,
const KnowledgeRecord r 
) -> decltype(l <= knowledge_cast<T>(r))
inline

Definition at line 547 of file KnowledgeCast.h.

bool madara::knowledge::operator<= ( const KnowledgeRecord l,
const char *  r 
)
inline

Definition at line 547 of file KnowledgeCast.h.

bool madara::knowledge::operator<= ( const KnowledgeRecord l,
const std::string &  r 
)
inline

Definition at line 547 of file KnowledgeCast.h.

bool madara::knowledge::operator<= ( const std::string &  l,
const KnowledgeRecord r 
)
inline

Definition at line 547 of file KnowledgeCast.h.

bool madara::knowledge::operator== ( const KnowledgeRecord l,
const char *  r 
)
inline

Definition at line 545 of file KnowledgeCast.h.

bool madara::knowledge::operator== ( const KnowledgeRecord l,
std::nullptr_t   
)
inline

Definition at line 545 of file KnowledgeCast.h.

bool madara::knowledge::operator== ( const char *  l,
const KnowledgeRecord r 
)
inline

Definition at line 545 of file KnowledgeCast.h.

bool madara::knowledge::operator== ( const KnowledgeRecord l,
const std::string &  r 
)
inline

Definition at line 545 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator== ( const KnowledgeRecord l,
const T &  r 
) -> decltype(knowledge_cast<T>(l) == r)
inline

Definition at line 545 of file KnowledgeCast.h.

bool madara::knowledge::operator== ( const std::string &  l,
const KnowledgeRecord r 
)
inline

Definition at line 545 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator== ( const T &  l,
const KnowledgeRecord r 
) -> decltype(l == knowledge_cast<T>(r))
inline

Definition at line 545 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator> ( const KnowledgeRecord l,
const T &  r 
) -> decltype(knowledge_cast<T>(l) > r)
inline

Definition at line 550 of file KnowledgeCast.h.

bool madara::knowledge::operator> ( const KnowledgeRecord l,
const std::string &  r 
)
inline

Definition at line 550 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator> ( const T &  l,
const KnowledgeRecord r 
) -> decltype(l > knowledge_cast<T>(r))
inline

Definition at line 550 of file KnowledgeCast.h.

bool madara::knowledge::operator> ( const std::string &  l,
const KnowledgeRecord r 
)
inline

Definition at line 550 of file KnowledgeCast.h.

bool madara::knowledge::operator> ( const char *  l,
const KnowledgeRecord r 
)
inline

Definition at line 550 of file KnowledgeCast.h.

bool madara::knowledge::operator> ( const KnowledgeRecord l,
const char *  r 
)
inline

Definition at line 550 of file KnowledgeCast.h.

bool madara::knowledge::operator> ( const KnowledgeRecord l,
std::nullptr_t   
)
inline

Definition at line 550 of file KnowledgeCast.h.

bool madara::knowledge::operator>= ( const char *  l,
const KnowledgeRecord r 
)
inline

Definition at line 548 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator>= ( const KnowledgeRecord l,
const T &  r 
) -> decltype(knowledge_cast<T>(l) >= r)
inline

Definition at line 548 of file KnowledgeCast.h.

bool madara::knowledge::operator>= ( const KnowledgeRecord l,
std::nullptr_t   
)
inline

Definition at line 548 of file KnowledgeCast.h.

bool madara::knowledge::operator>= ( const KnowledgeRecord l,
const std::string &  r 
)
inline

Definition at line 548 of file KnowledgeCast.h.

bool madara::knowledge::operator>= ( const KnowledgeRecord l,
const char *  r 
)
inline

Definition at line 548 of file KnowledgeCast.h.

bool madara::knowledge::operator>= ( const std::string &  l,
const KnowledgeRecord r 
)
inline

Definition at line 548 of file KnowledgeCast.h.

template<typename T , typename std::enable_if<!std::is_convertible< T, KnowledgeRecord >::value &&std::is_fundamental< T >::value, void * >::type = nullptr>
auto madara::knowledge::operator>= ( const T &  l,
const KnowledgeRecord r 
) -> decltype(l >= knowledge_cast<T>(r))
inline

Definition at line 548 of file KnowledgeCast.h.