You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
10 KiB
153 lines
10 KiB
/*
|
|
Copyright 2020 Siemens Digital Industries Software
|
|
==================================================
|
|
Copyright 2013.
|
|
Siemens Product Lifecycle Management Software Inc.
|
|
All Rights Reserved.
|
|
==================================================
|
|
Copyright 2020 Siemens Digital Industries Software
|
|
*/
|
|
/**
|
|
@file partitiontemplate.h
|
|
|
|
This header file declares Partition Template cloning and realization ITKs
|
|
|
|
*/
|
|
|
|
/* */
|
|
|
|
#ifndef PARTITION_PARTITIONTEMPLATE_H
|
|
#define PARTITION_PARTITIONTEMPLATE_H
|
|
|
|
#include <unidefs.h>
|
|
|
|
#include <ptn0partitiontemplate/libptn0partitiontemplate_exports.h>
|
|
|
|
/**
|
|
@defgroup PTN0PARTITIONTEMPLATE Template
|
|
@ingroup PTN0PARTITION
|
|
@{
|
|
*/
|
|
#ifdef __cplusplus
|
|
extern "C"{
|
|
#endif
|
|
|
|
/**
|
|
* PARTITIONTEMPLATE_clone_rlz_input_option_t is the enum used to specify possible carry over options for cloning and realization operations.
|
|
*/
|
|
typedef enum PARTITIONTEMPLATE_clone_rlz_input_option_e
|
|
{
|
|
PARTITION_checkout_on_create = 0, /**< Option to checkout target partitions on create after cloning/realization */
|
|
PARTITION_include_attribute_groups, /**< Option to include Attribute Groups during cloning/realization */
|
|
PARTITION_include_child_partitions, /**< Option to include child Partitions during cloning/realization */
|
|
PARTITION_include_variant_expressions, /**< Option to include variant expressions during cloning/realization */
|
|
PARTITION_include_effectivity_expressions, /**< Option to include effectivity expressions during cloning/realization. Reserved for future use */
|
|
PARTITION_exclude_local_partitions, /**< Option to exclude local Partitions during cloning */
|
|
PARTITION_copy_rlz_references /**< Option to copy realization references during cloning */
|
|
} PARTITIONTEMPLATE_clone_rlz_input_option_t;
|
|
|
|
/**
|
|
* PARTITIONTEMPLATE_carry_over_input_option_t is the structure that holds the carry over option and its corresponding value.
|
|
*/
|
|
typedef struct PARTITIONTEMPLATE_carry_over_input_option_s
|
|
{
|
|
PARTITIONTEMPLATE_clone_rlz_input_option_t input_option; /**< Option to update realized Partitions */
|
|
logical value; /**< TRUE or FALSE */
|
|
} PARTITIONTEMPLATE_carry_over_input_option_t;
|
|
|
|
|
|
/**
|
|
Clones partition breakdowns from a source Application Model to a target Application Model. Source and target models may be Partition Templates or
|
|
Collaborative Designs or Product Architecture Models.
|
|
<br>This ITK function can optionally carry over variant expressions, attribute groups and child Partitions from source partitions to target partitions.
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success.
|
|
<li>#PTN0PARTITIONTEMPLATE_cannot_clone_duplicate_partition if the Partitions cannot be cloned into the target model, because one or more duplicate Partitions are found.
|
|
<li>#PTN0PARTITIONTEMPLATE_missing_mandatory_input_arguments if not all mandatory input arguments are passed.
|
|
<li>#PTN0PARTITIONTEMPLATE_cannot_clone_no_input_ptns if the "Partial Cloning" operation cannot be performed because no Partitions are provided to clone.
|
|
<li>#PTN0PARTITIONTEMPLATE_variablity_of_source_n_target_no_match if the variability of source and target model does not match.
|
|
<li>#PTN0PARTITIONTEMPLATE_exclude_local_no_realized_scheme if the "Cloning" operation cannot be performed, because "Exclude Local Partitions" option is selected, but the Partition Schemes are unrealized.
|
|
<li>#PTN0PARTITIONTEMPLATE_copy_rlz_ref_not_allowed_for_pt if the "Copy Realization References" option is not allowed for a Partition Template
|
|
</ul>
|
|
@note Either source_model_tag, source_schemes or source_partitions should be supplied to clone partition breakdowns.
|
|
<ul>
|
|
<li>If source_partitions is not null, given partitions will be cloned and both source_model_tag and source_schemes arguments will be ignored.
|
|
<li>If source_partitions is null and source_schemes is not null, Partitions under the given schemes will be cloned and source_model_tag argument will be ignored.
|
|
<li>If both source_partitions and source_schemes are null, Partitions under all schemes in the source model will be cloned.
|
|
</ul>
|
|
*/
|
|
extern PTN0PARTITIONTEMPLATE_API int PARTITIONTEMPLATE_clone_partitions_partial_and_full(
|
|
tag_t source_model_tag, /**< (I) Source application model tag. If both source_schemes and source_partitions are null, partitions under all schemes in the source model will be cloned */
|
|
tag_t target_model_tag, /**< (I) Target application model tag */
|
|
tag_t revision_rule, /**< (I) Revision rule tag */
|
|
tag_t variant_rule, /**< (I) Variant rule tag */
|
|
int num_schemes, /**< (I) Number of schemes to be cloned on the source application model */
|
|
const tag_t *source_schemes, /**< (I) Source partition scheme tags. If source_partitions is null, partitions under the given schemes will be cloned and source_model_tag argument will be ignored */
|
|
int num_partitions, /**< (I) Number of partitions to be cloned from different source application models */
|
|
const tag_t *source_partitions, /**< (I) Source partition tags. Given partitions will be cloned and both source_model_tag and source_schemes arguments will be ignored */
|
|
int no_of_clone_options, /**< (I) Number of carry over options */
|
|
const PARTITIONTEMPLATE_carry_over_input_option_t *clone_options /**< (I) Array of input carry over option structure */
|
|
);
|
|
|
|
|
|
/**
|
|
Realizes partition breakdowns from Partition Template to a target Collaborative Design or Product Architecture Model.
|
|
<br>This ITK function can optionally carry over variant expressions, attribute groups and child Partitions from source partitions to target partitions.
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success.
|
|
<li>#PTN0PARTITIONTEMPLATE_cannot_realize_duplicate_partition when the partitions cannot be realized into the target model if one or more duplicate Partitions are found.
|
|
<li>#PTN0PARTITIONTEMPLATE_missing_mandatory_input_arguments if not all mandatory input arguments are passed.
|
|
<li>#PTN0PARTITIONTEMPLATE_rlz_possible_only_from_PT_to_CD if realization not performed from Partition Template to Collaborative Design or Product Architecture Model.
|
|
<li>#PTN0PARTITIONTEMPLATE_variablity_of_source_n_target_no_match if the variability of source and target model does not match.
|
|
</ul>
|
|
@note Either source_model_tag, source_schemes or source_partitions should be supplied to realize partition breakdowns.
|
|
<ul>
|
|
<li>If source_partitions is not null, given partitions will be realized and both source_model_tag and source_schemes arguments will be ignored.
|
|
<li>If source_partitions is null and source_schemes is not null, partitions under the given schemes will be realized and source_model_tag argument will be ignored.
|
|
<li>If both source_partitions and source_schemes are null, partitions under all schemes in the source model will be realized.
|
|
</ul>
|
|
*/
|
|
extern PTN0PARTITIONTEMPLATE_API int PARTITIONTEMPLATE_realize_partitions(
|
|
tag_t source_model_tag, /**< (I) Source application model tag. If both source_schemes and source_partitions are null, partitions under all schemes in the source model will be realized */
|
|
tag_t target_model_tag, /**< (I) Target application model tag */
|
|
tag_t revision_rule, /**< (I) Revision rule tag */
|
|
tag_t variant_rule, /**< (I) Variant rule tag */
|
|
int nb_of_schemes, /**< (I) Number of schemes to be realized on the source application model */
|
|
tag_t *source_schemes, /**< (I) Source partition scheme tags. If source_partitions is null, partitions under the given schemes will be realized and source_model_tag argument will be ignored */
|
|
int nb_of_partitions, /**< (I) Number of partitions to be realized from different source application models */
|
|
tag_t *source_partitions, /**< (I) Source partition tags. Given partitions will be realized and both source_model_tag and source_schemes arguments will be ignored */
|
|
int nb_of_rlz_options, /**< (I) Number of carry over options */
|
|
PARTITIONTEMPLATE_carry_over_input_option_t *rlz_options /**< (I) Array of input carry over option structure */
|
|
);
|
|
|
|
/**
|
|
Updates the realized partition from the source partition on source Partition Template.
|
|
<br>This ITK function uses the original carry over options selected during realization of this partition.
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success.
|
|
<li>#PTN0PARTITIONTEMPLATE_cannot_realize_duplicate_partition when the partitions cannot be realized into the target model if one or more duplicate Partitions are found.
|
|
<li>#PTN0PARTITIONTEMPLATE_missing_mandatory_input_arguments if not all mandatory input arguments are passed.
|
|
<li>#PTN0PARTITIONTEMPLATE_null_partition_for_update if no partition exists in source model with selected Revision Rule.
|
|
<li>#PTN0PARTITIONTEMPLATE_null_realization_instance if the Realization instance is null for the input partition.
|
|
<li>#PTN0PARTITIONTEMPLATE_rlz_possible_only_from_PT_to_CD if realization not performed from Partition Template to Collaborative Design.
|
|
<li>#PTN0PARTITIONTEMPLATE_variablity_of_source_n_target_no_match if the variability of source and target model does not match.
|
|
</ul>
|
|
*/
|
|
extern PTN0PARTITIONTEMPLATE_API int PARTITIONTEMPLATE_update_realized_partition(
|
|
tag_t rlzd_partition, /**< (I) Realized partition tag */
|
|
tag_t revision_rule, /**< (I) Revision rule tag */
|
|
tag_t variant_rule /**< (I) Variant rule tag */
|
|
);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
/**
|
|
@}
|
|
*/
|
|
|
|
#include <ptn0partitiontemplate/libptn0partitiontemplate_undef.h>
|
|
#endif
|