/* 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 #include /** @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.
This ITK function can optionally carry over variant expressions, attribute groups and child Partitions from source partitions to target partitions. @returns @note Either source_model_tag, source_schemes or source_partitions should be supplied to clone partition breakdowns. */ 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.
This ITK function can optionally carry over variant expressions, attribute groups and child Partitions from source partitions to target partitions. @returns @note Either source_model_tag, source_schemes or source_partitions should be supplied to realize partition breakdowns. */ 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.
This ITK function uses the original carry over options selected during realization of this partition. @returns */ 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 #endif