20.1.17 ead_remove_all() (deletes values by using a batch operation)
- Organization of this subsection
(1) Description
Using a batch operation, this function deletes the values associated with a specified list of keys.
If the same key is specified multiple times, it is processed multiple times in the order specified in the list of keys.
(2) Format
#include <eads.h> ead_remove_all_results ead_remove_all ( const EAD_CACHE *cp, /* In */ const ead_keys *keys, /* In */ int *error_code /* Out */ );
(3) Arguments
- cp
-
Specifies the handle (pointer) to the cache where the values to be deleted are stored.
Specify the handle (pointer) obtained from ead_start_cache() when access to the cache was started.
- keys
-
Specifies the list of keys (ead_keys structure) to be deleted.
For details about the data types that can be specified, see 15.2.2(1) Data types that can be specified as keys.
For details about the ead_keys structure and its format, see 20.1.41 ead_keys structure (multiple keys).
- error_code
-
Specifies the pointer from which to retrieve the error code.
For details about error codes, see 20.2 Error codes in the client library (C).
(4) Return value
Using a batch operation, this function returns the results (ead_remove_all_results structure) of deleting the values associated with the specified list of keys.
-
If the batch deletion processing was entirely successful
The value of the success_operation_number member is the same as the number of keys specified in the argument, and the value of the failure_info member is NULL.
-
If the batch deletion processing failed partially or entirely
The failure_info member contains as many sets of information about failed processing as indicated in the failure_operation_number member.
-
If an error occurred during non-key processing (such as an invalid argument or a shortage of memory area)
A numeric-type member of the ead_remove_all_results structure contains 0, and a pointer-type member contains NULL.
For details about the ead_remove_all_results structure and its format, see 20.1.46 ead_remove_all_results structure (execution results of ead_remove_all()).
(5) Notes
-
If the batch value deletion processing fails, this function returns the following error codes:
-
If the batch deletion processing failed entirely
EAD_ERROR_BATCH_FAILED_ALL
-
If the batch deletion processing failed partially
EAD_ERROR_BATCH_FAILED_PART
-
-
The memory area for storing the results of batch deletion of values that is returned as the return value is not freed automatically. You must free it in the application program. For details, see 19.1.1(10) Freeing a memory area returned as a return value.
-
If the deletion processing fails, data to be deleted might still remain. Therefore, determine the cause of the error based on the error code and identify which operations have failed. If necessary, re-execute ead_remove_all() (deletes values by using a batch operation).
-
Because caches are not locked while operations are ongoing, a target value might be changed by another cache operation during batch operation.
-
When batch operations are performed on a large amount of data, a large amount of memory might be required by EADS clients and EADS servers.
-
When batch operations are performed on a large amount of data, it might take a long time to complete the processing. To ensure proper operation, make sure that you design a timeout value that is appropriate for the processing time.