| <?xml version="1.0" encoding="UTF-8"?> |
| <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="C_Cpp" nsURI="http://www.eclipse.org/papyrus/C_Cpp/1" nsPrefix="C_Cpp"> |
| <eClassifiers xsi:type="ecore:EClass" name="Ptr"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value=""declaration" attribute should only be used, if more than one indirections of pointers (often "**")"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="declaration" ordered="false" |
| unique="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Include"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="An arbitrary string that is added to header and body file. Although primarily intended for manual include directives, it can be used for arbitrary definitions.
	"preBody" is added to a C++ body file before automatic include statements, "body" after"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String" |
| defaultValueLiteral=""/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="preBody" ordered="false" |
| eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String" |
| defaultValueLiteral=""/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="header" ordered="false" |
| eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String" |
| defaultValueLiteral=""/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_package" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_class" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false" |
| eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="ManualGeneration"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Some toolkits require a quite particular way of use. For instance, LTTng requires the use of C (not C++) for the declaration of a trace provider and the header file is read several time with redefined macros. Therefore, the code generator supports a "manual" generation mode, in which primarily the contents of the CppInclude directive is written."/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="extensionBody" ordered="false" |
| lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false" |
| lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="ExternLibrary"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Mark a package as External Library. If this package is used, the associated CDT project will be configured accordingly. Prefix can indicate a common prefix on contained type, typically namespace qualifier"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="includePaths" ordered="false" |
| unique="false" upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_package" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="libPaths" ordered="false" |
| upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="macros" ordered="false" |
| upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="libs" ordered="false" upperBound="-1" |
| eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="includes" ordered="false" |
| upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="prefix" ordered="false" |
| eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="CppRoot"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="<p>Indicates that this package shoudl be a root package, i.e. its contents should appear on top level folder during generation. Currently not used</p>
"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_package" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Typedef"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Declare a new type that is based on another type.
Can be used to define for instance primitive types (like int). Can also be used for function pointers (see wiki)"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="definition" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_primitivetype" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//PrimitiveType"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="EnumStyle"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Enumeration style can be choosen individually on an enumeration or on a package (applying to all elements within)
The "nearest" Enum style hint has precedence"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_Enumeration" ordered="false" |
| eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Enumeration"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="classEnum" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean" |
| defaultValueLiteral="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false" |
| eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="DefaultConstructor"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="If applied, generate default constructor/destructor (supported by C code generator)"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false" |
| eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Delete"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="C++ modifiers that are applied to an operator or constructor.
Produce for =delete or =default statements"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_Operation" ordered="false" |
| eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Default"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="C++ modifiers that are applied to an operator or constructor.
Produce for =delete or =default statements"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_Operation" ordered="false" |
| eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind"> |
| <eLiterals name="private"/> |
| <eLiterals name="protected" value="1"/> |
| <eLiterals name="public" value="2"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Array"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="definition" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_association" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Association"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Const"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Ref"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="declaration" ordered="false" |
| unique="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="External"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false" |
| eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Name to use when this external is referenced as type. If unset, use simple (non-qualified) name"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="incPath" ordered="false" |
| eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> |
| <details key="documentation" value="Path to use in include directives when this external type is referenced. If unset, no additional
include directive is generated for the usage of this type. The latter may be useful if the
external type is used in conjunctions with others and a single header include provides
definitions for all required types"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false" |
| lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="ConstInit"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialisation" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Friend"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_dependency" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Dependency"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Inline"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Virtual"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Visibility"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_generalization" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Generalization"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="CppInit"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_enumerationliteral" |
| ordered="false" unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//EnumerationLiteral"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Template"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="declaration" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_class" ordered="false" |
| unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Union"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_DataType" ordered="false" |
| lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//DataType"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EEnum" name="EAccessKind"> |
| <eLiterals name="read"/> |
| <eLiterals name="write" value="1"/> |
| <eLiterals name="readWrite" value="2"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EEnum" name="EStorageClass"> |
| <eLiterals name="volatile"/> |
| <eLiterals name="register" value="1"/> |
| <eLiterals name="extern" value="2"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="StorageClass"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="storageClass" ordered="false" |
| unique="false" lowerBound="1" eType="#//EStorageClass"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false" |
| eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_Parameter" ordered="false" |
| eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Volatile"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false" |
| unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Variadic"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_operation" ordered="false" |
| lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Mutable"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false" |
| lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/> |
| </eClassifiers> |
| </ecore:EPackage> |