Line data Source code
1 1 : /* 2 : * Copyright (c) 2023 Basalte bv 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : /** 8 : * @file 9 : * @brief CoAP Events code public header 10 : */ 11 : 12 : #ifndef ZEPHYR_INCLUDE_NET_COAP_MGMT_H_ 13 : #define ZEPHYR_INCLUDE_NET_COAP_MGMT_H_ 14 : 15 : #include <zephyr/net/net_mgmt.h> 16 : 17 : #ifdef __cplusplus 18 : extern "C" { 19 : #endif 20 : 21 : /** 22 : * @brief CoAP Manager Events 23 : * @defgroup coap_mgmt CoAP Manager Events 24 : * @since 3.6 25 : * @version 0.1.0 26 : * @ingroup networking 27 : * @{ 28 : */ 29 : 30 : /** @cond INTERNAL_HIDDEN */ 31 : 32 : /* CoAP events */ 33 : #define _NET_COAP_LAYER NET_MGMT_LAYER_L4 34 : #define _NET_COAP_CODE 0x1c0 35 : #define _NET_COAP_IF_BASE (NET_MGMT_EVENT_BIT | \ 36 : NET_MGMT_LAYER(_NET_COAP_LAYER) | \ 37 : NET_MGMT_LAYER_CODE(_NET_COAP_CODE)) 38 : 39 : struct coap_service; 40 : struct coap_resource; 41 : struct coap_observer; 42 : 43 : enum net_event_coap_cmd { 44 : /* Service events */ 45 : NET_EVENT_COAP_CMD_SERVICE_STARTED = 1, 46 : NET_EVENT_COAP_CMD_SERVICE_STOPPED, 47 : /* Observer events */ 48 : NET_EVENT_COAP_CMD_OBSERVER_ADDED, 49 : NET_EVENT_COAP_CMD_OBSERVER_REMOVED, 50 : }; 51 : 52 : /** @endcond */ 53 : 54 : /** 55 : * @brief coap_mgmt event raised when a service has started 56 : */ 57 1 : #define NET_EVENT_COAP_SERVICE_STARTED \ 58 : (_NET_COAP_IF_BASE | NET_EVENT_COAP_CMD_SERVICE_STARTED) 59 : 60 : /** 61 : * @brief coap_mgmt event raised when a service has stopped 62 : */ 63 1 : #define NET_EVENT_COAP_SERVICE_STOPPED \ 64 : (_NET_COAP_IF_BASE | NET_EVENT_COAP_CMD_SERVICE_STOPPED) 65 : 66 : /** 67 : * @brief coap_mgmt event raised when an observer has been added to a resource 68 : */ 69 1 : #define NET_EVENT_COAP_OBSERVER_ADDED \ 70 : (_NET_COAP_IF_BASE | NET_EVENT_COAP_CMD_OBSERVER_ADDED) 71 : 72 : /** 73 : * @brief coap_mgmt event raised when an observer has been removed from a resource 74 : */ 75 1 : #define NET_EVENT_COAP_OBSERVER_REMOVED \ 76 : (_NET_COAP_IF_BASE | NET_EVENT_COAP_CMD_OBSERVER_REMOVED) 77 : 78 : /** 79 : * @brief CoAP Service event structure. 80 : */ 81 1 : struct net_event_coap_service { 82 : /** The CoAP service for which the event is emitted */ 83 1 : const struct coap_service *service; 84 : }; 85 : 86 : /** 87 : * @brief CoAP Observer event structure. 88 : */ 89 1 : struct net_event_coap_observer { 90 : /** The CoAP resource for which the event is emitted */ 91 1 : struct coap_resource *resource; 92 : /** The observer that is added/removed */ 93 1 : struct coap_observer *observer; 94 : }; 95 : 96 : #ifdef __cplusplus 97 : } 98 : #endif 99 : 100 : /** 101 : * @} 102 : */ 103 : 104 : #endif /* ZEPHYR_INCLUDE_NET_COAP_MGMT_H_ */