libcoap 4.3.5-develop-ea01661
Loading...
Searching...
No Matches
coap_subscribe.h
Go to the documentation of this file.
1/*
2 * coap_subscribe.h -- subscription handling for CoAP
3 * see RFC7641
4 *
5 * Copyright (C) 2010-2012,2014-2025 Olaf Bergmann <bergmann@tzi.org>
6 *
7 * SPDX-License-Identifier: BSD-2-Clause
8 *
9 * This file is part of the CoAP library libcoap. Please see README for terms
10 * of use.
11 */
12
18#ifndef COAP_SUBSCRIBE_H_
19#define COAP_SUBSCRIBE_H_
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
37#define COAP_OBSERVE_ESTABLISH 0
38
44#define COAP_OBSERVE_CANCEL 1
45
57
68 const coap_string_t *query);
69
77
96typedef int (*coap_observe_added_t)(coap_session_t *session,
97 coap_subscription_t *observe_key,
98 coap_proto_t e_proto,
99 coap_address_t *e_listen_addr,
100 coap_addr_tuple_t *s_addr_info,
101 coap_bin_const_t *raw_packet,
102 coap_bin_const_t *oscore_info,
103 void *user_data);
104
117 coap_subscription_t *observe_key,
118 void *user_data);
119
136 coap_str_const_t *resource_name,
137 uint32_t observe_num,
138 void *user_data);
139
154 coap_str_const_t *resource_name,
155 coap_bin_const_t *raw_packet,
156 void *user_data);
157
173 coap_str_const_t *resource_name,
174 void *user_data);
175
194 coap_observe_added_t observe_added,
195 coap_observe_deleted_t observe_deleted,
196 coap_track_observe_value_t track_observe_value,
197 coap_dyn_resource_added_t dyn_resource_added,
198 coap_resource_deleted_t resource_deleted,
199 uint32_t save_freq,
200 void *user_data);
201
221 coap_proto_t e_proto,
222 const coap_address_t *e_listen_addr,
223 const coap_addr_tuple_t *s_addr_info,
224 const coap_bin_const_t *raw_packet,
225 const coap_bin_const_t *oscore_info);
226
245 const char *dyn_resource_save_file,
246 const char *observe_save_file,
247 const char *obs_cnt_save_file,
248 uint32_t save_freq);
249
263
271 uint32_t observe_num);
272
287 coap_pdu_type_t message_type);
288
291#ifdef __cplusplus
292}
293#endif
294
295#endif /* COAP_SUBSCRIBE_H_ */
#define COAP_API
COAP_API coap_subscription_t * coap_persist_observe_add(coap_context_t *context, coap_proto_t e_proto, const coap_address_t *e_listen_addr, const coap_addr_tuple_t *s_addr_info, const coap_bin_const_t *raw_packet, const coap_bin_const_t *oscore_info)
Set up an active subscription for an observe that was previously active over a coap-server inadvertan...
int(* coap_dyn_resource_added_t)(coap_session_t *session, coap_str_const_t *resource_name, coap_bin_const_t *raw_packet, void *user_data)
Callback handler definition called when a dynamic resource is getting created, as defined in coap_per...
void coap_persist_set_observe_num(coap_resource_t *resource, uint32_t observe_num)
Sets the current observe number value.
void coap_resource_set_get_observable(coap_resource_t *resource, int mode)
Set whether a resource is observable.
int(* coap_resource_deleted_t)(coap_context_t *context, coap_str_const_t *resource_name, void *user_data)
Callback handler definition called when resource is removed, as defined in coap_persist_track_funcs()...
COAP_API void coap_check_notify(coap_context_t *context)
Checks all known resources to see if they are dirty and then notifies subscribed observers.
int(* coap_observe_added_t)(coap_session_t *session, coap_subscription_t *observe_key, coap_proto_t e_proto, coap_address_t *e_listen_addr, coap_addr_tuple_t *s_addr_info, coap_bin_const_t *raw_packet, coap_bin_const_t *oscore_info, void *user_data)
Callback handler definition called when a new observe has been set up, as defined in coap_persist_tra...
COAP_API int coap_cancel_observe(coap_session_t *session, coap_binary_t *token, coap_pdu_type_t message_type)
Cancel an observe that is being tracked by the client large receive logic.
COAP_API void coap_persist_stop(coap_context_t *context)
Stop tracking persist information, leaving the current persist information in the files defined in co...
void coap_persist_track_funcs(coap_context_t *context, coap_observe_added_t observe_added, coap_observe_deleted_t observe_deleted, coap_track_observe_value_t track_observe_value, coap_dyn_resource_added_t dyn_resource_added, coap_resource_deleted_t resource_deleted, uint32_t save_freq, void *user_data)
Set up callbacks to handle persist tracking so on a coap-server inadvertent restart,...
int(* coap_track_observe_value_t)(coap_context_t *context, coap_str_const_t *resource_name, uint32_t observe_num, void *user_data)
Callback handler definition called when an observe unsolicited response is being sent,...
int(* coap_observe_deleted_t)(coap_session_t *session, coap_subscription_t *observe_key, void *user_data)
Callback handler definition called when an observe is being removed, as defined in coap_persist_track...
COAP_API int coap_resource_notify_observers(coap_resource_t *resource, const coap_string_t *query)
Initiate the sending of an Observe packet for all observers of resource, optionally matching query if...
COAP_API int coap_persist_startup(coap_context_t *context, const char *dyn_resource_save_file, const char *observe_save_file, const char *obs_cnt_save_file, uint32_t save_freq)
Start up persist tracking using the libcoap module.
coap_proto_t
CoAP protocol types.
Definition coap_pdu.h:317
coap_pdu_type_t
CoAP PDU message type definitions.
Definition coap_pdu.h:72
Multi-purpose address abstraction.
CoAP binary data definition with const data.
Definition coap_str.h:67
CoAP binary data definition.
Definition coap_str.h:59
The CoAP stack's global state is stored in a coap_context_t object.
Abstraction of resource that can be attached to coap_context_t.
Abstraction of virtual session that can be attached to coap_context_t (client) or coap_endpoint_t (se...
CoAP string data definition with const data.
Definition coap_str.h:49
CoAP string data definition.
Definition coap_str.h:41
Number of notifications that may be sent non-confirmable before a confirmable message is sent to dete...