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