Signal mapping for C++ (C++ code)
For each Signal that is not nested or non-member, ACS generates a header file (.h) and an implementation file (.cpp). Nested Signals are generated within the parent class declaration.
The class declaration and implementation is derived from the items it owns and properties of the Signal.
Child items:
• If the Signal owns
Attributes, the Attributes are typically generated within the class declaration. For Attribute mapping information, see
Cpprev attribute mapping for cpp.
If a typed Part (Attribute) has an Association that has not been rolled up to the Part's type, ACS generates a nested class that is derived from the Part's type. The nested class defines the Role that is modeled against the Part.
If an Interface owns Parts (Attributes or Roles) that are connected through an Association, initialization code is generated in the constructor for the Interface.
• If the Signal owns Classes, the nested Classes are generated within the class declaration, unless its C++ Non Member tag definition is set to TRUE.
• If the Signal owns
Generalizations that define inheritance, the Generalizations are typically generated as inheritance lists. For Generalization mapping information, see
Cpprev generalization mapping for cpp.
• If the Signal owns
Roles, the Roles are typically generated as attributes within the class declaration. For Role mapping information, see
Cpprev Association mapping for cpp.
If a typed Part (Role) has an Association that has not been rolled up to the Part's type, ACS generates a nested class that is derived from the Part's type. The nested class defines the Role that is modeled against the Part.
If a Signal owns Parts (Attributes or Roles) that are connected through an Association, initialization code is generated in the constructor for the Signal.
• If the Signal ownsType Definitions, the Type Definitions are typically generated within the class declaration. For Type Definition mapping information, see
Cpprev type definition mapping for cpp.
Note that nested Signals are ignored.
Properties
• The Abstract property is ignored.
• If the Description property has a value, ACS generates the description as a comment on the line before the class declaration.
• The Formal TemplatevParameters property is generated as the formal template parameters for a template class.
• The Name property is generated as the name of the header and implementation files, and the name of the class in the code.
Note that ACS may modify the class name that is added to the code to make it valid for C++. You can specify the exact class name to add to the code through the CODE_GENERATION_NAME property of a Signal.
Tell me more...• The Persistent property is ignored.
• If the Template property is set to true (Template check box selected on Property Pages), the Signal is generated as a template class using the Formal Template Parameters that are specified.
• If the Union property is set to true (Template check box selected on Property Pages), the Signal is generated as a union.
Tag Definitions:
None.