Lines Matching full:implementation

15 See the :ref:`implementation guidelines <conn_mgr_impl_guidelines>` for details on writing conforma…
22 The :ref:`implementation API <conn_mgr_impl_api>` allows connectivity implementations to be :ref:`d…
24 … in :c:struct:`conn_mgr_conn_api` struct (which should be populated with implementation callbacks).
29 …alled on the iface, and they will be translated to the corresponding implementation functions in :…
35 This binding structure will contain a reference to the bound iface, the connectivity implementation
37 …ion can then be iterated over to find out what (if any) connectivity implementation has been bound…
41 A single connectivity implementation may be bound to multiple ifaces.
59 Since a single connectivity implementation may be shared by several Zephyr ifaces, each binding ins…
66 Defining an implementation
69 A connectivity implementation may be defined as follows:
73 /* Create the API implementation functions */
92 /* Define the implementation (named MY_CONNECTIVITY_IMPL) */
100 Declaring an implementation publicly
103 Once defined, you can make a connectivity implementation available to other compilation units by de…
110 …is declaration must be included in any compilation units that need to reference the implementation.
147 …Your context pointer type declaration must use the same name as your implementation declaration, b…
149 …IMPL_CTX_TYPE``, because ``MY_CONNECTIVITY_IMPL`` was used as the connectivity implementation name.
151 If your connectivity implementation does not need a context pointer, simply declare the type as voi…
159 Binding an iface to an implementation
162 A defined connectivity implementation may be bound to an iface by calling :c:macro:`CONN_MGR_BIND_C…
178 Connectivity implementation guidelines
181 …l features centrally, Connection Manager relies on each connectivity implementation to implement m…
183 This approach allows Connection Manager to remain lean, and allows each connectivity implementation
186 …onnectivity implementations, observe the following guidelines when writing your own implementation:
194 In other words, no matter how the underlying technology behaves, your implementation must make it a…
203 Each :c:struct:`implementation API function <conn_mgr_conn_api>` you implement should behave as-des…
205 For example, your implementation of :c:member:`conn_mgr_conn_api.connect` should conform to the beh…
222 In other words, the connectivity implementation should not give up on the connection attempt, even …
224 Instead, the connectivity implementation should asynchronously wait for valid connection parameters…
253 …* The connectivity implementation does not need to update iface dormancy if the underlying :ref:`L…
257 *Do not use iface state as implementation state*
261 As such, Zephyr iface state may change unpredictably during connectivity implementation callbacks.
263 Therefore, do not base implementation behaviors on iface state.
276 …ation to directly use your underlying technology without breaking your connectivity implementation.
284 …hnology to disassociate, it would be acceptable for the connectivity implementation to interpret t…
291 All connectivity implementation callbacks should be non-blocking.
341 …ementations should provide a Kconfig option to enable or disable the implementation without affect…
343 …as well as the iface that would have been bound to the implementation, but not the implementation
350 Do not declare a separate connectivity implementation for every iface you are going to bind to.
352 Instead, bind one global connectivity implementation to all of your ifaces, and use the context poi…
412 Sometimes this means writing extra logic in the connectivity implementation to fake certain behavio…
420 … retry connection after connection loss or failure, the connectivity implementation must manually …
424 …nection, and persistence is disabled for the iface, the connectivity implementation should immedia…
425 …rlying technology does not have a built-in timeout, the connectivity implementation must simulate …
432 …eout, or would not reconnect after connection loss, the connectivity implementation must manually …
447 In these situations, the connectivity implementation should treat this series of back-to-back assoc…
452 …e considered a failure of the connection attempt as a whole is up to each implementation to decide.
461 Persistence should not affect any aspect of implementation behavior during a connection attempt.
468 Implementation API