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.

979 lines
45 KiB

/*==============================================================================
Copyright (c) 2003-2005 UGS Corporation
Unpublished - All Rights Reserved
==============================================================================*/
/* */
#ifndef CMP_H
#define CMP_H
#include <fclasses/cmp_errors.h>
#include <fclasses/cmp_tokens.h>
#include <fclasses/tc_basic.h>
#include <fclasses/libfclasses_exports.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
@defgroup CMP Compare (CMP)
@{
*/
/**
@note Use #CMP_get_std_descriptor_p_id_seq_a_rev_qty_name to retrieve its value.
*/
extern FCLASSES_API const char* const CMP_std_descriptor_P_id_seq_A_rev_qty_name;
/**
@note Use #CMP_get_std_descriptor_p_id_a_rev_qty_name to retrieve its value.
*/
extern FCLASSES_API const char* const CMP_std_descriptor_P_id_A_rev_qty_name;
/**
@note Use #CMP_get_std_descriptor_appr_compare_name to retrieve its value.
*/
extern FCLASSES_API const char* const CMP_std_descriptor_appr_compare_name;
/**
@note Use #CMP_get_std_descriptor_lbom_compare_name to retrieve its value.
*/
extern FCLASSES_API const char * const CMP_std_descriptor_LBOM_compare_name;
/**
@note Use #CMP_get_std_descriptor_lbom_withocc_compare_name to retrieve its value.
*/
extern FCLASSES_API const char * const CMP_std_descriptor_LBOM_withocc_compare_name;
/* END OF HEADER */
/**
Creates a new compare engine based on the given compare descriptor.
*/
extern FCLASSES_API int CMP_create (
tag_t compare_desc, /**< (I) Compare descriptor, as returned by #CMP_find_desc. */
tag_t* engine /**< (O) New compare engine. */
);
/**
Adds @p new_object to @p side (left or right) of the @p engine.
Values for @p side can be 0 (CMP_LHS) or 1 (CMP_RHS).
@returns
<ul>
<li>#ITK_ok on success.
<li>#CMP_invalid_tag if @p engine is #NULLTAG
<li>#ERROR_INTERNAL_ERROR_CODE if @p engine is invalid.
</ul>
*/
extern FCLASSES_API int CMP_add_object (
tag_t engine, /**< (I) The compare engine. */
tag_t new_object, /**< (I) The new object to be added. */
int side /**< (I) The side of @p engine to add @p new object.This should be either CMP_LHS (0) or CMP_RHS(1). */
);
/**
Deletes @p engine. The engine should be deleted before deleting the compare descriptor.
@returns
<ul>
<li>#ITK_ok on success.
<li>#CMP_invalid_tag if @p engine has already been deleted or #NULLTAG
<li>#ERROR_INTERNAL_ERROR_CODE if @p engine is invalid.
</ul>
*/
extern FCLASSES_API int CMP_delete_engine (
tag_t engine /**< (I) The compare engine to be deleted. */
);
/**
Destroys @p compare_desc.
<br/>All engines must be deleted before the compare descriptor can be deleted. Failure to delete all the engines will result in a #CMP_descriptor_is_locked error.
@returns
<ul>
<li>#ITK_ok on success.
<li>#CMP_descriptor_delete_failed if @p compare_desc deletion failed.
<li>#CMP_descriptor_is_locked if @p compare_desc is locked by any compare engine.
<li>#CMP_invalid_tag if @p compare_desc has already deleted or #NULLTAG.
<li>#ERROR_INTERNAL_ERROR_CODE if @p compare_desc is invalid.
</ul>
*/
extern FCLASSES_API int CMP_delete_desc (
tag_t compare_desc /**< (I) The compare descriptor to be deleted. */
);
/**
Returns the named compare descriptor.
*/
extern FCLASSES_API int CMP_find_desc (
const char* name, /**< (I) Name of descriptor to find. */
tag_t* compare_desc /**< (O) Compare descriptor. */
);
/**
Sets the compare engine<6E>s application data pointer.
The application data pointer is intended to provide a mechanism for
passing important data into your external logic methods.
*/
extern FCLASSES_API int CMP_set_app_data (
tag_t engine, /**< (I) Compare engine. */
void* app_data /**< (I) Pointer to some vital piece of data. */
);
/**
Purges all sets that do not contain any differences from the given compare engine.
*/
extern FCLASSES_API int CMP_cull_compare_sets (
tag_t engine /**< (I) Compare engine from which to cull non-different sets. */
);
/**
Purges the given set from its compare engine, if that set does not contain any differences.
*/
extern FCLASSES_API int CMP_cull_compare_set (
tag_t set /**< (I) Compare set to cull from its owning engine. */
);
/**
Returns an array of the sets that exist inside the compare engine.
*/
extern FCLASSES_API int CMP_ask_sets (
tag_t engine, /**< (I) Compare engine to query. */
int* n, /**< (O) Number of sets in the engine. */
tag_t** sets /**< (OF) n Array of sets in the engine. */
);
/**
Returns an array of the sets that contain differences that exist inside the compare engine.
*/
extern FCLASSES_API int CMP_ask_diff_sets (
tag_t engine, /**< (I) Compare engine to query. */
int* n, /**< (O) Number of sets containing differences in the engine. */
tag_t** diff_sets /**< (OF) n Array of sets containing differences in the engine. */
);
/**
Returns an overview of the type of differences that a set contains.
*/
extern FCLASSES_API int CMP_ask_diff (
tag_t set, /**< (I) Compare set to query. */
logical* is_added, /**< (O) Returned as true if this set only contains objects on one side.
Returned as false if there are objects on both sides of the set. */
int* added_to_side, /**< (O) If is_added is true, then this will define which side contains objects.
It will be set to either #CMP_LHS or #CMP_RHS. */
logical* is_changed /**< (O) Returned as true if there are objects on both sides but
some aggregate element differs between the two sides. */
);
/**
Returns a list of the compare elements that differ between the two sides of the given set.
*/
extern FCLASSES_API int CMP_ask_diff_elements (
tag_t set, /**< (I) Compare set to query. */
int* n, /**< (O) Number of elements that are different. */
tag_t** elements /**< (OF) n Array of elements that are different. */
);
/**
Returns the display value on the given side of the compare set for a specific element.
*/
extern FCLASSES_API int CMP_ask_element_value (
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
char** value /**< (OF) Value as a string. */
);
/**
Returns the value on the given side of the compare set for a specific element.
<b>Restrictions:</b>
These functions are only valid for property elements and cached external elements.
It will fail for uncached external elements, as the system has no mechanism for obtaining the values of such elements.
*/
extern FCLASSES_API int CMP_ask_element_value_char(
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
char* value /**< (O) Value. */
);
/**
Returns the value on the given side of the compare set for a specific element.
<b>Restrictions:</b>
These functions are only valid for property elements and cached external elements.
It will fail for uncached external elements, as the system has no mechanism for obtaining the values of such elements.
*/
extern FCLASSES_API int CMP_ask_element_value_date(
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
date_t* value /**< (O) Value. */
);
/**
Returns the value on the given side of the compare set for a specific element.
<b>Restrictions:</b>
These functions are only valid for property elements and cached external elements.
It will fail for uncached external elements, as the system has no mechanism for obtaining the values of such elements.
*/
extern FCLASSES_API int CMP_ask_element_value_double(
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
double* value /**< (O) Value. */
);
/**
Returns the value on the given side of the compare set for a specific element.
<b>Restrictions:</b>
These functions are only valid for property elements and cached external elements.
It will fail for uncached external elements, as the system has no mechanism for obtaining the values of such elements.
*/
extern FCLASSES_API int CMP_ask_element_value_int(
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
int* value /**< (O) Value. */
);
/**
Returns the value on the given side of the compare set for a specific element.
<b>Restrictions:</b>
These functions are only valid for property elements and cached external elements.
It will fail for uncached external elements, as the system has no mechanism for obtaining the values of such elements.
*/
extern FCLASSES_API int CMP_ask_element_value_logical(
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
logical* value /**< (O) Value. */
);
/**
Returns the value on the given side of the compare set for a specific element.
The value parameter for the scalar type string (char*) needs to be MEM_free()d where it<69>s an output parameter.
<b>Restrictions:</b>
These functions are only valid for property elements and cached external elements.
It will fail for uncached external elements, as the system has no mechanism for obtaining the values of such elements.
*/
extern FCLASSES_API int CMP_ask_element_value_string(
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
char** value /**< (OF) Value. */
);
/**
Returns the value on the given side of the compare set for a specific element.
<b>Restrictions:</b>
These functions are only valid for property elements and cached external elements.
It will fail for uncached external elements, as the system has no mechanism for obtaining the values of such elements.
*/
extern FCLASSES_API int CMP_ask_element_value_tag(
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
tag_t* value /**< (O) Value. */
);
/**
Returns the values on the given side of the compare set for a specific element.
<b>Restrictions:</b>
These functions are only valid for property elements and cached external elements.
It will fail for uncached external elements, as the system has no mechanism for obtaining the values of such elements.
*/
extern FCLASSES_API int CMP_ask_element_value_char_array (
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
int* n, /**< (O) */
char** value /**< (OF) n Value. */
);
/**
Returns the values on the given side of the compare set for a specific element.
<b>Restrictions:</b>
These functions are only valid for property elements and cached external elements.
It will fail for uncached external elements, as the system has no mechanism for obtaining the values of such elements.
*/
extern FCLASSES_API int CMP_ask_element_value_date_array (
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
int* n, /**< (O) */
date_t** value /**< (OF) n Value. */
);
/**
Returns the values on the given side of the compare set for a specific element.
<b>Restrictions:</b>
These functions are only valid for property elements and cached external elements.
It will fail for uncached external elements, as the system has no mechanism for obtaining the values of such elements.
*/
extern FCLASSES_API int CMP_ask_element_value_tag_array (
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
int* n, /**< (O) */
tag_t** value /**< (OF) n Value. */
);
/**
Returns the values on the given side of the compare set for a specific element.
<b>Restrictions:</b>
These functions are only valid for property elements and cached external elements.
It will fail for uncached external elements, as the system has no mechanism for obtaining the values of such elements.
*/
extern FCLASSES_API int CMP_ask_element_value_string_array (
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
tag_t element, /**< (I) Element to query. */
int* n, /**< (O) */
char*** value /**< (OF) n Value. */
);
/**
Returns the objects on the given side of the compare set.
*/
extern FCLASSES_API int CMP_ask_objects_in_set (
tag_t set, /**< (I) Compare set to query. */
int side, /**< (I) Which side of the compare set to query. Set this to either #CMP_LHS or #CMP_RHS. */
int* n, /**< (O) Number of objects on given side of the set. */
tag_t** objects /**< (OF) n Array of objects on given side of the set. */
);
/**
Creates a new compare descriptor with the supplied name.
*/
extern FCLASSES_API int CMP_create_desc (
const char* name, /**< (I) New name */
tag_t* desc /**< (O) New compare descriptor. */
);
/**
Creates a new external compare element.
*/
extern FCLASSES_API int CMP_create_element (
tag_t desc, /**< (I) Compare descriptor to add the new element to. */
int priority, /**< (I) Set this to #CMP_primary_element, #CMP_aggregate_element, or #CMP_display_element. */
int cache_type, /**< (I) Defines data type for caching element values. Can be set to #CMP_cache_none. */
const char* name, /**< (I) Internationalized name for this element. */
logical suppress_value, /**< (I) Defines whether an application should display the element value or not.
This is used to flag that a particular value is too verbose for output to a compare report. */
tag_t* element /**< (O) Newly created element. */
);
/**
Creates a new compare property element.
*/
extern FCLASSES_API int CMP_create_prop_element (
tag_t desc, /**< (I) Compare descriptor to add the new element to. */
int priority, /**< (I) Set this to #CMP_primary_element, #CMP_aggregate_element, or #CMP_display_element. */
int cache_type, /**< (I) Defines data type for caching element values. Can be set to #CMP_cache_none.
Can be set to #CMP_cache_sync to force it to match the property data type,
or #CMP_cache_auto to perform a best fit guess. */
const char* name, /**< (I) Internationalized name for this element. This will supersede the property name.
This feature is useful if the property name is too verbose for output to a compare report. */
logical suppress_value, /**< (I) Defines whether an application should display the element value or not.
This is used to flag that a particular value is too verbose for output to a compare report. */
tag_t type_tag, /**< (I) Imantype of the object that the property is defined against. */
const char* prop_name, /**< (I) Name of the property that this element represents. */
const char* disp_prop_name, /**< (I) Name of an alternative property that is used for display purposes
in preference to the actual compared property.
For example, you might want to compare on Item Tag but display Item Id. */
tag_t* element /**< (O) Newly created element. */
);
/**
By default, elements are reported to users in the order in which they were defined in the compare descriptor.
This call allows users to have their elements returned in a different order through the #CMP_ask_ordered_elements function.
For example, when performing a BOMCompare which uses both Item Id and Sequence Number as primary elements,
users would expect the list of changed BOMLines returned to be sorted by Sequence Number and then by Item Id.
To achieve this they must define Sequence Number before Item Id in the compare descriptor.
However, this would result in the BOMCompare report output displaying the Sequence Number column before the Item Id Column.
The use of this function will allow users to reverse these two elements for output purposes.
*/
extern FCLASSES_API int CMP_set_element_display_order (
tag_t desc, /**< (I) */
int n, /**< (I) Number of elements. */
tag_t* elements /**< (I) n Array of all elements in the order in which they should be displayed. */
);
/**
Sets the aggregated data type for a compare property element.
By default, the aggregate type will be the same as the property type.
However, in some cases this is not appropriate. For example,
if your aggregate property has a tag data type then combining multiple tags into a single aggregate tag is meaningless.
In this situation you would want to change the aggregate type to be a tag array.
<b>Restrictions:</b>
This function is only valid for property elements. It will fail if called against an external element.
All compare cache types are valid, except for #CMP_cache_none, #CMP_cache_sync, and #CMP_cache_auto.
This function will fail if a cache is being used for the element.
This function should only be called if the element<6E>s cache type is set to #CMP_cache_none.
If a cache is being used for an element, then the aggregate type will, and indeed must, match the cache type.
*/
extern FCLASSES_API int CMP_set_aggregate_type (
tag_t prop_element, /**< (I) Compare property element to set the aggregate type of. */
int aggregate_type /**< (I) Data type of the aggregated values. */
);
extern FCLASSES_API int CMP_set_prop_element_order (
tag_t prop_element, /**< (I) */
int order /**< (I) */
);
/**
Sets a specific application flag for the given compare element.
See bom_tokens.h for a list of standard application flags.
*/
extern FCLASSES_API int CMP_set_element_application_flag (
tag_t element, /**< (I) */
int app_flag, /**< (I) */
logical value /**< (I) */
);
/** @if DOX_IGNORE
(TB) 26-Sep-2001 This directive introduces the header containing various
CMP_compare_*_method_t typedefs required by the auto-generated journalling
code. The <p> directive marks a non-void black-box pointer, in this case, a
function pointer. Customers needn't worry about such lower-case flags.
##include fclasses/cmp_tokens.h
@endif */
/**
Registers a method for comparing an object against a compare set, based on the specified element.
*/
extern FCLASSES_API int CMP_register_compare_obj_method (
tag_t element, /**< (I) Compare element to register the method against. */
CMP_compare_obj_method_t* method /**< (Ip) Method to register. */
);
/**
Registers a method for comparing the two sides of a compare set, based on the specified compare element.
*/
extern FCLASSES_API int CMP_register_compare_agg_method (
tag_t element, /**< (I) Compare element to register the method against. */
CMP_compare_agg_method_t* method /**< (Ip) Method to register. */
);
/**
Registers a method for updating this element<6E>s cached value when a new object is added to a set.
*/
extern FCLASSES_API int CMP_register_update_cache_method (
tag_t element, /**< (I) Compare element to register the method against. */
CMP_update_cache_method_t* method /**< (Ip) Method to register. */
);
/**
Registers a method for obtaining the display name for the given compare element.
This method is used (if defined) instead of the internationalized name that is stored on the element itself.
*/
extern FCLASSES_API int CMP_register_uif_name_method (
tag_t element, /**< (I) Compare element to register the method against. */
CMP_uif_name_method_t* method /**< (Ip) Method to register. */
);
/**
Registers a method for obtaining the display value of the given compare element.
*/
extern FCLASSES_API int CMP_register_uif_value_method (
tag_t element, /**< (I) Compare element to register the method against. */
CMP_uif_value_method_t* method /**< (Ip) Method to register. */
);
/**
Registers a method for releasing any memory associated with an externally defined cache on the given compare element.
This method is only invoked if the element cache type is set to #CMP_cache_pointer.
*/
extern FCLASSES_API int CMP_register_free_cache_method (
tag_t element, /**< (I) Compare element to register the method against. */
CMP_free_cache_method_t* method /**< (Ip) Method to register. */
);
/**
Returns a list of the elements of a compare descriptor.
*/
extern FCLASSES_API int CMP_ask_elements (
tag_t desc, /**< (I) Compare descriptor to query. */
int* n, /**< (O) Number of elements. */
tag_t** elements /**< (OF) n Array of elements. */
);
/**
Returns a list of the elements of a compare descriptor,
in the display order (defined by #CMP_set_element_display_order).
If no display order has been defined for the descriptor,
then the elements are returned in their definition order (same as #CMP_ask_elements).
*/
extern FCLASSES_API int CMP_ask_ordered_elements (
tag_t desc, /**< (I) Compare descriptor to query. */
int* n, /**< (O) Number of elements. */
tag_t** elements /**< (OF) n Array of elements. */
);
/**
Returns details about the given element.
*/
extern FCLASSES_API int CMP_ask_element_info (
tag_t element, /**< (I) Compare element to query. */
int* element_type, /**< (O) Defines whether it is a property element or an external element.
Set to either #CMP_property_element or #CMP_external_element. */
int* priority, /**< (O) Set to #CMP_primary_element, #CMP_aggregate_element, or #CMP_display_element. */
int* cache_type, /**< (O) Defines data type for caching element values. */
char** uif_name, /**< (OF) Internationalized name for this element. */
logical* suppress_value /**< (O) Defines whether an application should display the element value or not.
This is used to flag that a particular value is too verbose for output to a compare report. */
);
/**
Returns details about the given property element.
<b>Restrictions:</b>
This function is only valid for property elements.
It will fail if called against an external element.
*/
extern FCLASSES_API int CMP_ask_prop_element_info (
tag_t prop_element, /**< (I) Compare property element to query. */
int* aggregate_type, /**< (O) Data type for aggregated values. */
char** prop_name, /**< (OF) Name of the property that this element represents. */
char** disp_prop_name /**< (OF) Name of an alternative property that is used for display purposes
in preference to the actual compared property.
For example, you might want to compare on Item Tag but display Item Id. */
);
extern FCLASSES_API int CMP_ask_prop_element_order (
tag_t prop_element, /**< (I) */
int* order /**< (O) */
);
/**
Returns the element<6E>s method pointers.
*/
extern FCLASSES_API int CMP_ask_element_methods (
tag_t element, /**< (I) Compare element to query. */
CMP_compare_obj_method_t** obj_method, /**< (Op) Method for comparing an EIM object against a compare set. */
CMP_compare_agg_method_t** agg_method, /**< (Op) Method for comparing the two sides against a compare set. */
CMP_update_cache_method_t** cache_method, /**< (Op) Method for updating the data cache following an
EIM object<63>s insertion into a set. */
CMP_uif_name_method_t** name_method, /**< (Op) Method to return the display name for an element. */
CMP_uif_value_method_t** value_method, /**< (Op) Method to return the display value for an element. */
CMP_free_cache_method_t** free_method /**< (Op) Method to release an externally defined data cache. */
);
/**
Returns a specific application flag for the given compare element.
See bom_tokens.h for a list of standard application flags.
*/
extern FCLASSES_API int CMP_ask_element_application_flag (
tag_t element, /**< (I) */
int app_flag, /**< (I) */
logical * value /**< (O) */
);
/**
Returns the compare set<65>s engine.
*/
extern FCLASSES_API int CMP_ask_engine_of_set (
tag_t set, /**< (I) */
tag_t* engine /**< (O) */
);
/**
Returns the compare engine<6E>s application data pointer.
The application data pointer is intended to provide a mechanism for
passing important data into your external logic methods.
*/
extern FCLASSES_API int CMP_ask_app_data (
tag_t engine, /**< (I) Compare engine to query. */
void** app_data /**< (Op) Pointer to some vital piece of data. */
);
/**
Returns the data cache for the given element in a particular set.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_ask_data_cache (
tag_t set, /**< (I) Compare set to query. */
tag_t element, /**< (I) Compare element to query. */
int side, /**< (I) */
int* cache_type, /**< (O) Data type of the cache.
Will be set to #CMP_cache_none if no cache exists for this element of the given set. */
tag_t* cache /**< (O) Tag of the cache. */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_char (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
char* value /**< (O) Cached value. */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_date (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
date_t* value /**< (O) Cached value. */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_double (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
double* value /**< (O) Cached value. */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_int (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
int* value /**< (O) Cached value. */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_logical (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
logical* value /**< (O) Cached value. */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_tag (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
tag_t* value /**< (O) Cached value. */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_pointer (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
void** value /**< (Op) Cached value. */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_string (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
char** value /**< (OF) Cached value. */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_char_array (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
int* n, /**< (O) */
char** value /**< (OF) n Cached value. */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_date_array (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
int* n, /**< (O) */
date_t** value /**< (OF) n Cached value */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_tag_array (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
int* n, /**< (O) */
tag_t** value /**< (OF) n Cached value */
);
/**
Returns the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method
*/
extern FCLASSES_API int CMP_ask_cached_string_array (
tag_t cache, /**< (I) Data cache to query, as returned by #CMP_ask_data_cache. */
int* n, /**< (O) */
char*** value /**< (OF) n Cached value */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_char (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
char value /**< (I) Cached value. */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_date (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
date_t value /**< (I) Cached value. */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_double (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
double value /**< (I) Cached value. */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_int (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
int value /**< (I) Cached value. */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_logical (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
logical value /**< (I) Cached value. */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_string (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
char* value /**< (I) Cached value. */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_tag (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
tag_t value /**< (I) Cached value. */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_pointer (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
void* value /**< (I) Cached value. */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_char_array (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
int n, /**< (I) */
char* value /**< (I) n Cached value. */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_date_array (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
int n, /**< (I) */
date_t* value /**< (I) n Cached value. */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_tag_array (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
int n, /**< (I) */
tag_t* value /**< (I) n Cached value. */
);
/**
Sets the value stored in the given data cache.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
*/
extern FCLASSES_API int CMP_set_cached_string_array (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
int n, /**< (I) */
char** value /**< (I) Cached value. */
);
/**
Adds the given value to the previously cached value.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
The exact meaning of this operation depends on the data type of the cache.
For example, an integer cache will simply add the 2 values.
A string cache will concatenate the values. A logical cache will AND the values.
If the default behavior is not appropriate to a specific situation then a combination of
#CMP_ask_cached_char and #CMP_set_cached_char allows complete control over the cache update.
*/
extern FCLASSES_API int CMP_add_cached_char (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
char value /**< (I) Value to add to the already cached value. */
);
/**
Adds the given value to the previously cached value.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
The exact meaning of this operation depends on the data type of the cache.
For example, an integer cache will simply add the 2 values.
A string cache will concatenate the values. A logical cache will AND the values.
If the default behavior is not appropriate to a specific situation then a combination of
#CMP_ask_cached_date and #CMP_set_cached_date allows complete control over the cache update.
*/
extern FCLASSES_API int CMP_add_cached_date (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
date_t value /**< (I) Value to add to the already cached value. */
);
/**
Adds the given value to the previously cached value.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
The exact meaning of this operation depends on the data type of the cache.
For example, an integer cache will simply add the 2 values.
A string cache will concatenate the values. A logical cache will AND the values.
If the default behavior is not appropriate to a specific situation then a combination of
#CMP_ask_cached_double and #CMP_set_cached_double allows complete control over the cache update.
*/
extern FCLASSES_API int CMP_add_cached_double (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
double value /**< (I) Value to add to the already cached value. */
);
/**
Adds the given value to the previously cached value.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
The exact meaning of this operation depends on the data type of the cache.
For example, an integer cache will simply add the 2 values.
A string cache will concatenate the values. A logical cache will AND the values.
If the default behavior is not appropriate to a specific situation then a combination of
#CMP_ask_cached_int and #CMP_set_cached_int allows complete control over the cache update.
*/
extern FCLASSES_API int CMP_add_cached_int (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
int value /**< (I) Value to add to the already cached value. */
);
/**
Adds the given value to the previously cached value.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
The exact meaning of this operation depends on the data type of the cache.
For example, an integer cache will simply add the 2 values.
A string cache will concatenate the values. A logical cache will AND the values.
If the default behavior is not appropriate to a specific situation then a combination of
#CMP_ask_cached_logical and #CMP_set_cached_logical allows complete control over the cache update.
*/
extern FCLASSES_API int CMP_add_cached_logical (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
logical value /**< (I) Value to add to the already cached value. */
);
/**
Adds the given value to the previously cached value.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
The exact meaning of this operation depends on the data type of the cache.
For example, an integer cache will simply add the 2 values.
A string cache will concatenate the values. A logical cache will AND the values.
If the default behavior is not appropriate to a specific situation then a combination of
#CMP_ask_cached_string and #CMP_set_cached_string allows complete control over the cache update.
*/
extern FCLASSES_API int CMP_add_cached_string (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
char* value /**< (I) Value to add to the already cached value. */
);
/**
Adds the given value to the previously cached value.
This is intended for use by cache update methods registered with #CMP_register_update_cache_method.
The exact meaning of this operation depends on the data type of the cache.
For example, an integer cache will simply add the 2 values.
A string cache will concatenate the values. A logical cache will AND the values.
If the default behavior is not appropriate to a specific situation then a combination of
#CMP_ask_cached_tag and #CMP_set_cached_tag allows complete control over the cache update.
*/
extern FCLASSES_API int CMP_add_cached_tag (
tag_t cache, /**< (I) Data cache to set, as returned by #CMP_ask_data_cache. */
tag_t value /**< (I) Value to add to the already cached value. */
);
/** @if DOX_IGNORE
Doesn't exist:
extern FCLASSES_API int CMP_add_cached_pointer
@endif */
/** @} */
/*================================================================================================*/
#ifdef __cplusplus
}
#endif
#include <fclasses/libfclasses_undef.h>
#endif