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.
100 lines
3.2 KiB
100 lines
3.2 KiB
/*==============================================================================
|
|
Copyright (c) 2003-2005 UGS Corporation
|
|
Unpublished - All Rights Reserved
|
|
==============================================================================*/
|
|
|
|
/**
|
|
@file
|
|
|
|
This file contains the prototypes for functions that find and list differences between BVR's.
|
|
A function prototype for freeing the memory allocated is also provided.
|
|
*/
|
|
|
|
/* */
|
|
|
|
#ifndef PS_CMP_BVR_H
|
|
#define PS_CMP_BVR_H
|
|
|
|
#include <stdio.h>
|
|
#include <unidefs.h>
|
|
|
|
/**
|
|
@defgroup PS_CMP_BVR PS Compare BOM View Revision
|
|
@ingroup USER_EXITS
|
|
|
|
Basically, #SMP_PS_list_bvr_diffs builds up a list of all occurrence data of both the supplied BVRs.
|
|
This list is ordered by sequence number, and (within that) by item/rev tag.
|
|
qty[0] holds the quantity of the occurrence in the first BVR, and qty[1] that for the second BVR.
|
|
Each difference element represents the number of occurrences of a single item/rev in the BVRs.
|
|
|
|
Note that:
|
|
<ol>
|
|
<li>If a difference element contains the same quantity value for both BVRs,
|
|
this is an unchanged occurrence (i.e. each BVR has the same number of occurrences of this item/rev).
|
|
<li>If a difference element contains different quantities for each BVR,
|
|
there have either been additional occurrences added to the second BVR compared to the first (qty[1] \> qty[0]),
|
|
or some occurrences have been removed from the second compared to the first (qty[1] \< qty[0]).
|
|
</ol>
|
|
@{
|
|
*/
|
|
|
|
/**
|
|
Used to hold the tag of the BOMline referencing the compare,
|
|
also the windows used (this allows them to be disposed of using #SMP_PS_free_bvr_diffs)
|
|
*/
|
|
typedef struct SMP_PS_bvr_diff_s
|
|
{
|
|
tag_t myBOMline;
|
|
tag_t window1;
|
|
tag_t window2;
|
|
} SMP_PS_bvr_diff_t, *SMP_PS_bvr_diff_p_t;
|
|
|
|
#include <user_exits/libuser_exits_exports.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"{
|
|
#endif
|
|
|
|
/**
|
|
Build up a list of differences between the two given BVR's
|
|
*/
|
|
extern USER_EXITS_API int SMP_PS_list_bvr_diffs(
|
|
tag_t bvr_a, /**< (I) First BVR to compare */
|
|
tag_t bvr_b, /**< (I) Second BVR to compare */
|
|
int* n_diffs, /**< (O) Number of differences returned */
|
|
SMP_PS_bvr_diff_p_t* diffs /**< (OF) n_diffs List of differences */
|
|
);
|
|
|
|
/**
|
|
Print given list of diffs to given file
|
|
*/
|
|
extern USER_EXITS_API int SMP_PS_print_bvr_diffs(
|
|
FILE* f, /**< (I) File to which to list the diffs */
|
|
SMP_PS_bvr_diff_p_t diffs /**< (I) List of differences */
|
|
);
|
|
|
|
/**
|
|
Print given list of diffs to given file in MRP format
|
|
*/
|
|
extern USER_EXITS_API int SMP_PS_mrp_print_bvr_diffs(
|
|
FILE* f, /**< (I) File to which to list the diffs */
|
|
SMP_PS_bvr_diff_p_t diffs /**< (I) List of differences */
|
|
);
|
|
|
|
/**
|
|
Free all memory allocated by #SMP_PS_list_bvr_diffs for the given difference listing
|
|
*/
|
|
extern USER_EXITS_API int SMP_PS_free_bvr_diffs(
|
|
SMP_PS_bvr_diff_p_t* diffs /**< (I) List of differences to free */
|
|
);
|
|
|
|
/** @} */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#include <user_exits/libuser_exits_undef.h>
|
|
|
|
#endif
|