class.mark 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. .//============================================================================
  2. .// File: class.mark
  3. .//
  4. .// Description:
  5. .// This marking file is used to indicate xtUML class specialization(s)
  6. .// to the model compiler's translation engine.
  7. .//
  8. .// Notice:
  9. .//============================================================================
  10. .// Notes:
  11. .// (1) Marking is specified via archetype function invocation(s) in this file.
  12. .// A function invocation statement MUST be specified on a single line.
  13. .// All indicated function input parameters must be supplied.
  14. .// (2) All quoted string parameters are case sensitive.
  15. .// (3) Comments in this file start with ".//".
  16. .// (4) Do not leave any blank lines in this file.
  17. .//============================================================================
  18. .//
  19. .//
  20. .//============================================================================
  21. .// Map xtUML Artifacts to Tasks/Threads
  22. .//
  23. .// Call MarkClassToTask to assign a class, subsystem or domain to
  24. .// a particular task.
  25. .//
  26. .// MarkClassToTask( "component", "ss_name", "class_key_letters", task_number )
  27. .//
  28. .// Where the input parameters are:
  29. .// component = name of component (domain) being marked
  30. .// ss_name = name of subsystem
  31. .// class_key_letters = key letters of the class.
  32. .// task_number = the number of the task to which the above is assigned
  33. .//
  34. .// NOTES:
  35. .// (1) To map a specific class, use "" for "ss_name"
  36. .// and provide the class key letters in "class_key_letters".
  37. .// (2) To map all classes in the subsystem to the given task, provide
  38. .// the subsystem name for "ss_name" and "*" for the "class_key_letters".
  39. .// (3) To mark all classes in the domain as mapped to a task, use "*"
  40. .// for "ss_name" and "class_key_letters".
  41. .//
  42. .// Examples:
  43. .// .invoke MarkClassToTask( "", "", "MP", 1 )
  44. .// .invoke MarkClassToTask( "GPS", "TRACKING", "*", 3 )
  45. .// .invoke MarkClassToTask( "*", "*", "*", 0 )
  46. .//============================================================================
  47. .//
  48. .//
  49. .//============================================================================
  50. .// MarkSystemObjectDefaultExtentSize( value )
  51. .//
  52. .// Where the input parameter(s) are:
  53. .// value = Default extent size for non-marked class extents.
  54. .//
  55. .// Example:
  56. .// .invoke MarkSystemObjectDefaultExtentSize( 4 )
  57. .//============================================================================
  58. .//
  59. .//
  60. .//============================================================================
  61. .// MarkObjectExtentSize( "component", "key_letters", value )
  62. .//
  63. .// Where the input parameter(s) are:
  64. .// component = name of component (domain) being marked
  65. .// key_letters = key letters of the initialization class.
  66. .// value = maximum extent size for the class.
  67. .//
  68. .// Example:
  69. .// .invoke MarkObjectExtentSize( "myDomain", "MY_OBJ", 20 )
  70. .//============================================================================
  71. .//
  72. .//
  73. .//============================================================================
  74. .// Disable Object Operation Semantics Translation
  75. .//
  76. .// To indicate that action semantics associated with an object's operations
  77. .// (SM transformers) should NOT be translated into ANSI C source code,
  78. .// use the following mark:
  79. .//
  80. .// MarkClassOperationTranslationOff( "component", "object_key_letters", "op_name" )
  81. .//
  82. .// Where the input parameters are:
  83. .// component = name of component (domain) being marked
  84. .// object_key_letters = Key letters of the object.
  85. .// op_name = Name of the UML operation.
  86. .//
  87. .// NOTES:
  88. .// (1) To disable semantics for all operations of an object, use "*"
  89. .// for "op_name".
  90. .// (2) To disable semantics for all operations of all objects in a
  91. .// domain, use "*", "*".
  92. .//
  93. .// Examples:
  94. .// .invoke MarkClassOperationTranslationOff( "Oven", "T", "Cooking_Initializing" )
  95. .// .invoke MarkClassOperationTranslationOff( "COMP1", "U_DATA", "*" )
  96. .// .invoke MarkClassOperationTranslationOff( "*", "*", "*" )
  97. .//============================================================================
  98. .//
  99. .//
  100. .//============================================================================
  101. .// Mark Class as Having Preexisting Instances Defined in Data
  102. .//
  103. .// To indicate that the given class (or group of classes) has
  104. .// preexisting instances defined in data, use the following mark:
  105. .//
  106. .// MarkPEIsDefinedInData( "component", "ss_name", "class_key_letters" )
  107. .//
  108. .// Where the input parameters are:
  109. .// component = name of component (domain) being marked
  110. .// ss_name = name of subsystem
  111. .// class_key_letters = key letters of the class.
  112. .//
  113. .// NOTES:
  114. .// (1) To enable PEIs for a specific class, use "" for "ss_name"
  115. .// and provide the class key letters in "class_key_letters".
  116. .// (2) To enable PEIs for all classes in the subsystem, provide
  117. .// the subsystem name for "ss_name" and "*" for
  118. .// the "class_key_letters".
  119. .// (3) To enable PEIs for all classes in the domain, use "*"
  120. .// for "ss_name" and "*" for "class_key_letters".
  121. .// (4) There is no harm in marking a class as having preexisting
  122. .// instances in data even if it does not. It will make it eligible
  123. .// for preexisting instances.
  124. .//
  125. .// Examples:
  126. .// .invoke MarkPEIsDefinedInData( "", "", "DOG" )
  127. .// .invoke MarkPEIsDefinedInData( "Lab", "EXP", "*" )
  128. .// .invoke MarkPEIsDefinedInData( "*", "*", "*" )
  129. .//============================================================================
  130. .//
  131. .//
  132. .//============================================================================
  133. .// Mark Class as Having a Static Instance Population
  134. .//
  135. .// To indicate that the given class (or group of classes) has
  136. .// a static (number of instances remains constant), use following mark:
  137. .//
  138. .// MarkStaticInstancePopulation( "component", "ss_name", "class_key_letters" )
  139. .//
  140. .// Where the input parameters are:
  141. .// component = name of component (domain) being marked
  142. .// ss_name = name of subsystem
  143. .// class_key_letters = key letters of the class.
  144. .//
  145. .// NOTES:
  146. .// (1) To enable a SIP for a specific class, use "" for "ss_name"
  147. .// and provide the class key letters in "class_key_letters".
  148. .// (2) To enable SIPs for all classes in the subsystem, provide
  149. .// the subsystem name for "ss_name" and "*" for the
  150. .// "class_key_letters".
  151. .// (3) To enable SIPs for all classes in the domain, use "*"
  152. .// for "ss_name" and "class_key_letters".
  153. .//
  154. .// Examples:
  155. .// .invoke MarkStaticInstancePopulation( "", "", "IMG" )
  156. .// .invoke MarkStaticInstancePopulation( "Imaging", "OCR", "*" )
  157. .// .invoke MarkStaticInstancePopulation( "*", "*", "*" )
  158. .//============================================================================
  159. .//
  160. .//
  161. .//============================================================================
  162. .// Mark Class as Being Read-Only
  163. .//
  164. .// To indicate that the given class (or group of classes) is made
  165. .// up of instances that are not writable, use the following mark:
  166. .//
  167. .// MarkReadOnly( "component", "ss_name", "class_key_letters" )
  168. .//
  169. .// Where the input parameters are:
  170. .// component = name of component (domain) being marked
  171. .// ss_name = name of subsystem
  172. .// class_key_letters = key letters of the class.
  173. .//
  174. .// NOTES:
  175. .// (1) To mark as read-only a specific class, use "" for "ss_name"
  176. .// and provide the class key letters in "class_key_letters".
  177. .// (2) To mark all classes in the subsystem as read-only, provide
  178. .// the subsystem name for "ss_name" and "*" for
  179. .// the "class_key_letters".
  180. .// (3) To mark all classes in the domain as read-only, use "*"
  181. .// for "ss_name" and "class_key_letters".
  182. .//
  183. .// Examples:
  184. .// .invoke MarkReadOnly( "", "", "SLOT" )
  185. .// .invoke MarkReadOnly( "ODMS", "CAB", "*" )
  186. .// .invoke MarkReadOnly( "*", "*", "*" )
  187. .//============================================================================
  188. .//
  189. .//
  190. .//============================================================================
  191. .// Mark Class as Persistent
  192. .//
  193. .// Call MarkPersistentClass to cause a class to use non-volatile
  194. .// storage to persist data across power boundaries.
  195. .//
  196. .// MarkPersistentClass( "component", "ss_name", "class_key_letters" )
  197. .//
  198. .// Where the input parameters are:
  199. .// component = name of component (domain) being marked
  200. .// ss_name = name of subsystem
  201. .// class_key_letters = key letters of the class.
  202. .//
  203. .// NOTES:
  204. .// (1) To mark as persistent a specific class, use "" for "ss_name"
  205. .// and provide the class key letters in "class_key_letters".
  206. .// (2) To mark all classes in the subsystem as persistent, provide
  207. .// the subsystem name for "ss_name" and "*" for
  208. .// the "class_key_letters".
  209. .// (3) To mark all classes in the domain as persistent, use "*"
  210. .// for "ss_name" and "class_key_letters".
  211. .//
  212. .// Examples:
  213. .// .invoke MarkPersistentClass( "", "", "MP" )
  214. .// .invoke MarkPersistentClass( "GPS", "TRACKING", "*" )
  215. .// .invoke MarkPersistentClass( "*", "*", "*" )
  216. .//============================================================================
  217. .//
  218. .//
  219. .//============================================================================
  220. .// Mark Class as Not Persistent (Unmark Persistence)
  221. .//
  222. .// Call MarkNonPersistentClass to unmark a class previously marked as
  223. .// persistent. This interface undoes what the above MarkPersistentClass
  224. .// does. This allows a user to conveniently mark all classes persistent
  225. .// and then unmark a few (rather than explicitly mark as persistent a
  226. .// large number of classes).
  227. .//
  228. .// MarkNonPersistentClass( "component", "ss_name", "class_key_letters" )
  229. .//
  230. .// Where the input parameters are:
  231. .// component = name of component (domain) being marked
  232. .// ss_name = name of subsystem
  233. .// class_key_letters = key letters of the class.
  234. .//
  235. .// NOTES:
  236. .// (1) To mark as not persistent a specific class, use "" for "ss_name"
  237. .// and provide the class key letters in "class_key_letters".
  238. .// (2) To mark all classes in the subsystem as not persistent, provide
  239. .// the subsystem name for "ss_name" and "*" for
  240. .// the "class_key_letters".
  241. .//
  242. .// Examples:
  243. .// .invoke MarkPersistentClass( "", "", "MP" )
  244. .// .invoke MarkPersistentClass( "GPS", "TRACKING", "*" )
  245. .//============================================================================
  246. .//
  247. .//
  248. .//============================================================================
  249. .// Do not add anything at the end of this file!
  250. .//============================================================================