AuboStudio SDK 0.6.3

persisted_variable.h
浏览该文件的文档.
1 #ifndef AUBO_SCOPE_PERSISTED_VARIABLE_H
2 #define AUBO_SCOPE_PERSISTED_VARIABLE_H
3
4 #include <aubo_caps/domain/variable/variable.h>
5
6 namespace arcs {
7 namespace aubo_scope {
8 ARCS_CLASS_FORWARD(PersistedVariable);
9
10 /**
11 * This interface represents variables stored with the installation. These
12 * variables are defined in the installation and will exist even when a robot is
13 * turned off and on.
14 */
15 class ARCS_ABI_EXPORT PersistedVariable : public Variable
16 {
17 public:
18 PersistedVariable(PersistedVariable &f);
19 PersistedVariable(PersistedVariable &&f);
20 virtual ~PersistedVariable();
21
22 /**
23 * A persisted variable can not be guaranteed to be present. This method can
24 * be used to determine, if the variable is present.
25 *
26 *The persisted variable will not be present, if the end user loads a
27 *different installation which does not contain the variable, or if the
28 *variable is deleted by the end user.
29 *
30 * A program node storing a <code>PersistedVariable</code> in its Data
31 *Model will be undefined if the variable cannot be resolved (i.e. the
32 *variable is not present).
33 *
34 * @return <code>true</code>, if this persisted variable is resolvable (i.e.
35 * present in the current installation).
36 */
37 bool isResolvable();
38
39 protected:
40 PersistedVariable();
41
42 private:
43 friend class DataSwitch;
44 void *d_{ nullptr };
45 };
46
47 struct PersistedVariableFilter
48 {
49 bool operator()(VariablePtr var)
50 {
51 return std::dynamic_pointer_cast<PersistedVariable>(var) != nullptr &&
52 var->getType() == Variable::VALUE_PERSISTED;
53 }
54 };
55
56 } // namespace aubo_scope
57 } // namespace arcs
58 #endif // AUBO_SCOPE_PERSISTED_VARIABLE_H
ARCS_ABI_EXPORT
#define ARCS_ABI_EXPORT
Definition: class_forward.h:16
arcs::aubo_scope::PersistedVariable
This interface represents variables stored with the installation.
Definition: persisted_variable.h:16
arcs::aubo_scope::PersistedVariable::isResolvable
bool isResolvable()
A persisted variable can not be guaranteed to be present.
arcs::aubo_scope::PersistedVariable::PersistedVariable
PersistedVariable()
arcs::aubo_scope::PersistedVariable::PersistedVariable
PersistedVariable(PersistedVariable &&f)
arcs::aubo_scope::PersistedVariable::~PersistedVariable
virtual ~PersistedVariable()
arcs::aubo_scope::PersistedVariable::PersistedVariable
PersistedVariable(PersistedVariable &f)
arcs::aubo_scope::Variable
Definition: variable.h:17
arcs::aubo_scope::Variable::VALUE_PERSISTED
@ VALUE_PERSISTED
Definition: variable.h:48
arcs::aubo_scope::ARCS_CLASS_FORWARD
ARCS_CLASS_FORWARD(GripForceCapability)
arcs
Definition: contribution_provider.h:7
arcs::aubo_scope::PersistedVariableFilter
Definition: persisted_variable.h:48
arcs::aubo_scope::PersistedVariableFilter::operator()
bool operator()(VariablePtr var)
Definition: persisted_variable.h:49
variable.h