#ifndef PROTOOL_H_FILE
#define PROTOOL_H_FILE
/* ProTool.h: definitions and action functions for ProTool objects */
#include <ProMfg.h>
#include <ProParamval.h>
#include <ProToolinput.h>
#include <ProItemerr.h>
#include <ProMdl.h>
PRO_BEGIN_C_DECLS
/* Types and defines */
/* Publicly accessible tool attribute constants
NOTE: You should not depend on the presence or absence of other, internal
tool attributes!
*/
typedef enum ProToolAttributes {
PRO_TOOL_BY_REFERENCE = 1 /* ON = by reference, OFF = by copy */
} ProToolAttribute;
/* Macros for dealing with tool attributes
*/
#define PRO_TOOL_ATTRIBUTE_ADD( attribute_int, one_attr_const ) \
( (attribute_int) |= ( 1 << ((one_attr_const)-1) ) )
#define PRO_TOOL_ATTRIBUTE_RMV( attribute_int, one_attr_const ) \
( (attribute_int) &= ~( 1 << ((one_attr_const)-1) ) )
#define PRO_TOOL_ATTRIBUTE_HAS( attribute_int, one_attr_const ) \
( (attribute_int) & ( 1 << ((one_attr_const)-1) ) )
/* Function prototypes */
extern ProError ProToolInit (PRO_CONST_ARG ProLine tool_id,
ProMfg owner_mfg,
ProTool *p_tool_ref);
/*
Purpose: Initializes a <i>ProTool</i> data structure.
Input Arguments:
tool_id - The identifier of the tool (a string)
owner_mfg - The handle to the manufacturing model that owns the tool
p_tool_ref - The <i>ProTool</i> structure to be initialized
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function successfully initialized the structure.
PRO_TK_BAD_INPUTS - One or more of the arguments are invalid.
*/
extern ProError ProToolTypeGet (PRO_CONST_ARG ProTool* tool_ref,
ProToolType *r_tool_type);
/*
Purpose: Retrieves the type of the specified tool.
Input Arguments:
tool_ref - The handle to the tool
Output Arguments:
r_tool_type - The type of tool
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_E_NOT_FOUND - The tool specified by <i>tool_ref</i> was not
found.
*/
extern ProError ProToolParamGet (PRO_CONST_ARG ProTool* tool_ref,
PRO_CONST_ARG ProCharName param_name,
ProParamvalue *p_param_val);
/*
Purpose: Retrieves the value of one of the tool parameters.
Input Arguments:
tool_ref - The handle to the tool
param_name - The name of the tool parameter
Output Arguments:
p_param_val - The value of the specified parameter
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the information.
PRO_TK_E_NOT_FOUND - The tool specified by <i>tool_ref</i> was not
found.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
*/
extern ProError ProToolAttributesGet (
PRO_CONST_ARG ProTool* tool_ref,
int* r_attr);
/*
Purpose: Retrieves an integer that contains all the attributes of the
specified tool.
Input Arguments:
tool_ref - The handle to the tool
Output Arguments:
r_attr - An integer representation of the tool attributes
Return Values:
PRO_TK_NO_ERROR - The function successfully retrieved the attributes.
PRO_TK_E_NOT_FOUND - The tool specified by <i>tool_ref</i> was not
found.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProToolVerify (PRO_CONST_ARG ProTool* tool_ref);
/*
Purpose: Verifies the existence of the specified tool.
Input Arguments:
tool_ref - The handle to the tool
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The tool handle refers to an existing tool.
PRO_TK_E_NOT_FOUND - The tool specified by <i>tool_ref</i> was not
found.
PRO_TK_BAD_INPUTS - The argument is invalid.
*/
extern ProError ProToolCreate (ProTool* tool_ref,
ProConstToolinputPtr tool_input,
ProErrorlist *p_errors);
/*
Purpose: Creates a new tool.
<p> NOTE:
<p> If <i>tool_ref -> tool_id</i> already exists, this function
tries to adjust it until it is unique.
Input Arguments:
tool_ref - The handle to the tool to be created.
tool_input - The tool information (parameters, attributes, type, and so
on).
Output Arguments:
p_errors - The error list that explains where problems occurred. This
list is valid only until the next call to this function.
Return Values:
PRO_TK_NO_ERROR - The function successfully created the tool.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
*/
extern ProError ProToolRedefine (PRO_CONST_ARG ProTool* tool_ref,
ProConstToolinputPtr tool_input,
ProErrorlist *p_errors);
/*
Purpose: Redefines an existing tool.
Input Arguments:
tool_ref - The handle to the tool to be redefined.
tool_input - The new tool information.
Output Arguments:
p_errors - The error list that explains where problems occurred. This
list is valid only until the next call to this function.
Return Values:
PRO_TK_NO_ERROR - The function successfully redefined the tool.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
*/
extern ProError ProToolModelMdlnameGet (const ProTool *p_tool_handle,
ProFamilyMdlName r_model_name,
ProMdlfileType *r_model_type);
/*
Purpose: Returns the model associated to the tool, if the tool references a
model.<b>Note:</b> This function does not support Multi-CAD models
as solid tool models in the tool manager. This will be supported
in a future release.
Input Arguments:
p_tool_handle - The tool
Output Arguments:
r_model_name - The name of the model associated to the tool. Free this
argument using ProWstringFree.
r_model_type - The model type
Return Values:
PRO_TK_NO_ERROR - The function successfully returned the tool model.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_E_NOT_FOUND - The tool specified by <i>p_tool_handle</i> was not
found.
*/
extern ProError ProToolFileRead (ProTool *tool_handle,
ProPath input_file);
/*
Purpose: Creates a new tool or redefines an existing tool.
Input Arguments:
tool_handle - The handle to the tool to be created or redefined.
input_file - The full path and name of the input file.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_INVALID_FILE - The input file does not have the correct format,
or data.
*/
extern ProError ProToolFileWrite (ProTool *tool_handle,
ProPath output_file);
/*
Purpose: Writes tool information into a file.
Input Arguments:
tool_handle - The handle to the tool to be saved in a file.
output_file - The full path and name of the output file.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid.
PRO_TK_CANT_WRITE - Could not write the output file to the designated
file name or path.
*/
PRO_END_C_DECLS
#endif /* PROTOOL_H_FILE */