/* Copyright 2020 Siemens Digital Industries Software ================================================== Copyright 2017 Siemens Product Lifecycle Management Software Inc. All Rights Reserved. ================================================== Copyright 2020 Siemens Digital Industries Software */ /** @file cbaext.h The CBAEXT module presents a high level interface to a remote Teamcenter Product Master Management system. It supports basic services for alignment and publish of PMM objects like Part, Line of Usage and Line of Assembly. */ #ifndef CBAEXT_H_INCLUDED #define CBAEXT_H_INCLUDED #include #include /** @defgroup CBAEXT CBAEXT This module provides implementation for all the ITKs to be used by the customers of CAD BOM Alignment. To use these ITK functions, include the cbaext.h file in the source code. @{ */ #ifdef __cplusplus extern "C" { #endif /** Contains an Item Revision and a Part that are to be aligned or unaligned. This structure is passed as input to #CBAEXT_align_item_revisions_and_parts and #CBAEXT_unalign_item_revisions_and_parts. */ typedef struct CBAEXT_item_revision_part_info_s { tag_t item_revision; /**< Item Revision tag */ tag_t part; /**< Part tag */ int client_id; /**< A unique identifier that is used to identify the input records that fail */ } CBAEXT_item_revision_part_info_t; /** Contains an Item Revision and a client ID that is used to identify the Item Revisions that fail the operation. This structure is passed as input to #CBAEXT_publish_item_revisions and #CBAEXT_find_solutions_linked_to_design_occurrences. */ typedef struct CBAEXT_item_revision_info_s { tag_t item_revision; /**< Item Revision tag */ int client_id; /**< A unique identifier that is used to identify the input records that fail */ } CBAEXT_item_revision_info_t; /** Contains a BOMLine and a client ID that is used to identify the BOMLines that fail the operation. This structure is passed as input to #CBAEXT_publish_cad_occurrences and #CBAEXT_find_solutions_linked_to_design_occurrences. */ typedef struct CBAEXT_cad_occurrence_info_s { tag_t bomline; /**< A unique identifier that is used to identify the input records that fail */ int client_id; /**< A unique identifier that is used to identify the input records that fail */ } CBAEXT_cad_occurrence_info_t; /** Contains a set of aligned Assembly Component Tree Lines. This structure is returned by #CBAEXT_find_aligned_act_lines_for_designs_with_stream. */ typedef struct CBAEXT_set_of_aligned_act_lines_s { int n_actlines; /**< Number of Assembly Component Tree Lines */ tag_t* actlines; /**< List of Assembly Component Tree Lines that are aligned to a single BOM Line */ } CBAEXT_set_of_aligned_act_lines_t; /** The structure contains an Assembly Component Tree Line and the BOMLine that is aligned to it. This structure is returned by #CBAEXT_find_bomlines_for_act_lines. */ typedef struct CBAEXT_act_line_to_bomline_s { tag_t actline; /**< Aligned Assembly Component Tree Lines */ tag_t bomline; /**< Aligned BOMLine */ } CBAEXT_act_line_to_bomline_t; /** Contains a Part and the Item Revision tags that are aligned to this Part. This structure is returned by #CBAEXT_find_item_revisions_linked_to_parts and #CBAEXT_find_drawing_revisions_linked_to_parts. */ typedef struct CBAEXT_item_revision_primary_publish_info_s { tag_t design; /**< Item revision tag */ logical primary_flag; /**< Primary indicator */ logical publish_flag; /**< Published indicator */ } CBAEXT_item_revision_primary_publish_info_t; /** Contains a Part and the Item Revision tags that are aligned to this Part. This structure is returned by #CBAEXT_find_item_revisions_linked_to_parts and #CBAEXT_find_drawing_revisions_linked_to_parts. */ typedef struct CBAEXT_item_revision_to_part_info_s { tag_t part; /**< Part tag */ int n_item_revisions; /**< Number of Item Revision Tags */ CBAEXT_item_revision_primary_publish_info_t* item_revisions; /**< List of Item Revision tags */ } CBAEXT_item_revision_to_part_info_t; /** Contains an Item Revision and the Part tags that are aligned to this Item Revision. This structure is returned by #CBAEXT_find_parts_linked_to_item_revisions and #CBAEXT_find_parts_linked_to_drawing_revisions. */ typedef struct CBAEXT_part_to_item_revision_info_s { tag_t item; /**< Item Revision tag */ int n_part_revisions; /**< Number of Part tags */ tag_t* part_revisions; /**< List of Part tags */ } CBAEXT_part_to_item_revision_info_t; /** Encapsulates the data that defines a Solution. This structure is used to pass in the input for #CBAEXT_find_design_occurrences_linked_to_solutions. */ typedef struct CBAEXT_solution_information_s { tag_t solution; /**< Solution tag */ int client_id; /**< A unique identifier that is used to identify the input records that fail */ } CBAEXT_solution_information_t; /** Encapsulates the data for a Solution and a BOMLine. This structure is returned by #CBAEXT_find_design_occurrences_linked_to_solutions and #CBAEXT_find_solutions_linked_to_design_occurrences. */ typedef struct CBAEXT_design_occurrence_solution_info_s { tag_t bomLine; /**< BOMLine tag */ tag_t solution; /**< Solution tag */ int client_id; /**< A unique identifier that is used to identify the input records that fail */ } CBAEXT_design_occurrence_solution_info_t; /** Contains the Name-value pair for property */ typedef struct CBAEXT_related_object_info_s { char *table_name; /**< Table name for related object */ char *action; /**< Action name to be performed */ char *related_object_tuid; /**< TUID for related object */ int n_attributes; /**< Number of attributes. */ char **related_object_attributes; /**< n_attributes Attributes names for Related Object */ char **related_object_attribute_values; /**< n_attributes Attributes values for Related Object */ }CBAEXT_related_object_info_t; /** Encapsulates the data for a Solution and a BOMLine. */ typedef struct CBAEXT_cad_occurrence_solution_information_s { tag_t bomline; /**< BOMLine tag */ tag_t solution; /**< Solution tag */ int n_attributes; /**< Number of attributes. */ char** solution_attr; /**< n_attributes Attributes names for Solution */ char** solution_attr_values; /**< n_attributes Attributes values for Solution */ int n_related_objects; /**< Number of related objects. */ CBAEXT_related_object_info_t* related_objects; /**< n_related_objects Relational object information. */ char * client_id; /**< A unique identifier that is used to identify the input records that fail */ } CBAEXT_cad_occurrence_solution_infomation_t; /** Contains a Item Revision and a client ID that is used to identify the Item Revision that fail the operation. */ typedef struct CBAEXT_design_info_s { tag_t item_revision; /**< Item Revision tag */ char * client_id; /**< A unique identifier that is used to identify the input records that fail */ } CBAEXT_design_info_t; /** Contains a Part and the Item Revision tags that are aligned to this Part. */ typedef struct CBAEXT_design_to_part_information_s { tag_t part; /**< Part tag to align*/ int n_item_revisions; /**< Number of Item Revision Tags to align with Part */ CBAEXT_design_info_t* design_info; /**< n_item_revisions List of Item Revision tags and ClientIDs */ int n_attributes; /**< Number of attributes for mofification. */ char** part_attr; /**< n_attributes Attributes names for Part to be modified */ char** part_attr_values; /**< n_attributes Attributes values for for Part to be modified */ int n_related_objects; /**< Number of related objects to process with alignment/unalignment. */ CBAEXT_related_object_info_t* related_objects; /**< n_related_objects Relational object information. */ } CBAEXT_design_to_part_information_t; /** Contains a Part for which the primary representation needs to be found. This structure is passed as input to #CBAEXT_ask_primary_representations. */ typedef struct CBAEXT_part_info_s { tag_t part; /**< Part tag */ int client_id; /**< A unique identifier that is used to identify the input records that fail.
The client_id is populated in the error map returned by #CBAEXT_ask_primary_representations and helps to correlate the error and the input. */ } CBAEXT_part_info_t; /** Encapsulates the data for a Solution and an ACTLine. This structure is passed as input to #CBAEXT_link_set_of_design_occ_and_act_line and #CBAEXT_unalign_set_of_design_occ_and_act_line */ typedef struct CBAEXT_design_occurrence_act_line_info_s { tag_t bom_line; /**< BOMLine tag */ tag_t act_line; /**< ACTLine tag */ int client_id; /**< A unique identifier that is used to identify the input records that fail */ } CBAEXT_design_occurrence_act_line_info_t; /** @name CBAEXT Setup Functions @{ */ /** Initializes the CBAEXT module. This function must be called before using any other CBAEXT module functions. This function will be called by the standard ITK startup code. The ITK programmer can ignore this function. @note A second call is ignored. */ extern CBAEXT_API int CBAEXT_init_module( void ); /** @} CBAEXT Setup Functions */ /** @name CBAEXT Utility Functions @{ */ /** Indicates if the CAD BOM Alignment (CBA) module is configured to work with the Product Master Management (PMM) server. */ extern CBAEXT_API int CBAEXT_is_cba_enabled( logical *is_enabled /**< (O) True if the CBA module is configured to work with the PMM server */ ); /** @} CBAEXT Utility Functions */ /** @name CBAEXT Alignment Functions @{ */ /** Aligns CAD/Drawing Item Revisions to Parts in Usage Server. The input should be a homogeneous set of CAD Revisions or Drawing Revisions. An error is returned if both CAD and Drawing Revisions are passed as input during a single invocation of the method. @returns */ extern CBAEXT_API int CBAEXT_align_item_revisions_and_parts( const int n_links, /**< (I) Number of CAD/Drawing item revisions to align */ const CBAEXT_item_revision_part_info_t *alignment_info, /**< (I) n_links List of CAD/Drawing item revisions and PMM parts to be aligned */ int *n_errors, /**< (O) Number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_errors List of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Aligns CAD/Drawing Item Revisions to Parts in Usage Server.
The input should be a homogeneous set of CAD Revisions or of Drawing Revisions and Engineering Change Order information. @returns */ extern CBAEXT_API int CBAEXT_align_item_revisions_and_parts_eco( const unsigned int n_links, /**< (I) Number of Parts to align.*/ const CBAEXT_design_to_part_information_t *alignment_info, /**< (I) n_links List of Designs and Part to align.*/ const char *eco, /**< (I) Engineering Change Order information for alignment.
Engineering Work Order(EWO) object name created in Product Master Management.*/ const logical auto_commit, /**< (I) Auto-commit flag for alignment.*/ int *n_parts, /**< (O) Number of Parts retrieved after alignment.*/ tag_t **parts, /**< (OF) n_parts Part response after alignment.*/ int *n_errors, /**< (O) Number of errors in the operation. */ PMM_error_store_map_t **error_map /**< (OF) n_errors List of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Unaligns CAD/Drawing Item Revisions from Parts in Usage Server. The input should be a homogeneous set of CAD Revisions or Drawing Revisions. An error is returned if both CAD and Drawing Revisions are passed as input during a single invocation of the method. @returns */ extern CBAEXT_API int CBAEXT_unalign_item_revisions_and_parts( const int n_links, /**< (I) Number of CAD/Drawing item revisions to unalign */ const CBAEXT_item_revision_part_info_t *alignment_info, /**< (I) List of CAD/Drawing item revisions and PMM parts to be unaligned */ int *n_errors, /**< (O) Number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_errors List of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Unaligns CAD/Drawing Item Revisions from Parts in Usage Server.
The input should be a homogeneous set of CAD Revisions or Drawing Revisions. @returns */ extern CBAEXT_API int CBAEXT_unalign_item_revisions_and_parts_eco( const unsigned int n_links, /**< (I) Number of Parts to align */ const CBAEXT_design_to_part_information_t *alignment_info, /**< (I) n_links list of Designs and Part to align */ const char *eco, /**< (I) ECO information for alignment
Engineering Work Order(EWO) object name created in Product Master Management.*/ const logical auto_commit, /**< (I) Auto commit flag for alignment */ int *return_part_count, /**< (O) Number of Parts returned after alignment */ tag_t **return_part_tag, /**< (OF) Part tag response after alignment */ int *n_errors, /**< (O) number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_errors List of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Publishes CAD/Drawing Item Revisions to Usage Server. The input should be a homogeneous set of CAD Revisions or Drawing Revisions. An error is returned if both CAD and Drawing Revisions are passed as input during a single invocation of the method. @returns */ extern CBAEXT_API int CBAEXT_publish_item_revisions( const int n_item_revs, /**< (I) Number of CAD item revisions to publish */ CBAEXT_item_revision_info_t *publish_info, /**< (I) CAD Item Revision and client Id for each record */ int *n_errors, /**< (O) Number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_errors List of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Sets the default CAD representations for Parts in the Usage Server. The default representation will be displayed when the Part is visualized. @returns */ extern CBAEXT_API int CBAEXT_set_default_cad_representations_for_parts( const int n_item_revs, /**< (I) Number of CAD item revisions */ CBAEXT_item_revision_part_info_t *make_primary_info, /**< (I) List of CAD item revisions and PMM parts for which the default representation is to be set */ int *n_errors, /**< (O) Number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_errors List of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Sets the default CAD representations for Parts in the Usage Server using eco.
The default representation will be displayed when the Part is visualized. @returns */ extern CBAEXT_API int CBAEXT_set_default_cad_representations_for_parts_eco( const unsigned int n_links, /**< (I) Number of Parts to align.*/ const CBAEXT_design_to_part_information_t *alignment_info, /**< (I) n_links List of Designs and Part to align.*/ const char *eco, /**< (I) Engineering Change Order information for Make Primary.
Engineering Work Order(EWO) object name created in Product Master Management*/ const logical auto_commit, /**< (I) Auto-commit flag for Make Primary. */ int *n_parts, /**< (O) Number of Parts retrieved after Make Primary operation. */ tag_t **parts, /**< (OF) n_parts Part response after Make Primary operation. */ int *n_errors, /**< (O) Number of errors in the operation. */ PMM_error_store_map_t **error_map /**< (OF) n_errors List of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Aligns CAD Occurrences to Solutions in Usage Server.
The Solution is defined by providing a Line of Usage and a Sub-usage belonging to the Line of Usage.
A Position Designator can be optionally provided, in which case the alignment is performed with the input Position Designator. If the Position Designator is not explicitly provided as input, the alignment is performed with the first available Position Designator belonging to the Line of Usage. @returns */ extern CBAEXT_API int CBAEXT_link_cad_occs_and_solutions_eco( const unsigned int n_cad_occ, /**< (I) Number of CAD occurrences to align. */ const CBAEXT_cad_occurrence_solution_infomation_t *alignment_info, /**< (I) n_cad_occ CAD occurrences and Solutions to align. */ const char *eco, /**< (I) Engineering Change Order information for alignment.
Engineering Work Order(EWO) object name created in Product Master Management.*/ const logical auto_commit, /**< (I) Auto commit flag for alignment. */ int *n_solutions, /**< (O) Number of Solution after alignment. */ tag_t **solutions, /**< (OF) n_solutions Solutions response after alignment */ int *n_errors, /**< (O) Number of errors in the operation. */ PMM_error_store_map_t **error_map /**< (OF) n_errors structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Unaligns CAD Occurrences and Solutions in Usage Server.
The Solution is defined by providing a Line of Usage, a Sub-usage belonging to the Line of Usage and a Position Designator also belonging to the Line of Usage. @returns */ extern CBAEXT_API int CBAEXT_unlink_cad_occs_and_solutions_eco( const unsigned int n_cad_occ, /**< (I) Number of CAD occurrences to unalign */ const CBAEXT_cad_occurrence_solution_infomation_t *alignment_info, /**< (I) n_cad_occ CAD occurrences and Solutions to unalign. */ const char *eco, /**< (I) Engineering Change Order information for unalignment.
Engineering Work Order(EWO) object name created in Product Master Management.*/ const logical auto_commit, /**< (I) Auto commit flag for unalignment. */ int *n_solutions, /**< (O) Number of solutions after unalignment */ tag_t **solutions, /**< (OF) n_solutions solutions response after unalignment */ int *n_errors, /**< (O) Number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_errors structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Publishes CAD occurrences to Usage Server. @returns */ extern CBAEXT_API int CBAEXT_publish_cad_occurrences( const int n_cad_occ, /**< (I) Number of CAD occurrences to publish */ const CBAEXT_cad_occurrence_info_t *publish_info, /**< (I) List of CAD occurrences to publish */ int *n_errors, /**< (O) Number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_errors List of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only.*/ ); /** Aligns CAD Design Occurrences to Assembly Component Tree (ACT) Lines in Usage Server. @returns */ extern CBAEXT_API int CBAEXT_link_set_of_design_occ_and_act_line( const unsigned int n_design_occ, /**< (I) Number of CAD occurrences to align */ const CBAEXT_design_occurrence_act_line_info_t *alignment_info, /**< (I) n_design_occ CAD occurrences and Assembly Component Tree Lines to align */ int *n_errors, /**< (O) Number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_errors of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Unaligns CAD occurrences from Assembly Component Tree Lines in Usage Server. @returns */ extern CBAEXT_API int CBAEXT_unalign_set_of_design_occ_and_act_line( const unsigned int n_design_occ, /**< (I) Number of CAD occurrences to unalign */ const CBAEXT_design_occurrence_act_line_info_t *alignment_info, /**< (I) n_design_occ CAD occurrences and Assembly Component Tree Lines to unalign */ int *n_errors, /**< (O) Number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_errors of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** @} CBAEXT Alignment Functions */ /** @name CBAEXT Query Functions @{ */ /** Finds the aligned Assembly Component Tree (ACT) Lines in Usage Server for the given CAD Design Occurrences with effectivity stream criteria.
A design occurrence (BOMLine) may have alignment to multiple ACT Lines. @returns */ extern CBAEXT_API int CBAEXT_find_aligned_act_lines_for_designs_with_stream( const unsigned int n_design_occurrences, /**< (I) Number of Design Occurrences. */ const tag_t *design_occs, /**< (I) n_design_occurrences Design Occurrences */ const char *effective_date, /**< (I) Effective date in the dd-mmm-yyyy format (eg:02-Jan-2020) for the aligned assembly component tree */ const char *effective_point, /**< (I) Effective point for the aligned assembly component tree */ const char *db_query_stream, /**< (I) Effective stream for the aligned assembly component tree */ int *n_set_of_act_lines, /**< (O) Number of sets of ACT lines */ CBAEXT_set_of_aligned_act_lines_t **set_of_act_lines, /**< (OF) n_set_of_act_lines Set of ACTLine lists that are aligned to each input BOMLine */ int *n_error, /**< (O) Number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_error structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Finds BomLines that are aligned to the given ACTLines. @returns */ extern CBAEXT_API int CBAEXT_find_bomlines_for_act_lines( const int n_actlines, /**< (I) Number of ACTLines */ const tag_t* actlines, /**< (I) List of ACTLines */ CBAEXT_act_line_to_bomline_t** actline_to_bomline /**< (OF) n_actlines List of aligned BOMLines and ACTLines.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Expands the CAD structure that is below the input BOMLine to all lower levels. @returns */ extern CBAEXT_API int CBAEXT_design_expand_below_all_levels( tag_t line, /**< (I) Tag for the top line */ int *child_lines_count, /**< (O) Total number of children */ tag_t **child_lines /**< (OF) childLinesCount Child design lines tag */ ); /** Finds the Item Revisions that are aligned to the input Parts. @returns */ extern CBAEXT_API int CBAEXT_find_item_revisions_linked_to_parts( const unsigned int n_parttags, /**< (I) Number of Parts */ const CBAEXT_part_info_t* inp_part_info, /**< (I) List of Parts tags */ CBAEXT_item_revision_to_part_info_t** item_info /**< (OF) n_parttags List of structures containing Part tag and the aligned Item Revision tags.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Finds the Drawing Revisions that are aligned to the input Parts. @returns */ extern CBAEXT_API int CBAEXT_find_drawing_revisions_linked_to_parts( const unsigned int n_parttags, /**< (I) Number of Parts */ const CBAEXT_part_info_t* inp_part_info, /**< (I) List of Parts tags */ CBAEXT_item_revision_to_part_info_t** drawing_info /**< (OF) n_parttags List of structures containing Part tag and the aligned Drawing Revision tags.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Finds the Parts that are aligned to the input CAD Item Revisions. @returns */ extern CBAEXT_API int CBAEXT_find_parts_linked_to_item_revisions( const int n_itemtags, /**< (I) Number of Item Revisions */ const tag_t* item_tags, /**< (I) List of Item Revision tags */ CBAEXT_part_to_item_revision_info_t** part_info /**< (OF) n_itemtags List of structures containing the Item Revision tag and the aligned Part tags.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Finds the Parts that are aligned to the input Drawing Revisions. @returns */ extern CBAEXT_API int CBAEXT_find_parts_linked_to_drawing_revisions( const int n_itemtags, /**< (I) Number of Drawing Revisions */ const tag_t* item_tags, /**< (I) List of Drawing Revision tags */ CBAEXT_part_to_item_revision_info_t** part_info /**< (OF) n_itemtags List of structures containing the Drawing Revision and the aligned Part tags.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Finds Solutions by selecting design Occurrences. @returns */ extern CBAEXT_API int CBAEXT_find_solutions_linked_to_design_occurrences( const unsigned int n_cad_occ, /**< (I) Number of CAD occurrences */ const CBAEXT_cad_occurrence_info_t *cadocc_info, /**< (I) List of CAD occurrences */ int *n_solutions, /**< (O) Number of aligned Solutions */ CBAEXT_design_occurrence_solution_info_t **solution_output,/**< (OF) n_solutions List of structures containing the CAD Occurrence and the aligned Solution */ int *n_errors, /**< (O) Number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_errors List of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Finds Solutions by selecting CAD occurrences. @returns */ extern CBAEXT_API int CBAEXT_find_design_occurrences_linked_to_solutions( const unsigned int n_solutions, /**< (I) Number of Solutions*/ const CBAEXT_solution_information_t *solution_info, /**< (I) List of Solutions */ int *n_cad_occs, /**< (O) Number Of CAD occurrences */ CBAEXT_design_occurrence_solution_info_t **solution_output, /**< (OF) n_cad_occs List of structures containing the Solution and the aligned CAD occurrence */ int *n_errors, /**< (O) Number of errors in the operation */ PMM_error_store_map_t **error_map /**< (OF) n_errors List of structures containing error details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** Finds the primary representations for the input Parts. @returns */ extern CBAEXT_API int CBAEXT_ask_primary_representations( const unsigned int n_parts, /**< (I) Number of parts for which the primary representation needs to be found. */ const CBAEXT_part_info_t *part_info, /**< (I) n_parts parts for which the primary representation needs to be found.*/ CBAEXT_item_revision_part_info_t **output, /**< (OF)n_parts Structures containing part and the aligned Item Revision.
If no representation is found for a given part, the associated entry in the list will be a null pointer */ PMM_error_store_map_t **error_map /**< (OF)n_parts Structures containing error details.
If no error has occurred for a given part, the associated entry in the list will be populated with clientId and ifail with ITK_ok.
If an error has occurred for a given part, the associated entry in the list will be pointer to a #PMM_error_store_map_t structure that contains more details.
The array is packed, which means that the memory is to be deallocated by calling #MEM_free on the container only. */ ); /** @} CBAEXT Query Functions */ /** @} */ #ifdef __cplusplus } #endif #include #endif