AuboStudio SDK 0.6.3

program_contribution_configuration.h
浏览该文件的文档.
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
8 #include <aubo_caps/domain/program/structure/tree_node.h>
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 */
19 class ProgramContributionConfiguration
20 {
21 public:
22 ProgramContributionConfiguration(ProgramContributionConfiguration &f);
23 ProgramContributionConfiguration(ProgramContributionConfiguration &&f);
24 virtual ~ProgramContributionConfiguration();
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 */
124 void setAllowBreakpointOnChildNodesInSubtree(
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 */
160 void setAllowStartFromChildNodesInSubtree(
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 */
169 void setAllowInsertOnlyIntoNodes(
170 const std::vector<std::string> &parentNodeNames);
171
172 private:
173 ProgramContributionConfiguration();
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
arcs::aubo_scope::ProgramContributionConfiguration
Provides access to configure the properties of an installation node contribution/
Definition: program_contribution_configuration.h:20
arcs::aubo_scope::ProgramContributionConfiguration::setAllowBreakpointOnChildNodesInSubtree
void setAllowBreakpointOnChildNodesInSubtree(bool isBreakpointOnChildNodesAllowed)
arcs::aubo_scope::ProgramContributionConfiguration::~ProgramContributionConfiguration
virtual ~ProgramContributionConfiguration()
arcs::aubo_scope::ProgramContributionConfiguration::d_
void * d_
Definition: program_contribution_configuration.h:175
arcs::aubo_scope::ProgramContributionConfiguration::setAllowStartFromNode
void setAllowStartFromNode(bool isStartFromNodeAllowed)
arcs::aubo_scope::ProgramContributionConfiguration::ProgramContributionConfiguration
ProgramContributionConfiguration(ProgramContributionConfiguration &f)
arcs::aubo_scope::ProgramContributionConfiguration::DataSwitch
friend class DataSwitch
Definition: program_contribution_configuration.h:174
arcs::aubo_scope::ProgramContributionConfiguration::setUserInsertable
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::aubo_scope::ProgramContributionConfiguration::setDisplayOrderId
void setDisplayOrderId(double displayOrderId)
Set the display order id for this type of program node contribution.
arcs::aubo_scope::ProgramContributionConfiguration::setChildrenAllowedOnly
void setChildrenAllowedOnly(const std::vector< std::string > &childrenList)
arcs::aubo_scope::ProgramContributionConfiguration::ProgramContributionConfiguration
ProgramContributionConfiguration(ProgramContributionConfiguration &&f)
arcs::aubo_scope::ProgramContributionConfiguration::setAllowInsertOnlyIntoNodes
void setAllowInsertOnlyIntoNodes(const std::vector< std::string > &parentNodeNames)
Configure parent node of this node.
arcs::aubo_scope::ProgramContributionConfiguration::setChildrenAllowed
void setChildrenAllowed(bool childrenAllowed)
If set to true it is possible for the program node to have child nodes.
arcs::aubo_scope::ProgramContributionConfiguration::ProgramContributionConfiguration
ProgramContributionConfiguration()
arcs::aubo_scope::ProgramContributionConfiguration::setAllowStartFromChildNodesInSubtree
void setAllowStartFromChildNodesInSubtree(bool isStartFromChildNodesAllowed)
arcs::aubo_scope::ProgramContributionConfiguration::setAllowBreakpointOnNode
void setAllowBreakpointOnNode(bool isBreakpointAllowed)
arcs::aubo_scope::ProgramContributionConfiguration::setDeprecated
void setDeprecated(bool deprecated)
If set to true it is not possible for the end user to create new program nodes of this type.
arcs::aubo_scope::ARCS_CLASS_FORWARD
ARCS_CLASS_FORWARD(GripForceCapability)
arcs
Definition: contribution_provider.h:7
tree_node.h