MADARA
3.4.1
ListNode.cpp
Go to the documentation of this file.
1
2
#ifndef _MADARA_NO_KARL_
3
4
#include "
madara/expression/Visitor.h
"
5
#include "
madara/expression/ListNode.h
"
6
#include "
madara/utility/Utility.h
"
7
8
#include <string>
9
#include <sstream>
10
11
madara::expression::ListNode::ListNode
(
12
madara::knowledge::ThreadSafeContext
& context)
13
:
ComponentNode
(context.get_logger()), list_()
14
{
15
}
16
17
madara::expression::ListNode::~ListNode
()
18
{
19
// do not clean up record_. Let the context clean that up.
20
}
21
22
void
madara::expression::ListNode::accept
(
Visitor
& visitor)
const
23
{
24
visitor.
visit
(*
this
);
25
}
26
27
madara::knowledge::KnowledgeRecord
madara::expression::ListNode::item
()
const
28
{
29
return
madara::knowledge::KnowledgeRecord
(
30
madara::knowledge::KnowledgeRecord::Integer
(list_.size()));
31
}
32
36
madara::knowledge::KnowledgeRecord
madara::expression::ListNode::prune
(
37
bool
& can_change)
38
{
39
// a variable is one of very few nodes that can change over time and
40
// cannot be pruned
41
can_change =
true
;
42
43
return
madara::knowledge::KnowledgeRecord
(
44
madara::knowledge::KnowledgeRecord::Integer
(list_.size()));
45
}
46
49
madara::knowledge::KnowledgeRecord
madara::expression::ListNode::evaluate
(
50
const
madara::knowledge::KnowledgeUpdateSettings
&
/*settings*/
)
51
{
52
return
madara::knowledge::KnowledgeRecord
(
53
madara::knowledge::KnowledgeRecord::Integer
(list_.size()));
54
}
55
56
#endif
// _MADARA_NO_KARL_
ListNode.h
Utility.h
KnowledgeRecord
madara::knowledge::KnowledgeRecord KnowledgeRecord
Definition:
VariableCompareNode.cpp:8
Visitor.h
madara::expression::ComponentNode
An abstract base class defines a simple abstract implementation of an expression tree node.
Definition:
ComponentNode.h:37
madara::expression::ListNode::evaluate
virtual madara::knowledge::KnowledgeRecord evaluate(const madara::knowledge::KnowledgeUpdateSettings &settings)
Evaluates the node and its children.
Definition:
ListNode.cpp:49
madara::expression::ListNode::~ListNode
virtual ~ListNode(void)
Dtor.
Definition:
ListNode.cpp:17
madara::expression::ListNode::item
virtual madara::knowledge::KnowledgeRecord item(void) const
Return the item stored in the node.
Definition:
ListNode.cpp:27
madara::expression::ListNode::accept
virtual void accept(Visitor &visitor) const
Define the accept() operation used for the Visitor pattern.
Definition:
ListNode.cpp:22
madara::expression::ListNode::ListNode
ListNode(madara::knowledge::ThreadSafeContext &context)
Ctor.
Definition:
ListNode.cpp:11
madara::expression::ListNode::prune
virtual madara::knowledge::KnowledgeRecord prune(bool &can_change)
Prune the tree of unnecessary nodes.
Definition:
ListNode.cpp:36
madara::expression::Visitor
Abstract base class for all visitors to all classes that derive from ComponentNode.
Definition:
Visitor.h:93
madara::expression::Visitor::visit
virtual void visit(const LeafNode &node)=0
Visit a LeafNode.
madara::knowledge::KnowledgeRecord
This class encapsulates an entry in a KnowledgeBase.
Definition:
KnowledgeRecord.h:88
madara::knowledge::KnowledgeRecord::Integer
int64_t Integer
Definition:
KnowledgeRecord.h:131
madara::knowledge::KnowledgeUpdateSettings
Settings for applying knowledge updates.
Definition:
KnowledgeUpdateSettings.h:24
madara::knowledge::ThreadSafeContext
This class stores variables and their values for use by any entity needing state information in a thr...
Definition:
ThreadSafeContext.h:76
include
madara
expression
ListNode.cpp
Generated on Sat Jan 20 2024 00:40:26 for MADARA by
1.9.1