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.

214 lines
8.8 KiB

/*==============================================================================
Copyright (c) 2005 UGS
Unpublished - All rights reserved
===============================================================================*/
/**
@file
This file contains definitions and interfaces for ESM class
*/
/* */
#ifndef ESM_H
#define ESM_H
#include <unidefs.h>
#include <mechatronics/libmechatronics_exports.h>
/**
@defgroup ESM Esm
@ingroup MECHATRONICS
@{
*/
#ifdef __cplusplus
extern "C"{
#endif
/**
Given a BOM Line tag, this function checks whether it is a Processor BOM Line
*/
extern MECHATRONICS_API int ESM_is_processor
(
tag_t bom_line, /**< (I) Tag of a BOM Line */
logical *status /**< (O) Is TRUE if the BOM line tag is a Processor, otherwise FALSE */
);
/**
Given a BOM Line tag, this function checks whether it is a Gateway Processor BOM Line
*/
extern MECHATRONICS_API int ESM_is_gateway
(
tag_t bom_line, /**< (I) Tag of a BOM Line */
logical *status /**< (O) Is TRUE if the BOM line tag is a Processor, otherwise FALSE */
);
/**
Given a BOM Line tag, this function checks whether it is a Software BOM Line
*/
extern MECHATRONICS_API int ESM_is_software
(
tag_t bom_line, /**< (I) Tag of a BOM Line */
logical *status /**< (O) Is TRUE if the BOM line tag is a software, otherwise FALSE */
);
/**
Given a Processor BOM line, and an array of Software BOM lines, this method associates Processor and software using Embeds relation.
*/
extern MECHATRONICS_API int ESM_associate_processor_to_software
(
tag_t processor_line, /**< (I) Tag of a Processor BOM Line */
int num_software_lines, /**< (I) Number of Software BOM lines */
tag_t *software_lines, /**< (I) Array of software BOM lines */
logical *hasFailures, /**< (O) Did any failures occur */
int *numFailedLines, /**< (O) Number of failed association lines */
tag_t **failedLines /**< (OF) numFailedLines Array of failed association lines */
);
/**
Given a Processor BOM line, and an array of Software BOM lines, this method removes association betwn Processor and software participating in Embeds relation.
*/
extern MECHATRONICS_API int ESM_remove_processor_to_software_association
(
tag_t processor_line, /**< (I) Tag of a Processor BOM Line */
int num_software_lines, /**< (I) Number of Software BOM lines */
tag_t *software_lines, /**< (I) Array of software BOM lines */
logical *hasFailures, /**< (O) Did any failures occur */
int *numFailedLines, /**< (O) Number of failed remove lines */
tag_t **failedLines /**< (OF) numFailedLines Array of failed association lines */
);
/**
Given a gateway Processor BOM line, and an array of Software BOM lines, this method removes association betwn Gateway Processor and Processor
*/
extern MECHATRONICS_API int ESM_remove_processor_to_processor_association
(
tag_t gateway_processor_line, /**< (I) Tag of a gateway processor BOM Line */
int num_processor_lines, /**< (I) Number of associated processor lines */
tag_t *processor_lines, /**< (I) Array of processor lines */
logical *hasFailures, /**< (O) Did any failures occur */
int *numFailedLines, /**< (O) Number of failed remove lines */
tag_t **failedLines /**< (OF) numFailedLines Array of failed assoc lines */
);
/**
Given a gateway Processor BOM line, and an array of Software BOM lines, this method associates Processor and software using Embeds relation.
*/
extern MECHATRONICS_API int ESM_associate_processor_to_processor
(
tag_t gateway_processor_line, /**< (I) Tag of a gateway processor BOM Line */
int num_processor_lines, /**< (I) Number of associated processor lines */
tag_t *processor_lines, /**< (I) Array of processor lines */
logical *hasFailures, /**< (O) Did any failures occur */
int *numFailedLines, /**< (O) Number of failed association lines */
tag_t **failedLines /**< (OF) numFailedLines Array of failed association lines */
);
/**
Given a software BOM line, and an array of Software BOM lines, this method associates software using Dependent On relation.
*/
extern MECHATRONICS_API int ESM_associate_software_to_software
(
tag_t software_line, /**< (I) Tag of a software BOM Line */
int num_software_lines, /**< (I) Number of Software BOM lines */
tag_t *software_lines, /**< (I) Array of software BOM lines */
logical *hasFailures, /**< (O) Did any failures occur */
int *numFailedLines, /**< (O) Number of failed association lines */
tag_t **failedLines /**< (OF) numFailedLines Array of failed association lines */
);
/**
Given a software BOM line, and an array of Software BOM lines, this method associates software using Dependent On relation.
*/
extern MECHATRONICS_API int ESM_remove_software_to_software_association
(
tag_t software_line, /**< (I) Tag of a software BOM Line */
int num_software_lines, /**< (I) Number of Software BOM lines */
tag_t *software_lines, /**< (I) Array of software BOM lines */
logical *hasFailures, /**< (O) Did any failures occur */
int *numFailedLines, /**< (O) Number of failed removes */
tag_t **failedLines /**< (OF) numFailedLines Array of failed assoc lines */
);
/**
* Given a Processor BOM line, this function gets an array of Software BOM lines
* that are associated to Processor with Embeds relation
*/
extern MECHATRONICS_API int ESM_ask_embedded_software_of_processor
(
tag_t processor_line, /**< (I) Tag of a processor BOM Line */
int *num_software_lines, /**< (O) Number of Software BOM lines */
tag_t **software_lines /**< (OF) num_software_lines Array of software BOM lines */
);
/**
* Given a Software BOM line, this function gets an array of Processor BOM lines
* that are associated with it with Embeds relation
*/
extern MECHATRONICS_API int ESM_ask_processors_associated_with_software
(
tag_t software_line, /**< (I) Tag of a software BOM Line */
int *num_processor_lines, /**< (O) Number of processor BOM lines */
tag_t **processor_lines /**< (OF) num_processor_lines Array of processor BOM lines */
);
/**
* Given a Processor BOM line, this function gets an array of gateway processor
* BOM lines that are associated to it with GatewayOf relation
*/
extern MECHATRONICS_API int ESM_ask_gateway_of_processor
(
tag_t processor_line, /**< (I) Tag of a processor BOM Line */
int *num_gateway_processor_lines, /**< (O) Number of Gateway BOM lines */
tag_t **gateway_processor_lines /**< (OF) num_gateway_processor_lines Array of Gateway Processor BOM lines */
);
/**
* Given a gateway Processor BOM line, this function gets an array of processor
* BOM lines that are associated with GatewayOf relation
*/
extern MECHATRONICS_API int ESM_ask_processors_accessedby_processor
(
tag_t gateway_processor_line, /**< (I) Tag of a Gateway Processor BOM Line */
int *num_processor_lines, /**< (O) Number of processor BOM lines */
tag_t **processor_lines /**< (OF) num_processor_lines Array of processor BOM lines */
);
/**
* Given a primary software BOM line, this function gets an array of (secondary)
* Software BOM lines that are dependent on the primary software
*/
extern MECHATRONICS_API int ESM_ask_dependent_software_of_software
(
tag_t software_line, /**< (I) Tag of a primary software BOM Line */
int *num_software_lines, /**< (O) Number of secondary software BOM lines */
tag_t **software_lines /**< (OF) num_software_lines Array of secondary software BOM lines */
);
/**
* Given a (secondary) software BOM line, this function gets an array of (primary)
* Software BOM lines that are used by the secondary software
*/
extern MECHATRONICS_API int ESM_ask_software_used_by_software
(
tag_t software_line, /**< (I) Tag of a secondary software BOM Line */
int *num_software_lines, /**< (O) Number of primary software BOM lines */
tag_t **software_lines /**< (OF) num_software_lines Array of primary software BOM lines */
);
/** @} */
#ifdef __cplusplus
}
#endif
#include <mechatronics/libmechatronics_undef.h>
#endif