---
title: ar_session_data_provider_state_change_handler_function_t
framework: arkit
role: symbol
role_heading: Type Alias
path: arkit/ar_session_data_provider_state_change_handler_function_t
---

# ar_session_data_provider_state_change_handler_function_t

A handler function that the session calls when one or more data providers associated with it change state.

## Declaration

```occ
typedef void (*)(void *, NSObject<OS_ar_data_providers> *, ar_data_provider_state_t, NSObject<OS_ar_error> *, NSObject<OS_ar_data_provider> *) ar_session_data_provider_state_change_handler_function_t;
```

## Parameters

- `context`: The application-defined context.
- `data_providers`: The collection of data providers that changed state.
- `new_state`: The data provider state that triggered the event.
- `error`: An error associated with the state change, if any. Also see ar_session_error_code_t.
- `failed_data_provider`: The data provider that failed and caused the error, if any.

## See Also

### Data providers

- [ar_data_provider_state_t](arkit/ar_data_provider_state_t.md)
- [ar_data_provider_get_required_authorization_type](arkit/ar_data_provider_get_required_authorization_type.md)
- [ar_data_provider_get_state](arkit/ar_data_provider_get_state.md)
- [ar_data_providers_enumerator_t](arkit/ar_data_providers_enumerator_t.md)
- [ar_data_providers_t](arkit/ar_data_providers_t.md)
- [ar_data_providers_add_data_provider](arkit/ar_data_providers_add_data_provider.md)
- [ar_data_providers_add_data_providers](arkit/ar_data_providers_add_data_providers.md)
- [ar_data_providers_create](arkit/ar_data_providers_create.md)
- [ar_data_providers_create_with_data_providers](arkit/ar_data_providers_create_with_data_providers.md)
- [ar_data_providers_enumerate_data_providers_f](arkit/ar_data_providers_enumerate_data_providers_f.md)
- [ar_data_providers_get_count](arkit/ar_data_providers_get_count.md)
- [ar_data_providers_enumerate_data_providers](arkit/ar_data_providers_enumerate_data_providers.md)
- [ar_data_providers_remove_data_provider](arkit/ar_data_providers_remove_data_provider.md)
- [ar_data_providers_remove_data_providers](arkit/ar_data_providers_remove_data_providers.md)
- [ar_data_providers_enumerator_function_t](arkit/ar_data_providers_enumerator_function_t.md)
