MADARA
3.4.1
SystemCallNode.h
Go to the documentation of this file.
1
/* -*- C++ -*- */
2
#ifndef _MADARA_SYSTEM_CALL_H_
3
#define _MADARA_SYSTEM_CALL_H_
4
5
#ifndef _MADARA_NO_KARL_
6
7
#include <string>
8
#include <stdexcept>
9
#include "
madara/knowledge/KnowledgeRecord.h
"
10
#include "
madara/utility/StdInt.h
"
11
#include "
madara/expression/CompositeTernaryNode.h
"
12
13
namespace
madara
14
{
15
namespace
expression
16
{
17
// Forward declaration.
18
class
Visitor;
19
24
class
SystemCallNode
:
public
CompositeTernaryNode
25
{
26
public
:
30
SystemCallNode
(
madara::knowledge::ThreadSafeContext
& context);
31
35
SystemCallNode
(
madara::knowledge::ThreadSafeContext
& context,
36
const
ComponentNodes
& nodes);
37
41
virtual
~SystemCallNode
(
void
);
42
47
virtual
madara::knowledge::KnowledgeRecord
item
(
void
)
const
;
48
54
virtual
madara::knowledge::KnowledgeRecord
prune
(
bool
& can_change) = 0;
55
60
virtual
madara::knowledge::KnowledgeRecord
evaluate
(
61
const
madara::knowledge::KnowledgeUpdateSettings
& settings) = 0;
62
67
virtual
void
accept
(
Visitor
& visitor)
const
;
68
69
protected
:
70
madara::knowledge::ThreadSafeContext
&
context_
;
71
};
72
}
73
}
74
75
#endif
// _MADARA_NO_KARL_
76
77
#endif
/* _MADARA_SYSTEM_CALL_H_ */
CompositeTernaryNode.h
KnowledgeRecord.h
StdInt.h
madara::expression::CompositeTernaryNode
Definition:
CompositeTernaryNode.h:26
madara::expression::SystemCallNode
Interface for a MADARA system call.
Definition:
SystemCallNode.h:25
madara::expression::SystemCallNode::accept
virtual void accept(Visitor &visitor) const
Accepts a visitor subclassed from the Visitor class.
Definition:
SystemCallNode.cpp:29
madara::expression::SystemCallNode::SystemCallNode
SystemCallNode(madara::knowledge::ThreadSafeContext &context)
Constructor.
Definition:
SystemCallNode.cpp:7
madara::expression::SystemCallNode::evaluate
virtual madara::knowledge::KnowledgeRecord evaluate(const madara::knowledge::KnowledgeUpdateSettings &settings)=0
Evaluates the expression tree.
madara::expression::SystemCallNode::prune
virtual madara::knowledge::KnowledgeRecord prune(bool &can_change)=0
Prunes the expression tree of unnecessary nodes.
madara::expression::SystemCallNode::context_
madara::knowledge::ThreadSafeContext & context_
Definition:
SystemCallNode.h:70
madara::expression::SystemCallNode::item
virtual madara::knowledge::KnowledgeRecord item(void) const
Returns the value of the node.
Definition:
SystemCallNode.cpp:22
madara::expression::SystemCallNode::~SystemCallNode
virtual ~SystemCallNode(void)
Destructor.
Definition:
SystemCallNode.cpp:20
madara::expression::Visitor
Abstract base class for all visitors to all classes that derive from ComponentNode.
Definition:
Visitor.h:93
madara::knowledge::KnowledgeRecord
This class encapsulates an entry in a KnowledgeBase.
Definition:
KnowledgeRecord.h:88
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
Copyright(c) 2020 Galois.
Definition:
AggregateFilter.h:31
include
madara
expression
SystemCallNode.h
Generated on Sat Jan 20 2024 00:40:26 for MADARA by
1.9.1