AuboCaps  0.6.0
program_contribution_configuration.h
Go to the documentation of this file.
1 #ifndef AUBO_SCOPE_CONTRIBUTION_CONFIGURATION_H
2 #define AUBO_SCOPE_CONTRIBUTION_CONFIGURATION_H
3 
4 #include <any>
5 #include <vector>
6 #include <functional>
7 
9 
10 namespace arcs {
11 namespace aubo_scope {
12 
13 ARCS_CLASS_FORWARD(ProgramContributionConfiguration);
14 
15 /**
16  * Provides access to configure the properties of an installation node
17  * contribution/
18  */
20 {
21 public:
25 
26  /**
27  * If set to <code>true</code> it is possible for the program node to have
28  * child nodes.
29  *
30  * <p>
31  * The default value is <code>false</code>.
32  * </p>
33  *
34  * @param childrenAllowed determines whether this node can have child nodes
35  */
36  void setChildrenAllowed(bool childrenAllowed);
37  void setChildrenAllowedOnly(const std::vector<std::string> &childrenList);
38 
39  /**
40  * If set to <code>false</code> this program node will not appear in the
41  * Program Tab in AuboScope and can not be inserted in the program tree by
42  * the end user. It can only be inserted programmatically using the
43  * {@link ProgramNodeFactory}. This
44  * also means, it can not be inserted using copy/paste of that node
45  * directly. It can however be inserted by copy/paste of an ancestor of such
46  * a node.
47  *
48  * <p>
49  * The default value is <code>true</code>.
50  * </p>
51  *
52  * @param userInsertable determines whether the end user can insert this
53  * node
54  */
55  void setUserInsertable(bool userInsertable);
56 
57  /**
58  * If set to <code>true</code> it is not possible for the end user to create
59  * new program nodes of this type. Loading of existing programs will however
60  * still be supported for this program node.
61  *
62  * <p>
63  * The default value is <code>false</code>.
64  * </p>
65  *
66  * @param deprecated determines whether this node is deprecated
67  */
68  void setDeprecated(bool deprecated);
69 
70  /**
71  * Set the display order id for this type of program node contribution. This
72  * makes it possible to specify how all the program node contributions from
73  * a AuboCap should be ordered/sorted in AuboScope.
74  *
75  * <p>
76  * All program node contributions from a AuboCap will be grouped together
77  * and sorted (in ascending order) according to their display order id.
78  * </p>
79  *
80  * <p>
81  * The default value is 0.0. If the display order id for all program node
82  * contributions in a AuboCap have the default value, the standard built-in
83  * sorting in AuboScope will be used.
84  * </p>
85  *
86  * @param displayOrderId Determines the display order of the AuboCap program
87  * node type
88  */
89  void setDisplayOrderId(double displayOrderId);
90 
91  /**
92  * <p>
93  * Configure whether or not the end user is allowed to set a breakpoint on
94  * or single step the AuboCap program node.
95  * </p>
96  *
97  * <p>
98  * The default value is <code>true</code>.
99  * </p>
100  *
101  * @param isBreakpointAllowed <code>true</code> if it should be allowed to
102  * set a breakpoint on or single step this AuboCap program node. If it
103  * should be disallowed, the value must be <code>false</code>.
104  */
105  void setAllowBreakpointOnNode(bool isBreakpointAllowed);
106 
107  /**
108  * <p>
109  * Configure whether or not the end user is allowed to set a breakpoint on
110  * or single step any of the child nodes in the sub-tree under the AuboCap
111  * program node. Note that it will only be possible to set a breakpoint on a
112  * child node if the child node itself supports breakpoints.
113  * </p>
114  *
115  * <p>
116  * The default value is <code>false</code>.
117  * </p>
118  *
119  * @param isBreakpointOnChildNodesAllowed <code>true</code> if it should be
120  * allowed to set a breakpoint on or single step any of the child nodes in
121  * the sub-tree under this AuboCap program node. If it should be disallowed,
122  * the value must be <code>false</code>.
123  */
125  bool isBreakpointOnChildNodesAllowed);
126 
127  /**
128  * <p>
129  * Configure whether or not the end user can start the program from the
130  * AuboCap program node when it is selected in the program tree.
131  * </p>
132  *
133  * <p>
134  * The default value is <code>true</code>.
135  * </p>
136  *
137  * @param isStartFromNodeAllowed <code>true</code> if it should be allowed
138  * to start the program directly from this AuboCap program node. If it
139  * should be disallowed, the value must be <code>false</code>.
140  *
141  */
142  void setAllowStartFromNode(bool isStartFromNodeAllowed);
143 
144  /**
145  * <p>
146  * Configure whether or not the end user can start the program directly from
147  * any selected child node in the sub-tree under the AuboCap program node.
148  * Note that it will only be possible to start from a selected child node if
149  * the child node itself supports starting from the child node.
150  * </p>
151  *
152  * <p>
153  * The default value is <code>false</code>.
154  * </p>
155  *
156  * @param isStartFromChildNodesAllowed <code>true</code> if it should be
157  * allowed to start the program directly from any child program node. If it
158  * should be disallowed, the value must be <code>false</code>..
159  */
161  bool isStartFromChildNodesAllowed);
162 
163  /**
164  * Configure parent node of this node. End user cannot insert this node to
165  *
166  * The default value is <code>""</code>.
167  * @param parentNodeName
168  */
170  const std::vector<std::string> &parentNodeNames);
171 
172 private:
174  friend class DataSwitch;
175  void *d_{ nullptr };
176 };
177 
178 } // namespace aubo_scope
179 } // namespace arcs
180 
181 #endif // AUBO_SCOPE_CONTRIBUTION_CONFIGURATION_H
void setUserInsertable(bool userInsertable)
If set to false this program node will not appear in the Program Tab in AuboScope and can not be inse...
ARCS_CLASS_FORWARD(GripForceCapability)
void setAllowStartFromChildNodesInSubtree(bool isStartFromChildNodesAllowed)
Provides access to configure the properties of an installation node contribution/.
void setChildrenAllowed(bool childrenAllowed)
If set to true it is possible for the program node to have child nodes.
void setDisplayOrderId(double displayOrderId)
Set the display order id for this type of program node contribution.
void setDeprecated(bool deprecated)
If set to true it is not possible for the end user to create new program nodes of this type...
void setAllowBreakpointOnNode(bool isBreakpointAllowed)
void setAllowInsertOnlyIntoNodes(const std::vector< std::string > &parentNodeNames)
Configure parent node of this node.
void setAllowStartFromNode(bool isStartFromNodeAllowed)
void setChildrenAllowedOnly(const std::vector< std::string > &childrenList)
void setAllowBreakpointOnChildNodesInSubtree(bool isBreakpointOnChildNodesAllowed)