MADARA  3.4.1
madara::expression::CompositeArrayReference Class Reference

Defines a terminal node of that references the current value stored in a variable. More...

#include <CompositeArrayReference.h>

Inheritance diagram for madara::expression::CompositeArrayReference:
madara::expression::CompositeUnaryNode madara::expression::ComponentNode

Public Member Functions

 CompositeArrayReference (const std::string &key, ComponentNode *index, madara::knowledge::ThreadSafeContext &context)
 Constructor. More...
 
virtual void accept (Visitor &visitor) const
 Define the accept() operation used for the Visitor pattern. More...
 
knowledge::KnowledgeRecord dec (const madara::knowledge::KnowledgeUpdateSettings &settings=knowledge::KnowledgeUpdateSettings())
 Sets the value stored in the node. More...
 
virtual madara::knowledge::KnowledgeRecord evaluate (const madara::knowledge::KnowledgeUpdateSettings &settings)
 Evaluates the node and its children. More...
 
std::string expand_key (void) const
 Expands the key (if necessary). More...
 
madara::knowledge::KnowledgeRecordget_record (void)
 Retrieves the underlying knowledge::KnowledgeRecord in the context (useful for system calls). More...
 
knowledge::KnowledgeRecord inc (const madara::knowledge::KnowledgeUpdateSettings &settings=knowledge::KnowledgeUpdateSettings())
 Sets the value stored in the node. More...
 
virtual madara::knowledge::KnowledgeRecord item (void) const
 Return the item stored in the node. More...
 
const std::string & key (void) const
 Return the variable key. More...
 
virtual ComponentNodeleft (void) const
 Returns the left expression. More...
 
virtual madara::knowledge::KnowledgeRecord prune (bool &can_change)
 Prune the tree of unnecessary nodes. More...
 
virtual ComponentNoderight (void) const
 Returns the right expression. More...
 
int set (const madara::knowledge::KnowledgeRecord &value, const madara::knowledge::KnowledgeUpdateSettings &settings=knowledge::KnowledgeUpdateSettings())
 Sets the value stored in the node. More...
 
int set (const madara::knowledge::KnowledgeRecord::Integer &value, const madara::knowledge::KnowledgeUpdateSettings &settings=knowledge::KnowledgeUpdateSettings())
 Sets the value stored in the node. More...
 
int set (double value, const madara::knowledge::KnowledgeUpdateSettings &settings=knowledge::KnowledgeUpdateSettings())
 Sets the value stored in the node. More...
 
void set_logger (logger::Logger &logger)
 Sets the logger for printing errors and debugging info. More...
 

Protected Attributes

logger::Loggerlogger_
 handle the context More...
 
ComponentNoderight_
 Right expression. More...
 

Private Attributes

madara::knowledge::ThreadSafeContextcontext_
 
std::string key_
 Key for retrieving value of this variable. More...
 
bool key_expansion_necessary_
 Expansion necessary. More...
 
std::vector< std::string > pivot_list_
 
madara::knowledge::VariableReference ref_
 
std::vector< std::string > splitters_
 
std::vector< std::string > tokens_
 

Detailed Description

Defines a terminal node of that references the current value stored in a variable.

Definition at line 28 of file CompositeArrayReference.h.

Constructor & Destructor Documentation

◆ CompositeArrayReference()

madara::expression::CompositeArrayReference::CompositeArrayReference ( const std::string &  key,
ComponentNode index,
madara::knowledge::ThreadSafeContext context 
)

Constructor.

Parameters
keythe variable name
indexindex within the array
contextthe context the variable is contained in

Definition at line 12 of file CompositeArrayReference.cpp.

Member Function Documentation

◆ accept()

void madara::expression::CompositeArrayReference::accept ( Visitor visitor) const
virtual

Define the accept() operation used for the Visitor pattern.

Reimplemented from madara::expression::ComponentNode.

Definition at line 64 of file CompositeArrayReference.cpp.

◆ dec()

madara::knowledge::KnowledgeRecord madara::expression::CompositeArrayReference::dec ( const madara::knowledge::KnowledgeUpdateSettings settings = knowledge::KnowledgeUpdateSettings())

Sets the value stored in the node.

Definition at line 180 of file CompositeArrayReference.cpp.

◆ evaluate()

madara::knowledge::KnowledgeRecord madara::expression::CompositeArrayReference::evaluate ( const madara::knowledge::KnowledgeUpdateSettings settings)
virtual

Evaluates the node and its children.

This does not prune any of the expression tree, and is much faster than the prune function

Implements madara::expression::ComponentNode.

Definition at line 136 of file CompositeArrayReference.cpp.

◆ expand_key()

std::string madara::expression::CompositeArrayReference::expand_key ( void  ) const

Expands the key (if necessary).

This allow for keys to be defined with other variables inserted (e.g. var{.id} with .id = 2 expands to var2)

Definition at line 25 of file CompositeArrayReference.cpp.

◆ get_record()

madara::knowledge::KnowledgeRecord* madara::expression::CompositeArrayReference::get_record ( void  )
inline

Retrieves the underlying knowledge::KnowledgeRecord in the context (useful for system calls).

Returns
the knowledge::KnowledgeRecord inside of the context

Definition at line 94 of file CompositeArrayReference.h.

◆ inc()

madara::knowledge::KnowledgeRecord madara::expression::CompositeArrayReference::inc ( const madara::knowledge::KnowledgeUpdateSettings settings = knowledge::KnowledgeUpdateSettings())

Sets the value stored in the node.

Definition at line 222 of file CompositeArrayReference.cpp.

◆ item()

madara::knowledge::KnowledgeRecord madara::expression::CompositeArrayReference::item ( void  ) const
virtual

Return the item stored in the node.

Reimplemented from madara::expression::ComponentNode.

Definition at line 70 of file CompositeArrayReference.cpp.

◆ key()

const std::string & madara::expression::CompositeArrayReference::key ( void  ) const

Return the variable key.

Definition at line 173 of file CompositeArrayReference.cpp.

◆ left()

madara::expression::ComponentNode * madara::expression::ComponentNode::left ( void  ) const
virtualinherited

Returns the left expression.

Returns
a pointer to the left expression

Reimplemented in madara::expression::CompositeBinaryNode.

Definition at line 29 of file ComponentNode.cpp.

◆ prune()

madara::knowledge::KnowledgeRecord madara::expression::CompositeArrayReference::prune ( bool &  can_change)
virtual

Prune the tree of unnecessary nodes.

Returns evaluation of the node and sets can_change appropriately. if this node can be changed, that means it shouldn't be pruned.

Implements madara::expression::ComponentNode.

Definition at line 88 of file CompositeArrayReference.cpp.

◆ right()

madara::expression::ComponentNode * madara::expression::CompositeUnaryNode::right ( void  ) const
virtualinherited

Returns the right expression.

Returns
a pointer to the right expression

Reimplemented from madara::expression::ComponentNode.

Definition at line 23 of file CompositeUnaryNode.cpp.

◆ set() [1/3]

int madara::expression::CompositeArrayReference::set ( const madara::knowledge::KnowledgeRecord value,
const madara::knowledge::KnowledgeUpdateSettings settings = knowledge::KnowledgeUpdateSettings() 
)

Sets the value stored in the node.

Definition at line 262 of file CompositeArrayReference.cpp.

◆ set() [2/3]

int madara::expression::CompositeArrayReference::set ( const madara::knowledge::KnowledgeRecord::Integer value,
const madara::knowledge::KnowledgeUpdateSettings settings = knowledge::KnowledgeUpdateSettings() 
)

Sets the value stored in the node.

Definition at line 276 of file CompositeArrayReference.cpp.

◆ set() [3/3]

int madara::expression::CompositeArrayReference::set ( double  value,
const madara::knowledge::KnowledgeUpdateSettings settings = knowledge::KnowledgeUpdateSettings() 
)

Sets the value stored in the node.

Definition at line 306 of file CompositeArrayReference.cpp.

◆ set_logger()

void madara::expression::ComponentNode::set_logger ( logger::Logger logger)
inherited

Sets the logger for printing errors and debugging info.

Parameters
loggerthe logger to use

Definition at line 48 of file ComponentNode.cpp.

Member Data Documentation

◆ context_

madara::knowledge::ThreadSafeContext& madara::expression::CompositeArrayReference::context_
private

Definition at line 103 of file CompositeArrayReference.h.

◆ key_

std::string madara::expression::CompositeArrayReference::key_
private

Key for retrieving value of this variable.

Definition at line 106 of file CompositeArrayReference.h.

◆ key_expansion_necessary_

bool madara::expression::CompositeArrayReference::key_expansion_necessary_
private

Expansion necessary.

Definition at line 111 of file CompositeArrayReference.h.

◆ logger_

logger::Logger* madara::expression::ComponentNode::logger_
protectedinherited

handle the context

Definition at line 96 of file ComponentNode.h.

◆ pivot_list_

std::vector<std::string> madara::expression::CompositeArrayReference::pivot_list_
private

Definition at line 115 of file CompositeArrayReference.h.

◆ ref_

madara::knowledge::VariableReference madara::expression::CompositeArrayReference::ref_
private

Definition at line 108 of file CompositeArrayReference.h.

◆ right_

ComponentNode* madara::expression::CompositeUnaryNode::right_
protectedinherited

Right expression.

Definition at line 42 of file CompositeUnaryNode.h.

◆ splitters_

std::vector<std::string> madara::expression::CompositeArrayReference::splitters_
private

Definition at line 113 of file CompositeArrayReference.h.

◆ tokens_

std::vector<std::string> madara::expression::CompositeArrayReference::tokens_
private

Definition at line 114 of file CompositeArrayReference.h.


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