master
1#ifndef __XPC_RICH_ERROR_H__
2#define __XPC_RICH_ERROR_H__
3
4#ifndef __XPC_INDIRECT__
5#error "Please #include <xpc/xpc.h> instead of this file directly."
6// For HeaderDoc.
7#include <xpc/base.h>
8#endif // __XPC_INDIRECT__
9
10#ifndef __BLOCKS__
11#error "XPC Rich Errors require Blocks support."
12#endif // __BLOCKS__
13
14XPC_ASSUME_NONNULL_BEGIN
15__BEGIN_DECLS
16
17#pragma mark Properties
18/*!
19 * @function xpc_rich_error_copy_description
20 * Copy the string description of an error.
21 *
22 * @param error
23 * The error to be examined.
24 *
25 * @result
26 * The underlying C string for the provided error. This string should be
27 * disposed of with free(3) when done.
28 *
29 * This will return NULL if a string description could not be generated.
30 */
31XPC_EXPORT XPC_WARN_RESULT
32char * _Nullable
33xpc_rich_error_copy_description(xpc_rich_error_t error);
34
35/*!
36 * @function xpc_rich_error_can_retry
37 * Whether the operation the error originated from can be retried.
38 *
39 * @param error
40 * The error to be inspected.
41 *
42 * @result
43 * Whether the operation the error originated from can be retried.
44 */
45XPC_EXPORT XPC_WARN_RESULT
46bool
47xpc_rich_error_can_retry(xpc_rich_error_t error);
48
49__END_DECLS
50XPC_ASSUME_NONNULL_END
51
52#endif // __XPC_RICH_ERROR_H__