.. _bluetooth_connection_mgmt:

Connection Management
#####################

The Zephyr Bluetooth stack uses an abstraction called :c:type:`bt_conn`
to represent connections to other devices. The internals of this struct
are not exposed to the application, but a limited amount of information
(such as the remote address) can be acquired using the
:cpp:func:`bt_conn_get_info` API. Connection objects are reference
counted, and the application is expected to use the
:cpp:func:`bt_conn_ref` API whenever storing a connection pointer for a
longer period of time, since this ensures that the object remains valid
(even if the connection would get disconnected). Similarly the
:cpp:func:`bt_conn_unref` API is to be used when releasing a reference
to a connection.

An application may track connections by registering a
:c:type:`bt_conn_cb` struct using the :cpp:func:`bt_conn_cb_register`
API.  This struct lets the application define callbacks for connection &
disconnection events, as well as other events related to a connection
such as a change in the security level or the connection parameters.
When acting as a central the application will also get hold of the
connection object through the return value of the
:cpp:func:`bt_conn_create_le` API.

API Reference
*************

.. doxygengroup:: bt_conn
   :project: Zephyr


