#include <xpc/xpc.h>

xpc/xpc.h

__XPC_INDIRECT__
101 functions · 28 macros · 21 variables · 9 typedefs

macroXPC_TRANSACTION_DEPRECATED

#define XPC_TRANSACTION_DEPRECATED 

macroXPC_API_VERSION

#define XPC_API_VERSION 20200610

typedefxpc_type_t

@typedef xpc_type_t A type that describes XPC object types.
typedef const struct _xpc_type_s * xpc_type_t

macroXPC_TYPE

#define XPC_TYPE(type) const struct _xpc_type_s type

typedefxpc_object_t

typedef void * xpc_object_t

macroXPC_DECL

#define XPC_DECL(name) typedef struct _##name##_s * name##_t

macroXPC_GLOBAL_OBJECT

#define XPC_GLOBAL_OBJECT(object) (&(object))

macroXPC_RETURNS_RETAINED

#define XPC_RETURNS_RETAINED 

typedefxpc_handler_t

@typedef xpc_handler_t The type of block that is accepted by the XPC connection APIs. @param object An XPC object that is to be handled. If there was an error, this object will be equal to one of the well-known XPC_ERROR_* dictionaries and can be compared with the equality operator. @discussion You are not responsible for releasing the event object.
typedef void (^xpc_handler_t)(xpc_object_t object)

macroXPC_TYPE_CONNECTION

@define XPC_TYPE_CONNECTION A type representing a connection to a named service. This connection is bidirectional and can be used to both send and receive messages. A connection carries the credentials of the remote service provider.
#define XPC_TYPE_CONNECTION (&_xpc_type_connection)

variable_xpc_type_connection

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

typedefxpc_connection_t

XPC_DECL(xpc_connection)

typedefxpc_connection_handler_t

@typedef xpc_connection_handler_t The type of the function that will be invoked for a bundled XPC service when there is a new connection on the service. @param connection A new connection that is equivalent to one received by a listener connection. See the documentation for {@link xpc_connection_set_event_handler} for the semantics associated with the received connection.
typedef void (*xpc_connection_handler_t)(xpc_connection_t connection)

macroXPC_TYPE_ENDPOINT

@define XPC_TYPE_ENDPOINT A type representing a connection in serialized form. Unlike a connection, an endpoint is an inert object that does not have any runtime activity associated with it. Thus, it is safe to pass an endpoint in a message. Upon receiving an endpoint, the recipient can use xpc_connection_create_from_endpoint() to create as many distinct connections as desired.
#define XPC_TYPE_ENDPOINT (&_xpc_type_endpoint)

variable_xpc_type_endpoint

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

typedefxpc_endpoint_t

XPC_DECL(xpc_endpoint)

macroXPC_TYPE_NULL

@define XPC_TYPE_NULL A type representing a null object. This type is useful for disambiguating an unset key in a dictionary and one which has been reserved but set empty. Also, this type is a way to represent a "null" value in dictionaries, which do not accept NULL.
#define XPC_TYPE_NULL (&_xpc_type_null)

variable_xpc_type_null

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_BOOL

@define XPC_TYPE_BOOL A type representing a Boolean value.
#define XPC_TYPE_BOOL (&_xpc_type_bool)

variable_xpc_type_bool

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_BOOL_TRUE

@define XPC_BOOL_TRUE A constant representing a Boolean value of true. You may compare a Boolean object against this constant to determine its value.
#define XPC_BOOL_TRUE XPC_GLOBAL_OBJECT(_xpc_bool_true)

variable_xpc_bool_true

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT const struct _xpc_bool_s _xpc_bool_true

macroXPC_BOOL_FALSE

@define XPC_BOOL_FALSE A constant representing a Boolean value of false. You may compare a Boolean object against this constant to determine its value.
#define XPC_BOOL_FALSE XPC_GLOBAL_OBJECT(_xpc_bool_false)

variable_xpc_bool_false

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT const struct _xpc_bool_s _xpc_bool_false

macroXPC_TYPE_INT64

@define XPC_TYPE_INT64 A type representing a signed, 64-bit integer value.
#define XPC_TYPE_INT64 (&_xpc_type_int64)

variable_xpc_type_int64

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_UINT64

@define XPC_TYPE_UINT64 A type representing an unsigned, 64-bit integer value.
#define XPC_TYPE_UINT64 (&_xpc_type_uint64)

variable_xpc_type_uint64

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_DOUBLE

@define XPC_TYPE_DOUBLE A type representing an IEEE-compliant, double-precision floating point value.
#define XPC_TYPE_DOUBLE (&_xpc_type_double)

variable_xpc_type_double

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_DATE

@define XPC_TYPE_DATE A type representing a date interval. The interval is with respect to the Unix epoch. XPC dates are in Unix time and are thus unaware of local time or leap seconds.
#define XPC_TYPE_DATE (&_xpc_type_date)

variable_xpc_type_date

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_DATA

@define XPC_TYPE_DATA A type representing an arbitrary buffer of bytes.
#define XPC_TYPE_DATA (&_xpc_type_data)

variable_xpc_type_data

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_STRING

@define XPC_TYPE_STRING A type representing a NUL-terminated C-string.
#define XPC_TYPE_STRING (&_xpc_type_string)

variable_xpc_type_string

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_UUID

@define XPC_TYPE_UUID A type representing a Universally Unique Identifier as defined by uuid(3).
#define XPC_TYPE_UUID (&_xpc_type_uuid)

variable_xpc_type_uuid

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_FD

@define XPC_TYPE_FD A type representing a POSIX file descriptor.
#define XPC_TYPE_FD (&_xpc_type_fd)

variable_xpc_type_fd

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_SHMEM

@define XPC_TYPE_SHMEM A type representing a region of shared memory.
#define XPC_TYPE_SHMEM (&_xpc_type_shmem)

variable_xpc_type_shmem

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_ARRAY

@define XPC_TYPE_ARRAY A type representing an array of XPC objects. This array must be contiguous, i.e. it cannot contain NULL values. If you wish to indicate that a slot is empty, you can insert a null object. The array will grow as needed to accommodate more objects.
#define XPC_TYPE_ARRAY (&_xpc_type_array)

variable_xpc_type_array

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_DICTIONARY

@define XPC_TYPE_DICTIONARY A type representing a dictionary of XPC objects, keyed off of C-strings. You may insert NULL values into this collection. The dictionary will grow as needed to accommodate more key/value pairs.
#define XPC_TYPE_DICTIONARY (&_xpc_type_dictionary)

variable_xpc_type_dictionary

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_TYPE_ERROR

@define XPC_TYPE_ERROR A type representing an error object. Errors in XPC are dictionaries, but xpc_get_type() will return this type when given an error object. You cannot create an error object directly; XPC will only give them to handlers. These error objects have pointer values that are constant across the lifetime of your process and can be safely compared. These constants are enumerated in the header for the connection object. Error dictionaries may reserve keys so that they can be queried to obtain more detailed information about the error. Currently, the only reserved key is XPC_ERROR_KEY_DESCRIPTION.
#define XPC_TYPE_ERROR (&_xpc_type_error)

variable_xpc_type_error

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT

macroXPC_ERROR_KEY_DESCRIPTION

@define XPC_ERROR_KEY_DESCRIPTION In an error dictionary, querying for this key will return a string object that describes the error in a human-readable way.
#define XPC_ERROR_KEY_DESCRIPTION _xpc_error_key_description

variable_xpc_error_key_description

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT const char * const _xpc_error_key_description

macroXPC_EVENT_KEY_NAME

@define XPC_EVENT_KEY_NAME In an event dictionary, this querying for this key will return a string object that describes the event.
#define XPC_EVENT_KEY_NAME _xpc_event_key_name

variable_xpc_event_key_name

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) XPC_EXPORT const char * const _xpc_event_key_name

macroXPC_TYPE_RICH_ERROR

@define XPC_TYPE_RICH_ERROR @discussion Rich errors provide a simple dynamic error type that can indicate whether an error is retry-able or not.
#define XPC_TYPE_RICH_ERROR (&_xpc_type_rich_error)

typedefxpc_rich_error_t

XPC_DECL(xpc_rich_error)

functionxpc_retain

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 xpc_object_t xpc_retain(xpc_object_t object)
@function xpc_retain @abstract Increments the reference count of an object. @param object The object which is to be manipulated. @result The object which was given. @discussion Calls to xpc_retain() must be balanced with calls to xpc_release() to avoid leaking memory.

functionxpc_release

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 void xpc_release(xpc_object_t object)
@function xpc_release @abstract Decrements the reference count of an object. @param object The object which is to be manipulated. @discussion The caller must take care to balance retains and releases. When creating or retaining XPC objects, the creator obtains a reference on the object. Thus, it is the caller's responsibility to call xpc_release() on those objects when they are no longer needed.

functionxpc_get_type

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT xpc_type_t xpc_get_type(xpc_object_t object)
@function xpc_get_type @abstract Returns the type of an object. @param object The object to examine. @result An opaque pointer describing the type of the object. This pointer is suitable direct comparison to exported type constants with the equality operator.

functionxpc_type_get_name

__OSX_AVAILABLE_STARTING(__MAC_10_15, __IPHONE_13_0)
XPC_EXPORT XPC_NONNULL1 const char * xpc_type_get_name(xpc_type_t type)
@function xpc_type_get_name @abstract Returns a string describing an XPC object type. @param type The type to describe. @result A string describing the type of an object, like "string" or "int64". This string should not be freed or modified.

functionxpc_copy

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL_ALL XPC_WARN_RESULT XPC_RETURNS_RETAINED xpc_object_t _Nullable xpc_copy(
	xpc_object_t object
)
@function xpc_copy @abstract Creates a copy of the object. @param object The object to copy. @result The new object. NULL if the object type does not support copying or if sufficient memory for the copy could not be allocated. Service objects do not support copying. @discussion When called on an array or dictionary, xpc_copy() will perform a deep copy. The object returned is not necessarily guaranteed to be a new object, and whether it is will depend on the implementation of the object being copied.

functionxpc_equal

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_WARN_RESULT bool xpc_equal(
	xpc_object_t object1,
	xpc_object_t object2
)
@function xpc_equal @abstract Compares two objects for equality. @param object1 The first object to compare. @param object2 The second object to compare. @result Returns true if the objects are equal, otherwise false. Two objects must be of the same type in order to be equal. For two arrays to be equal, they must contain the same values at the same indexes. For two dictionaries to be equal, they must contain the same values for the same keys. Two objects being equal implies that their hashes (as returned by xpc_hash()) are also equal.

functionxpc_hash

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_WARN_RESULT size_t xpc_hash(xpc_object_t object)
@function xpc_hash @abstract Calculates a hash value for the given object. @param object The object for which to calculate a hash value. This value may be modded with a table size for insertion into a dictionary-like data structure. @result The calculated hash value. @discussion Note that the computed hash values for any particular type and value of an object can change across releases and platforms and should not be assumed to be constant across all time and space or stored persistently.

functionxpc_copy_description

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_WARN_RESULT XPC_NONNULL1 char * xpc_copy_description(
	xpc_object_t object
)
@function xpc_copy_description @abstract Copies a debug string describing the object. @param object The object which is to be examined. @result A string describing object which contains information useful for debugging. This string should be disposed of with free(3) when done.

functionxpc_null_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_null_create(void)
@function xpc_null_create @abstract Creates an XPC object representing the null object. @result A new null object.

functionxpc_bool_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_bool_create(bool value)
@function xpc_bool_create @abstract Creates an XPC Boolean object. @param value The Boolean primitive value which is to be boxed. @result A new Boolean object.

functionxpc_bool_get_value

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT bool xpc_bool_get_value(xpc_object_t xbool)
@function xpc_bool_get_value @abstract Returns the underlying Boolean value from the object. @param xbool The Boolean object which is to be examined. @result The underlying Boolean value or false if the given object was not an XPC Boolean object.

functionxpc_int64_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_int64_create(
	int64_t value
)
@function xpc_int64_create @abstract Creates an XPC signed integer object. @param value The signed integer value which is to be boxed. @result A new signed integer object.

functionxpc_int64_get_value

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 int64_t xpc_int64_get_value(xpc_object_t xint)
@function xpc_int64_get_value @abstract Returns the underlying signed 64-bit integer value from an object. @param xint The signed integer object which is to be examined. @result The underlying signed 64-bit value or 0 if the given object was not an XPC integer object.

functionxpc_uint64_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_uint64_create(
	uint64_t value
)
@function xpc_uint64_create @abstract Creates an XPC unsigned integer object. @param value The unsigned integer value which is to be boxed. @result A new unsigned integer object.

functionxpc_uint64_get_value

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 uint64_t xpc_uint64_get_value(xpc_object_t xuint)
@function xpc_uint64_get_value @abstract Returns the underlying unsigned 64-bit integer value from an object. @param xuint The unsigned integer object which is to be examined. @result The underlying unsigned integer value or 0 if the given object was not an XPC unsigned integer object.

functionxpc_double_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_double_create(
	double value
)
@function xpc_double_create @abstract Creates an XPC double object. @param value The floating point quantity which is to be boxed. @result A new floating point object.

functionxpc_double_get_value

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 double xpc_double_get_value(xpc_object_t xdouble)
@function xpc_double_get_value @abstract Returns the underlying double-precision floating point value from an object. @param xdouble The floating point object which is to be examined. @result The underlying floating point value or NAN if the given object was not an XPC floating point object.

functionxpc_date_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_date_create(
	int64_t interval
)
@function xpc_date_create @abstract Creates an XPC date object. @param interval The date interval which is to be boxed. Negative values indicate the number of nanoseconds before the epoch. Positive values indicate the number of nanoseconds after the epoch. The interval is with respect to the Unix epoch. XPC dates are in Unix time and are thus unaware of local time or leap seconds. @result A new date object.

functionxpc_date_create_from_current

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_date_create_from_current(
	void
)
@function xpc_date_create_from_current @abstract Creates an XPC date object representing the current date. @result A new date object representing the current date.

functionxpc_date_get_value

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 int64_t xpc_date_get_value(xpc_object_t xdate)
@function xpc_date_get_value @abstract Returns the underlying date interval from an object. @param xdate The date object which is to be examined. @result The underlying date interval or 0 if the given object was not an XPC date object. The interval is with respect to the Unix epoch. XPC dates are in Unix time and are thus unaware of local time or leap seconds.

functionxpc_data_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_data_create(
	const void * _Nullable XPC_SIZEDBY(length) bytes,
	size_t length
)
@function xpc_data_create @abstract Creates an XPC object representing buffer of bytes. @param bytes The buffer of bytes which is to be boxed. You may create an empty data object by passing NULL for this parameter and 0 for the length. Passing NULL with any other length will result in undefined behavior. @param length The number of bytes which are to be boxed. @result A new data object. @discussion This method will copy the buffer given into internal storage. After calling this method, it is safe to dispose of the given buffer.

functionxpc_data_create_with_dispatch_data

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 xpc_object_t xpc_data_create_with_dispatch_data(
	dispatch_data_t ddata
)
@function xpc_data_create_with_dispatch_data @abstract Creates an XPC object representing buffer of bytes described by the given GCD data object. @param ddata The GCD data object containing the bytes which are to be boxed. This object is retained by the data object. @result A new data object. @discussion The object returned by this method will refer to the buffer returned by dispatch_data_create_map(). The point where XPC will make the call to dispatch_data_create_map() is undefined.

functionxpc_data_get_length

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 size_t xpc_data_get_length(xpc_object_t xdata)
@function xpc_data_get_length @abstract Returns the length of the data encapsulated by an XPC data object. @param xdata The data object which is to be examined. @result The length of the underlying boxed data or 0 if the given object was not an XPC data object.

functionxpc_data_get_bytes_ptr

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 const void * _Nullable xpc_data_get_bytes_ptr(
	xpc_object_t xdata
)
@function xpc_data_get_bytes_ptr @abstract Returns a pointer to the internal storage of a data object. @param xdata The data object which is to be examined. @result A pointer to the underlying boxed data or NULL if the given object was not an XPC data object.

functionxpc_data_get_bytes

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2 size_t xpc_data_get_bytes(
	xpc_object_t xdata,
	void *buffer,
	size_t off,
	size_t length
)
@function xpc_data_get_bytes @abstract Copies the bytes stored in a data object into the specified buffer. @param xdata The data object which is to be examined. @param buffer The buffer in which to copy the data object's bytes. @param off The offset at which to begin the copy. If this offset is greater than the length of the data element, nothing is copied. Pass 0 to start the copy at the beginning of the buffer. @param length The length of the destination buffer. @result The number of bytes that were copied into the buffer or 0 if the given object was not an XPC data object.

functionxpc_string_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 xpc_object_t xpc_string_create(
	const char *string
)
@function xpc_string_create @abstract Creates an XPC object representing a NUL-terminated C-string. @param string The C-string which is to be boxed. @result A new string object.

functionxpc_string_create_with_format

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 XPC_PRINTF(1, 2) xpc_object_t xpc_string_create_with_format(
	const char *fmt,
	...
)
@function xpc_string_create_with_format @abstract Creates an XPC object representing a C-string that is generated from the given format string and arguments. @param fmt The printf(3)-style format string from which to construct the final C-string to be boxed. @param ... The arguments which correspond to those specified in the format string. @result A new string object.

functionxpc_string_create_with_format_and_arguments

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 XPC_PRINTF(1, 0) xpc_object_t xpc_string_create_with_format_and_arguments(
	const char *fmt,
	va_list ap
)
@function xpc_string_create_with_format_and_arguments @abstract Creates an XPC object representing a C-string that is generated from the given format string and argument list pointer. @param fmt The printf(3)-style format string from which to construct the final C-string to be boxed. @param ap A pointer to the arguments which correspond to those specified in the format string. @result A new string object.

functionxpc_string_get_length

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL size_t xpc_string_get_length(
	xpc_object_t xstring
)
@function xpc_string_get_length @abstract Returns the length of the underlying string. @param xstring The string object which is to be examined. @result The length of the underlying string, not including the NUL-terminator, or 0 if the given object was not an XPC string object.

functionxpc_string_get_string_ptr

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 const char * _Nullable xpc_string_get_string_ptr(
	xpc_object_t xstring
)
@function xpc_string_get_string_ptr @abstract Returns a pointer to the internal storage of a string object. @param xstring The string object which is to be examined. @result A pointer to the string object's internal storage or NULL if the given object was not an XPC string object.

functionxpc_uuid_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 xpc_object_t xpc_uuid_create(
	const uuid_t XPC_NONNULL_ARRAY uuid
)
@function xpc_uuid_create @abstract Creates an XPC object representing a universally-unique identifier (UUID) as described by uuid(3). @param uuid The UUID which is to be boxed. @result A new UUID object.

functionxpc_uuid_get_bytes

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 const uint8_t * _Nullable xpc_uuid_get_bytes(xpc_object_t xuuid)
@function xpc_uuid_get_bytes @abstract Returns a pointer to the the boxed UUID bytes in an XPC UUID object. @param xuuid The UUID object which is to be examined. @result The underlying <code>uuid_t</code> bytes or NULL if the given object was not an XPC UUID object. The returned pointer may be safely passed to the uuid(3) APIs.

functionxpc_fd_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t _Nullable xpc_fd_create(
	int fd
)
@function xpc_fd_create @abstract Creates an XPC object representing a POSIX file descriptor. @param fd The file descriptor which is to be boxed. @result A new file descriptor object. NULL if sufficient memory could not be allocated or if the given file descriptor was not valid. @discussion This method performs the equivalent of a dup(2) on the descriptor, and thus it is safe to call close(2) on the descriptor after boxing it with a file descriptor object. IMPORTANT: Pointer equality is the ONLY valid test for equality between two file descriptor objects. There is no reliable way to determine whether two file descriptors refer to the same inode with the same capabilities, so two file descriptor objects created from the same underlying file descriptor number will not compare equally with xpc_equal(). This is also true of a file descriptor object created using xpc_copy() and the original. This also implies that two collections containing file descriptor objects cannot be equal unless the exact same object was inserted into both.

functionxpc_fd_dup

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 int xpc_fd_dup(xpc_object_t xfd)
@function xpc_fd_dup @abstract Returns a file descriptor that is equivalent to the one boxed by the file file descriptor object. @param xfd The file descriptor object which is to be examined. @result A file descriptor that is equivalent to the one originally given to xpc_fd_create(). If the descriptor could not be created or if the given object was not an XPC file descriptor, -1 is returned. @discussion Multiple invocations of xpc_fd_dup() will not return the same file descriptor number, but they will return descriptors that are equivalent, as though they had been created by dup(2). The caller is responsible for calling close(2) on the returned descriptor.

functionxpc_shmem_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 xpc_object_t xpc_shmem_create(
	void *region,
	size_t length
)
@function xpc_shmem_create @abstract Creates an XPC object representing the given shared memory region. @param region A pointer to a region of shared memory, created through a call to mmap(2) with the MAP_SHARED flag, which is to be boxed. @param length The length of the region. @result A new shared memory object. @discussion Only memory regions whose exact characteristics are known to the caller should be boxed using this API. Memory returned from malloc(3) may not be safely shared on either OS X or iOS because the underlying virtual memory objects for malloc(3)ed allocations are owned by the malloc(3) subsystem and not the caller of malloc(3). If you wish to share a memory region that you receive from another subsystem, part of the interface contract with that other subsystem must include how to create the region of memory, or sharing it may be unsafe. Certain operations may internally fragment a region of memory in a way that would truncate the range detected by the shared memory object. vm_copy(), for example, may split the region into multiple parts to avoid copying certain page ranges. For this reason, it is recommended that you delay all VM operations until the shared memory object has been created so that the VM system knows that the entire range is intended for sharing.

functionxpc_shmem_map

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL size_t xpc_shmem_map(
	xpc_object_t xshmem,
	void * _Nullable * _Nonnull region
)
@function xpc_shmem_map @abstract Maps the region boxed by the XPC shared memory object into the caller's address space. @param xshmem The shared memory object to be examined. @param region On return, this will point to the region at which the shared memory was mapped. @result The length of the region that was mapped. If the mapping failed or if the given object was not an XPC shared memory object, 0 is returned. The length of the mapped region will always be an integral page size, even if the creator of the region specified a non-integral page size. @discussion The resulting region must be disposed of with munmap(2). It is the responsibility of the caller to manage protections on the new region accordingly.

typedefxpc_array_applier_t

@typedef xpc_array_applier_t A block to be invoked for every value in the array. @param index The current index in the iteration. @param value The current value in the iteration. @result A Boolean indicating whether iteration should continue.
typedef bool (^xpc_array_applier_t)(size_t index, xpc_object_t _Nonnull value)

functionxpc_array_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_array_create(
	const xpc_object_t _Nonnull *XPC_COUNTEDBY(count) _Nullable objects,
	size_t count
)
@function xpc_array_create @abstract Creates an XPC object representing an array of XPC objects. @discussion This array must be contiguous and cannot contain any NULL values. If you wish to insert the equivalent of a NULL value, you may use the result of {@link xpc_null_create}. @param objects An array of XPC objects which is to be boxed. The order of this array is preserved in the object. If this array contains a NULL value, the behavior is undefined. This parameter may be NULL only if the count is 0. @param count The number of objects in the given array. If the number passed is less than the actual number of values in the array, only the specified number of items are inserted into the resulting array. If the number passed is more than the the actual number of values, the behavior is undefined. @result A new array object.

functionxpc_array_create_empty

API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0)) XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_array_create_empty(
	void
)
@function xpc_array_create_empty @abstract Creates an XPC object representing an array of XPC objects. @result A new array object. @see xpc_array_create

functionxpc_array_set_value

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3 void xpc_array_set_value(
	xpc_object_t xarray,
	size_t index,
	xpc_object_t value
)
@function xpc_array_set_value @abstract Inserts the specified object into the array at the specified index. @param xarray The array object which is to be manipulated. @param index The index at which to insert the value. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array). If the index is outside that range, the behavior is undefined. @param value The object to insert. This value is retained by the array and cannot be NULL. If there is already a value at the specified index, it is released, and the new value is inserted in its place.

functionxpc_array_append_value

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 void xpc_array_append_value(
	xpc_object_t xarray,
	xpc_object_t value
)
@function xpc_array_append_value @abstract Appends an object to an XPC array. @param xarray The array object which is to be manipulated. @param value The object to append. This object is retained by the array.

functionxpc_array_get_count

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 size_t xpc_array_get_count(xpc_object_t xarray)
@function xpc_array_get_count @abstract Returns the count of values currently in the array. @param xarray The array object which is to be examined. @result The count of values in the array or 0 if the given object was not an XPC array.

functionxpc_array_get_value

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL_ALL xpc_object_t xpc_array_get_value(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_get_value @abstract Returns the value at the specified index in the array. @param xarray The array object which is to be examined. @param index The index of the value to obtain. This value must lie within the range of indexes as specified in xpc_array_set_value(). @result The object at the specified index within the array or NULL if the given object was not an XPC array. @discussion This method does not grant the caller a reference to the underlying object, and thus the caller is not responsible for releasing the object.

functionxpc_array_apply

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL_ALL bool xpc_array_apply(
	xpc_object_t xarray,
	XPC_NOESCAPE xpc_array_applier_t applier
)
@function xpc_array_apply @abstract Invokes the given block for every value in the array. @param xarray The array object which is to be examined. @param applier The block which this function applies to every element in the array. @result A Boolean indicating whether iteration of the array completed successfully. Iteration will only fail if the applier block returns false. @discussion You should not modify an array's contents during iteration. The array indexes are iterated in order.

macroXPC_ARRAY_APPEND

@define XPC_ARRAY_APPEND A constant that may be passed as the destination index to the class of primitive XPC array setters indicating that the given primitive should be appended to the array.
#define XPC_ARRAY_APPEND ((size_t)(-1))

functionxpc_array_set_bool

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 void xpc_array_set_bool(
	xpc_object_t xarray,
	size_t index,
	bool value
)
@function xpc_array_set_bool @abstract Inserts a <code>bool</code> (primitive) value into an array. @param xarray The array object which is to be manipulated. @param index The index at which to insert the value. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array) or be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is undefined. @param value The <code>bool</code> value to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_array_get_value()}.

functionxpc_array_set_int64

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 void xpc_array_set_int64(
	xpc_object_t xarray,
	size_t index,
	int64_t value
)
@function xpc_array_set_int64 @abstract Inserts an <code>int64_t</code> (primitive) value into an array. @param xarray The array object which is to be manipulated. @param index The index at which to insert the value. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array) or be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is undefined. @param value The <code>int64_t</code> value to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_array_get_value()}.

functionxpc_array_set_uint64

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 void xpc_array_set_uint64(
	xpc_object_t xarray,
	size_t index,
	uint64_t value
)
@function xpc_array_set_uint64 @abstract Inserts a <code>uint64_t</code> (primitive) value into an array. @param xarray The array object which is to be manipulated. @param index The index at which to insert the value. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array) or be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is undefined. @param value The <code>uint64_t</code> value to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_array_get_value()}.

functionxpc_array_set_double

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 void xpc_array_set_double(
	xpc_object_t xarray,
	size_t index,
	double value
)
@function xpc_array_set_double @abstract Inserts a <code>double</code> (primitive) value into an array. @param xarray The array object which is to be manipulated. @param index The index at which to insert the value. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array) or be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is undefined. @param value The <code>double</code> value to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_array_get_value()}.

functionxpc_array_set_date

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 void xpc_array_set_date(
	xpc_object_t xarray,
	size_t index,
	int64_t value
)
@function xpc_array_set_date @abstract Inserts a date value into an array. @param xarray The array object which is to be manipulated. @param index The index at which to insert the value. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array) or be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is undefined. @param value The date value to insert, represented as an <code>int64_t</code>. The interval is with respect to the Unix epoch. XPC dates are in Unix time and are thus unaware of local time or leap seconds. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_array_get_value()}.

functionxpc_array_set_data

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 void xpc_array_set_data(
	xpc_object_t xarray,
	size_t index,
	const void *XPC_SIZEDBY(length) _Nullable bytes,
	size_t length
)
@function xpc_array_set_data @abstract Inserts a raw data value into an array. @param xarray The array object which is to be manipulated. @param index The index at which to insert the value. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array) or be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is undefined. @param bytes The raw data to insert. May be NULL if length is zero. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_array_get_value()}. @param length The length of the data.

functionxpc_array_set_string

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3 void xpc_array_set_string(
	xpc_object_t xarray,
	size_t index,
	const char *string
)
@function xpc_array_set_string @abstract Inserts a C string into an array. @param xarray The array object which is to be manipulated. @param index The index at which to insert the value. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array) or be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is undefined. @param string The C string to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_array_get_value()}.

functionxpc_array_set_uuid

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3 void xpc_array_set_uuid(
	xpc_object_t xarray,
	size_t index,
	const uuid_t XPC_NONNULL_ARRAY uuid
)
@function xpc_array_set_uuid @abstract Inserts a <code>uuid_t</code> (primitive) value into an array. @param xarray The array object which is to be manipulated. @param index The index at which to insert the value. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array) or be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is undefined. @param uuid The UUID primitive to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_array_get_value()}.

functionxpc_array_set_fd

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 void xpc_array_set_fd(xpc_object_t xarray, size_t index, int fd)
@function xpc_array_set_fd @abstract Inserts a file descriptor into an array. @param xarray The array object which is to be manipulated. @param index The index at which to insert the value. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array) or be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is undefined. @param fd The file descriptor to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_array_get_value()}.

functionxpc_array_set_connection

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3 void xpc_array_set_connection(
	xpc_object_t xarray,
	size_t index,
	xpc_connection_t connection
)
@function xpc_array_set_connection @abstract Inserts a connection into an array. @param xarray The array object which is to be manipulated. @param index The index at which to insert the value. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array) or be XPC_ARRAY_APPEND. If the index is outside that range, the behavior is undefined. @param connection The connection to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_array_get_value()}. The connection is NOT retained by the array.

functionxpc_array_get_bool

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 bool xpc_array_get_bool(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_get_bool @abstract Gets a <code>bool</code> primitive value from an array directly. @param xarray The array which is to be examined. @param index The index of the value to obtain. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array). If the index is outside that range, the behavior is undefined. @result The underlying <code>bool</code> value at the specified index. false if the value at the specified index is not a Boolean value.

functionxpc_array_get_int64

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 int64_t xpc_array_get_int64(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_get_int64 @abstract Gets an <code>int64_t</code> primitive value from an array directly. @param xarray The array which is to be examined. @param index The index of the value to obtain. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array). If the index is outside that range, the behavior is undefined. @result The underlying <code>int64_t</code> value at the specified index. 0 if the value at the specified index is not a signed integer value.

functionxpc_array_get_uint64

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 uint64_t xpc_array_get_uint64(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_get_uint64 @abstract Gets a <code>uint64_t</code> primitive value from an array directly. @param xarray The array which is to be examined. @param index The index of the value to obtain. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array). If the index is outside that range, the behavior is undefined. @result The underlying <code>uint64_t</code> value at the specified index. 0 if the value at the specified index is not an unsigned integer value.

functionxpc_array_get_double

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 double xpc_array_get_double(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_get_double @abstract Gets a <code>double</code> primitive value from an array directly. @param xarray The array which is to be examined. @param index The index of the value to obtain. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array). If the index is outside that range, the behavior is undefined. @result The underlying <code>double</code> value at the specified index. NAN if the value at the specified index is not a floating point value.

functionxpc_array_get_date

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 int64_t xpc_array_get_date(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_get_date @abstract Gets a date interval from an array directly. @param xarray The array which is to be examined. @param index The index of the value to obtain. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array). If the index is outside that range, the behavior is undefined. @result The underlying date interval at the specified index. The interval is with respect to the Unix epoch. XPC dates are in Unix time and are thus unaware of local time or leap seconds. 0 if the value at the specified index is not a date value.

functionxpc_array_get_data

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 const void * _Nullable xpc_array_get_data(
	xpc_object_t xarray,
	size_t index,
	size_t * _Nullable length
)
@function xpc_array_get_data @abstract Gets a pointer to the raw bytes of a data object from an array directly. @param xarray The array which is to be examined. @param index The index of the value to obtain. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array). If the index is outside that range, the behavior is undefined. @param length Upon return, will contain the length of the data corresponding to the specified key. @result The underlying bytes at the specified index. NULL if the value at the specified index is not a data value.

functionxpc_array_get_string

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 const char * _Nullable xpc_array_get_string(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_get_string @abstract Gets a C string value from an array directly. @param xarray The array which is to be examined. @param index The index of the value to obtain. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array). If the index is outside that range, the behavior is undefined. @result The underlying C string at the specified index. NULL if the value at the specified index is not a C string value.

functionxpc_array_get_uuid

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 const uint8_t * _Nullable xpc_array_get_uuid(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_get_uuid @abstract Gets a <code>uuid_t</code> value from an array directly. @param xarray The array which is to be examined. @param index The index of the value to obtain. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array). If the index is outside that range, the behavior is undefined. @result The underlying <code>uuid_t</code> value at the specified index. The null UUID if the value at the specified index is not a UUID value. The returned pointer may be safely passed to the uuid(3) APIs.

functionxpc_array_dup_fd

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 int xpc_array_dup_fd(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_dup_fd @abstract Gets a file descriptor from an array directly. @param xarray The array which is to be examined. @param index The index of the value to obtain. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array). If the index is outside that range, the behavior is undefined. @result A new file descriptor created from the value at the specified index. You are responsible for close(2)ing this descriptor. -1 if the value at the specified index is not a file descriptor value.

functionxpc_array_create_connection

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 xpc_connection_t _Nullable xpc_array_create_connection(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_create_connection @abstract Creates a connection object from an array directly. @param xarray The array which is to be examined. @param index The index of the value to obtain. This value must lie within the index space of the array (0 to N-1 inclusive, where N is the count of the array). If the index is outside that range, the behavior is undefined. @result A new connection created from the value at the specified index. You are responsible for calling xpc_release() on the returned connection. NULL if the value at the specified index is not an endpoint containing a connection. Each call to this method for the same index in the same array will yield a different connection. See {@link xpc_connection_create_from_endpoint()} for discussion as to the responsibilities when dealing with the returned connection.

functionxpc_array_get_dictionary

__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL xpc_object_t _Nullable xpc_array_get_dictionary(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_get_dictionary @abstract Returns the dictionary at the specified index in the array. @param xarray The array object which is to be examined. @param index The index of the value to obtain. This value must lie within the range of indexes as specified in xpc_array_set_value(). @result The object at the specified index within the array or NULL if the given object was not an XPC array or if the value at the specified index was not a dictionary. @discussion This method does not grant the caller a reference to the underlying object, and thus the caller is not responsible for releasing the object.

functionxpc_array_get_array

__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL xpc_object_t _Nullable xpc_array_get_array(
	xpc_object_t xarray,
	size_t index
)
@function xpc_array_get_array @abstract Returns the array at the specified index in the array. @param xarray The array object which is to be examined. @param index The index of the value to obtain. This value must lie within the range of indexes as specified in xpc_array_set_value(). @result The object at the specified index within the array or NULL if the given object was not an XPC array or if the value at the specified index was not an array. @discussion This method does not grant the caller a reference to the underlying object, and thus the caller is not responsible for releasing the object.

typedefxpc_dictionary_applier_t

@typedef xpc_dictionary_applier_t A block to be invoked for every key/value pair in the dictionary. @param key The current key in the iteration. @param value The current value in the iteration. @result A Boolean indicating whether iteration should continue.
typedef _Bool (^)(const char * _Nonnull, xpc_object_t _Nonnull) xpc_dictionary_applier_t;

functionxpc_dictionary_create

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_dictionary_create(
	const char *XPC_CSTRING _Nonnull const *XPC_COUNTEDBY(count) _Nullable keys,
	const xpc_object_t _Nullable *XPC_COUNTEDBY(count) _Nullable values,
	size_t count
)
@function xpc_dictionary_create @abstract Creates an XPC object representing a dictionary of XPC objects keyed to C-strings. @param keys An array of C-strings that are to be the keys for the values to be inserted. Each element of this array is copied into the dictionary's internal storage. Elements of this array may NOT be NULL. @param values A C-array that is parallel to the array of keys, consisting of objects that are to be inserted. Each element in this array is retained. Elements in this array may be NULL. @param count The number of key/value pairs in the given arrays. If the count is less than the actual count of values, only that many key/value pairs will be inserted into the dictionary. If the count is more than the actual count of key/value pairs, the behavior is undefined. If one array is NULL and the other is not, the behavior is undefined. If both arrays are NULL and the count is non-0, the behavior is undefined. @result The new dictionary object.

functionxpc_dictionary_create_empty

API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0)) XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT xpc_object_t xpc_dictionary_create_empty(
	void
)
@function xpc_dictionary_create_empty @abstract Creates an XPC object representing a dictionary of XPC objects keyed to C-strings. @result The new dictionary object. @see xpc_dictionary_create

functionxpc_dictionary_create_reply

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL_ALL xpc_object_t _Nullable xpc_dictionary_create_reply(
	xpc_object_t original
)
@function xpc_dictionary_create_reply @abstract Creates a dictionary that is in reply to the given dictionary. @param original The original dictionary that is to be replied to. @result The new dictionary object. NULL if the object was not a dictionary with a reply context. @discussion After completing successfully on a dictionary, this method may not be called again on that same dictionary. Attempts to do so will return NULL. When this dictionary is sent across the reply connection, the remote end's reply handler is invoked.

functionxpc_dictionary_set_value

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 void xpc_dictionary_set_value(
	xpc_object_t xdict,
	const char *key,
	xpc_object_t _Nullable value
)
@function xpc_dictionary_set_value @abstract Sets the value for the specified key to the specified object. @param xdict The dictionary object which is to be manipulated. @param key The key for which the value shall be set. @param value The object to insert. The object is retained by the dictionary. If there already exists a value for the specified key, the old value is released and overwritten by the new value. This parameter may be NULL, in which case the value corresponding to the specified key is deleted if present.

functionxpc_dictionary_get_value

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2 xpc_object_t _Nullable xpc_dictionary_get_value(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_get_value @abstract Returns the value for the specified key. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result The object for the specified key within the dictionary. NULL if there is no value associated with the specified key or if the given object was not an XPC dictionary. @discussion This method does not grant the caller a reference to the underlying object, and thus the caller is not responsible for releasing the object.

functionxpc_dictionary_get_count

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 size_t xpc_dictionary_get_count(
	xpc_object_t xdict
)
@function xpc_dictionary_get_count @abstract Returns the number of values stored in the dictionary. @param xdict The dictionary object which is to be examined. @result The number of values stored in the dictionary or 0 if the given object was not an XPC dictionary. Calling xpc_dictionary_set_value() with a non-NULL value will increment the count. Calling xpc_dictionary_set_value() with a NULL value will decrement the count.

functionxpc_dictionary_apply

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL_ALL bool xpc_dictionary_apply(
	xpc_object_t xdict,
	XPC_NOESCAPE xpc_dictionary_applier_t applier
)
@function xpc_dictionary_apply @abstract Invokes the given block for every key/value pair in the dictionary. @param xdict The dictionary object which is to be examined. @param applier The block which this function applies to every key/value pair in the dictionary. @result A Boolean indicating whether iteration of the dictionary completed successfully. Iteration will only fail if the applier block returns false. @discussion You should not modify a dictionary's contents during iteration. There is no guaranteed order of iteration over dictionaries.

functionxpc_dictionary_get_remote_connection

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL xpc_connection_t _Nullable xpc_dictionary_get_remote_connection(
	xpc_object_t xdict
)
@function xpc_dictionary_get_remote_connection @abstract Returns the connection from which the dictionary was received. @param xdict The dictionary object which is to be examined. @result If the dictionary was received by a connection event handler or a dictionary created through xpc_dictionary_create_reply(), a connection object over which a reply message can be sent is returned. For any other dictionary, NULL is returned.

functionxpc_dictionary_set_bool

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 void xpc_dictionary_set_bool(
	xpc_object_t xdict,
	const char *key,
	bool value
)
@function xpc_dictionary_set_bool @abstract Inserts a <code>bool</code> (primitive) value into a dictionary. @param xdict The dictionary which is to be manipulated. @param key The key for which the primitive value shall be set. @param value The <code>bool</code> value to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_dictionary_get_value()}.

functionxpc_dictionary_set_int64

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 void xpc_dictionary_set_int64(
	xpc_object_t xdict,
	const char *key,
	int64_t value
)
@function xpc_dictionary_set_int64 @abstract Inserts an <code>int64_t</code> (primitive) value into a dictionary. @param xdict The dictionary which is to be manipulated. @param key The key for which the primitive value shall be set. @param value The <code>int64_t</code> value to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_dictionary_get_value()}.

functionxpc_dictionary_set_uint64

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 void xpc_dictionary_set_uint64(
	xpc_object_t xdict,
	const char *key,
	uint64_t value
)
@function xpc_dictionary_set_uint64 @abstract Inserts a <code>uint64_t</code> (primitive) value into a dictionary. @param xdict The dictionary which is to be manipulated. @param key The key for which the primitive value shall be set. @param value The <code>uint64_t</code> value to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_dictionary_get_value()}.

functionxpc_dictionary_set_double

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 void xpc_dictionary_set_double(
	xpc_object_t xdict,
	const char *key,
	double value
)
@function xpc_dictionary_set_double @abstract Inserts a <code>double</code> (primitive) value into a dictionary. @param xdict The dictionary which is to be manipulated. @param key The key for which the primitive value shall be set. @param value The <code>double</code> value to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_dictionary_get_value()}.

functionxpc_dictionary_set_date

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 void xpc_dictionary_set_date(
	xpc_object_t xdict,
	const char *key,
	int64_t value
)
@function xpc_dictionary_set_date @abstract Inserts a date value into a dictionary. @param xdict The dictionary which is to be manipulated. @param key The key for which the value shall be set. @param value The date value to insert, represented as an <code>int64_t</code>. The interval is with respect to the Unix epoch. XPC dates are in Unix time and are thus unaware of local time or leap seconds. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_dictionary_get_value()}.

functionxpc_dictionary_set_data

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 void xpc_dictionary_set_data(
	xpc_object_t xdict,
	const char *key,
	const void *XPC_SIZEDBY(length) _Nullable bytes,
	size_t length
)
@function xpc_dictionary_set_data @abstract Inserts a raw data value into a dictionary. @param xdict The dictionary which is to be manipulated. @param key The key for which the primitive value shall be set. @param bytes The bytes to insert. May be NULL if length is zero. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_dictionary_get_value()}. @param length The length of the data.

functionxpc_dictionary_set_string

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3 void xpc_dictionary_set_string(
	xpc_object_t xdict,
	const char *key,
	const char *string
)
@function xpc_dictionary_set_string @abstract Inserts a C string value into a dictionary. @param xdict The dictionary which is to be manipulated. @param key The key for which the primitive value shall be set. @param string The C string to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_dictionary_get_value()}.

functionxpc_dictionary_set_uuid

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3 void xpc_dictionary_set_uuid(
	xpc_object_t xdict,
	const char *key,
	const uuid_t XPC_NONNULL_ARRAY uuid
)
@function xpc_dictionary_set_uuid @abstract Inserts a UUID (primitive) value into a dictionary. @param xdict The dictionary which is to be manipulated. @param key The key for which the primitive value shall be set. @param uuid The <code>uuid_t</code> value to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_dictionary_get_value()}.

functionxpc_dictionary_set_fd

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 void xpc_dictionary_set_fd(
	xpc_object_t xdict,
	const char *key,
	int fd
)
@function xpc_dictionary_set_fd @abstract Inserts a file descriptor into a dictionary. @param xdict The dictionary which is to be manipulated. @param key The key for which the primitive value shall be set. @param fd The file descriptor to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_dictionary_get_value()}.

functionxpc_dictionary_set_connection

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 XPC_NONNULL3 void xpc_dictionary_set_connection(
	xpc_object_t xdict,
	const char *key,
	xpc_connection_t connection
)
@function xpc_dictionary_set_connection @abstract Inserts a connection into a dictionary. @param xdict The dictionary which is to be manipulated. @param key The key for which the primitive value shall be set. @param connection The connection to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_dictionary_get_value()}. The connection is NOT retained by the dictionary.

functionxpc_dictionary_set_mach_send

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2 void xpc_dictionary_set_mach_send(
	xpc_object_t xdict,
	const char *key,
	mach_port_t p
)
@function xpc_dictionary_set_mach_send @abstract Inserts a send right into a dictionary. @param xdict The dictionary which is to be manipulated. @param key The key for which the primitive value shall be set. @param p The port to insert. After calling this method, the XPC object corresponding to the primitive value inserted may be safely retrieved with {@link xpc_dictionary_copy_mach_send()}. @discussion The XPC runtime sends the port with disposition `MACH_MSG_TYPE_COPY_SEND`

functionxpc_dictionary_get_bool

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL bool xpc_dictionary_get_bool(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_get_bool @abstract Gets a <code>bool</code> primitive value from a dictionary directly. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result The underlying <code>bool</code> value for the specified key. false if the the value for the specified key is not a Boolean value or if there is no value for the specified key.

functionxpc_dictionary_get_int64

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL int64_t xpc_dictionary_get_int64(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_get_int64 @abstract Gets an <code>int64_t</code> primitive value from a dictionary directly. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result The underlying <code>int64_t</code> value for the specified key. 0 if the value for the specified key is not a signed integer value or if there is no value for the specified key.

functionxpc_dictionary_get_uint64

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL uint64_t xpc_dictionary_get_uint64(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_get_uint64 @abstract Gets a <code>uint64_t</code> primitive value from a dictionary directly. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result The underlying <code>uint64_t</code> value for the specified key. 0 if the value for the specified key is not an unsigned integer value or if there is no value for the specified key.

functionxpc_dictionary_get_double

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL double xpc_dictionary_get_double(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_get_double @abstract Gets a <code>double</code> primitive value from a dictionary directly. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result The underlying <code>double</code> value for the specified key. NAN if the value for the specified key is not a floating point value or if there is no value for the specified key.

functionxpc_dictionary_get_date

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL int64_t xpc_dictionary_get_date(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_get_date @abstract Gets a date value from a dictionary directly. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result The underlying date interval for the specified key. The interval is with respect to the Unix epoch. XPC dates are in Unix time and are thus unaware of local time or leap seconds. 0 if the value for the specified key is not a date value or if there is no value for the specified key.

functionxpc_dictionary_get_data

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 const void * _Nullable xpc_dictionary_get_data(
	xpc_object_t xdict,
	const char *key,
	size_t * _Nullable length
)
@function xpc_dictionary_get_data @abstract Gets a raw data value from a dictionary directly. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @param length For the data type, the third parameter, upon output, will contain the length of the data corresponding to the specified key. May be NULL. @result The underlying raw data for the specified key. NULL if the value for the specified key is not a data value or if there is no value for the specified key.

functionxpc_dictionary_get_string

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL const char * _Nullable xpc_dictionary_get_string(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_get_string @abstract Gets a C string value from a dictionary directly. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result The underlying C string for the specified key. NULL if the value for the specified key is not a C string value or if there is no value for the specified key.

functionxpc_dictionary_get_uuid

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2 const uint8_t * _Nullable xpc_dictionary_get_uuid(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_get_uuid @abstract Gets a uuid value from a dictionary directly. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result The underlying <code>uuid_t</code> value for the specified key. NULL if the value at the specified index is not a UUID value. The returned pointer may be safely passed to the uuid(3) APIs.

functionxpc_dictionary_dup_fd

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL int xpc_dictionary_dup_fd(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_dup_fd @abstract Creates a file descriptor from a dictionary directly. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result A new file descriptor created from the value for the specified key. You are responsible for close(2)ing this descriptor. -1 if the value for the specified key is not a file descriptor value or if there is no value for the specified key.

functionxpc_dictionary_create_connection

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL_ALL xpc_connection_t _Nullable xpc_dictionary_create_connection(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_create_connection @abstract Creates a connection from a dictionary directly. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result A new connection created from the value for the specified key. You are responsible for calling xpc_release() on the returned connection. NULL if the value for the specified key is not an endpoint containing a connection or if there is no value for the specified key. Each call to this method for the same key in the same dictionary will yield a different connection. See {@link xpc_connection_create_from_endpoint()} for discussion as to the responsibilities when dealing with the returned connection.

functionxpc_dictionary_get_dictionary

__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL xpc_object_t _Nullable xpc_dictionary_get_dictionary(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_get_dictionary @abstract Returns the dictionary value for the specified key. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result The object for the specified key within the dictionary. NULL if there is no value associated with the specified key, if the given object was not an XPC dictionary, or if the object for the specified key is not a dictionary. @discussion This method does not grant the caller a reference to the underlying object, and thus the caller is not responsible for releasing the object.

functionxpc_dictionary_get_array

__OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL xpc_object_t _Nullable xpc_dictionary_get_array(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_get_array @abstract Returns the array value for the specified key. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result The object for the specified key within the dictionary. NULL if there is no value associated with the specified key, if the given object was not an XPC dictionary, or if the object for the specified key is not an array. @discussion This method does not grant the caller a reference to the underlying object, and thus the caller is not responsible for releasing the object.

functionxpc_dictionary_copy_mach_send

__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1 XPC_NONNULL2 mach_port_t xpc_dictionary_copy_mach_send(
	xpc_object_t xdict,
	const char *key
)
@function xpc_dictionary_copy_mach_send @abstract Returns a send right to the mach port. @param xdict The dictionary object which is to be examined. @param key The key whose value is to be obtained. @result The object for the specified key within the dictionary. `MACH_PORT_NULL` if there is no value associated with the specified key, if the given object was not an XPC dictionary, or if the object for the specified key is not a send right. @discussion The XPC runtime will copy the send right using `mach_port_mod_refs` before returning the port

functionxpc_main

API_AVAILABLE(macos(10.7), macCatalyst(5.0)) API_UNAVAILABLE(ios, tvos, watchos) XPC_EXPORT XPC_NORETURN XPC_NONNULL1 void xpc_main(
	xpc_connection_handler_t handler
)
@function xpc_main The springboard into the XPCService runtime. This function will set up your service bundle's listener connection and manage it automatically. After this initial setup, this function will, by default, call dispatch_main(). You may override this behavior by setting the RunLoopType key in your XPC service bundle's Info.plist under the XPCService dictionary. @param handler The handler with which to accept new connections. This handler is called for each new connection established with the service. The handler must either accept the connection by setting an event handler with xpc_connection_set_event_handler() and calling xpc_connection_resume(), or reject the connection by calling xpc_connection_cancel(). Failure to take one of these actions will result in the connection remaining in an undefined state, potentially causing resource leaks or transaction issues.

functionxpc_transaction_begin

API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos) XPC_TRANSACTION_DEPRECATED XPC_EXPORT void xpc_transaction_begin(
	void
)
@function xpc_transaction_begin Informs the XPC runtime that a transaction has begun and that the service should not exit due to inactivity. @discussion A service with no outstanding transactions may automatically exit due to inactivity as determined by the system. This function may be used to manually manage transactions in cases where their automatic management (as described below) does not meet the needs of an XPC service. This function also updates the transaction count used for sudden termination, i.e. vproc_transaction_begin(), and these two interfaces may be used in combination. The XPC runtime will automatically begin a transaction on behalf of a service when a new message is received. If no reply message is expected, the transaction is automatically ended when the last reference to the message is released. If a reply message is created, the transaction will end when the reply message is sent or released. An XPC service may use xpc_transaction_begin() and xpc_transaction_end() to inform the XPC runtime about activity that occurs outside of this common pattern. On macOS, when the XPC runtime has determined that the service should exit, the event handlers for all active peer connections will receive {@link XPC_ERROR_TERMINATION_IMMINENT} as an indication that they should unwind their existing transactions. After this error is delivered to a connection's event handler, no more messages will be delivered to the connection.

functionxpc_transaction_end

API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos) XPC_TRANSACTION_DEPRECATED XPC_EXPORT void xpc_transaction_end(
	void
)
@function xpc_transaction_end Informs the XPC runtime that a transaction has ended. @discussion As described in {@link xpc_transaction_begin()}, this API may be used interchangeably with vproc_transaction_end(). See the discussion for {@link xpc_transaction_begin()} for details regarding the XPC runtime's idle-exit policy.

functionxpc_set_event_stream_handler

API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, tvos, watchos) XPC_EXPORT XPC_NONNULL1 XPC_NONNULL3 void xpc_set_event_stream_handler(
	const char *stream,
	dispatch_queue_t _Nullable targetq,
	XPC_SWIFT_SENDABLE xpc_handler_t handler
)
@function xpc_set_event_stream_handler Sets the event handler to invoke when streamed events are received. @param stream The name of the event stream for which this handler will be invoked. @param targetq The GCD queue to which the event handler block will be submitted. This parameter may be NULL, in which case the connection's target queue will be libdispatch's default target queue, defined as DISPATCH_TARGET_QUEUE_DEFAULT. @param handler The event handler block. The event which this block receives as its first parameter will always be a dictionary which contains the XPC_EVENT_KEY_NAME key. The value for this key will be a string whose value is the name assigned to the XPC event specified in the launchd.plist. Future keys may be added to this dictionary. @discussion Multiple calls to this function for the same event stream will result in undefined behavior. There is no API to pause delivery of XPC events. If a process that has set an XPC event handler exits, events may be dropped due to races between the event handler running and the process exiting.