Integrations (PTC products, 3rd party products and code) > Code integration (Ada, ARINC 653, C, C#, C++, IDL, Java, SQL and VB) > IDL Code > Mapping information > Summary of Mappings for IDL code (IDL code) > Port type mapping for IDL (IDL code)
  
Port type mapping for IDL (IDL code)
For each Port Type, ACS generates a struct in the IDL file that is generated for the owning Package. ACS generates code similar to this:
struct Port_Type1
{
}; //@top-level false
Within the struct, ACS generates a uses declaration for each child Client, and a provides declaration for each child Service.
ACS uses Port Types for generating the content of a Deployment Plan's Component Deployment Plan (CDP) file.
The generation of a Port Type in an IDL file is derived from its child items and properties.
Child items:
If the Connector owns Attributes, ACS generates attribute declarations. For Attribute mapping information, see Attribute mapping for IDL
If the Connector owns Clients, ACS generates uses declarations for those Clients. For Client mapping information, see Client mapping for IDL
If the Connector owns Services, ACS generates provides declarations for those services. For Service mapping information, see Service mapping for IDL
Properties:
If the Description property has a value, ACS generates the Description as a comment on the line before the struct declaration.
ACS generates the Name property as the name of the Port Type in the code.
* 
ACS may modify the struct name that is added to the code to make it valid for IDL. You can specify the exact struct name to add to the code through the CODE_GENERATION_NAME property of a Port Type. Tell me more...
Other properties are ignored.
Tag Definitions:
The Port Type Kind tag definition is used only to determine whether the Port Type can be used as a type for an Extended Port (Publisher) or Extended Port (Consumer), that is, Publisher or Subscriber.