MADARA
3.4.1
SystemCallSetFixed.cpp
Go to the documentation of this file.
1
2
#ifndef _MADARA_NO_KARL_
3
4
#include "
madara/expression/LeafNode.h
"
5
#include "
madara/expression/SystemCallSetFixed.h
"
6
#include "
madara/knowledge/ThreadSafeContext.h
"
7
#include "
madara/expression/Visitor.h
"
8
9
madara::expression::SystemCallSetFixed::SystemCallSetFixed
(
10
madara::knowledge::ThreadSafeContext
& context,
const
ComponentNodes
& nodes)
11
:
SystemCallNode
(context, nodes)
12
{
13
}
14
15
// Dtor
16
madara::expression::SystemCallSetFixed::~SystemCallSetFixed
(
void
) {}
17
18
madara::knowledge::KnowledgeRecord
madara::expression::SystemCallSetFixed::item
(
19
void
)
const
20
{
21
return
madara::knowledge::KnowledgeRecord
(nodes_.size());
22
}
23
27
madara::knowledge::KnowledgeRecord
28
madara::expression::SystemCallSetFixed::prune
(
bool
& can_change)
29
{
30
// this node never changes, but we may be able to prune what's inside
31
can_change =
true
;
32
33
madara::knowledge::KnowledgeRecord
result;
34
35
// this node should never have arguments
36
if
(nodes_.size() > 0)
37
{
38
madara_logger_ptr_log
(logger_,
logger::LOG_MINOR
,
39
"madara::expression::SystemCallSetFixed: "
40
"SystemCallSetFixed:prune: no arguments should be supplied to "
41
"#set_fixed(). Deleting arguments to reclaim memory.\n"
);
42
43
// delete any arguments that the user specified
44
for
(ComponentNodes::iterator i = nodes_.begin(); i != nodes_.end(); ++i)
45
{
46
delete
*i;
47
}
48
49
nodes_.clear();
50
}
51
52
return
result;
53
}
54
57
madara::knowledge::KnowledgeRecord
58
madara::expression::SystemCallSetFixed::evaluate
(
59
const
madara::knowledge::KnowledgeUpdateSettings
&
/*settings*/
)
60
{
61
knowledge::KnowledgeRecord
return_value;
62
63
madara_logger_ptr_log
(logger_,
logger::LOG_MINOR
,
64
"madara::expression::SystemCallSetFixed: "
65
"System call set_fixed is setting double output format to std::fixed.\n"
);
66
67
knowledge::KnowledgeRecord::set_fixed
();
68
69
return
return_value;
70
}
71
72
// accept a visitor
73
void
madara::expression::SystemCallSetFixed::accept
(
74
madara::expression::Visitor
& visitor)
const
75
{
76
visitor.
visit
(*
this
);
77
}
78
79
#endif
// _MADARA_NO_KARL_
LeafNode.h
madara_logger_ptr_log
#define madara_logger_ptr_log(loggering, level,...)
Fast version of the madara::logger::log method for Logger pointers.
Definition:
Logger.h:41
SystemCallSetFixed.h
ThreadSafeContext.h
KnowledgeRecord
madara::knowledge::KnowledgeRecord KnowledgeRecord
Definition:
VariableCompareNode.cpp:8
Visitor.h
madara::expression::SystemCallNode
Interface for a MADARA system call.
Definition:
SystemCallNode.h:25
madara::expression::SystemCallSetFixed::prune
virtual madara::knowledge::KnowledgeRecord prune(bool &can_change)
Prunes the expression tree of unnecessary nodes.
Definition:
SystemCallSetFixed.cpp:28
madara::expression::SystemCallSetFixed::evaluate
virtual madara::knowledge::KnowledgeRecord evaluate(const madara::knowledge::KnowledgeUpdateSettings &settings)
Evaluates the expression tree.
Definition:
SystemCallSetFixed.cpp:58
madara::expression::SystemCallSetFixed::accept
virtual void accept(Visitor &visitor) const
Accepts a visitor subclassed from the Visitor class.
Definition:
SystemCallSetFixed.cpp:73
madara::expression::SystemCallSetFixed::~SystemCallSetFixed
virtual ~SystemCallSetFixed(void)
Destructor.
Definition:
SystemCallSetFixed.cpp:16
madara::expression::SystemCallSetFixed::item
virtual madara::knowledge::KnowledgeRecord item(void) const
Returns the value of the node.
Definition:
SystemCallSetFixed.cpp:18
madara::expression::SystemCallSetFixed::SystemCallSetFixed
SystemCallSetFixed(madara::knowledge::ThreadSafeContext &context, const ComponentNodes &nodes)
Constructor.
Definition:
SystemCallSetFixed.cpp:9
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::set_fixed
static void set_fixed(void)
Sets the output format for doubles to std::fixed.
Definition:
KnowledgeRecord.cpp:42
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
madara::expression::ComponentNodes
std::deque< ComponentNode * > ComponentNodes
a vector of Component Nodes
Definition:
ComponentNode.h:100
madara::logger::LOG_MINOR
@ LOG_MINOR
Definition:
Logger.h:150
include
madara
expression
SystemCallSetFixed.cpp
Generated on Sat Jan 20 2024 00:40:26 for MADARA by
1.9.1