AuboCaps  0.6.0
persisted_variable.h
Go to the documentation of this file.
1 #ifndef AUBO_SCOPE_PERSISTED_VARIABLE_H
2 #define AUBO_SCOPE_PERSISTED_VARIABLE_H
3 
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  */
16 {
17 public:
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:
41 
42 private:
43  friend class DataSwitch;
44  void *d_{ nullptr };
45 };
46 
48 {
49  bool operator()(VariablePtr var)
50  {
51  return std::dynamic_pointer_cast<PersistedVariable>(var) != nullptr &&
53  }
54 };
55 
56 } // namespace aubo_scope
57 } // namespace arcs
58 #endif // AUBO_SCOPE_PERSISTED_VARIABLE_H
ARCS_CLASS_FORWARD(GripForceCapability)
This interface represents variables stored with the installation.
#define ARCS_ABI_EXPORT
Definition: class_forward.h:16