libcoap 4.3.5-develop-19cef11
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-2024 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
33#define COAP_OBSERVE_ESTABLISH 0
34
40#define COAP_OBSERVE_CANCEL 1
41
53
64 const coap_string_t *query);
65
73
92typedef int (*coap_observe_added_t)(coap_session_t *session,
93 coap_subscription_t *observe_key,
94 coap_proto_t e_proto,
95 coap_address_t *e_listen_addr,
96 coap_addr_tuple_t *s_addr_info,
97 coap_bin_const_t *raw_packet,
98 coap_bin_const_t *oscore_info,
99 void *user_data);
100
113 coap_subscription_t *observe_key,
114 void *user_data);
115
132 coap_str_const_t *resource_name,
133 uint32_t observe_num,
134 void *user_data);
135
150 coap_str_const_t *resource_name,
151 coap_bin_const_t *raw_packet,
152 void *user_data);
153
169 coap_str_const_t *resource_name,
170 void *user_data);
171
190 coap_observe_added_t observe_added,
191 coap_observe_deleted_t observe_deleted,
192 coap_track_observe_value_t track_observe_value,
193 coap_dyn_resource_added_t dyn_resource_added,
194 coap_resource_deleted_t resource_deleted,
195 uint32_t save_freq,
196 void *user_data);
197
217 coap_proto_t e_proto,
218 const coap_address_t *e_listen_addr,
219 const coap_addr_tuple_t *s_addr_info,
220 const coap_bin_const_t *raw_packet,
221 const coap_bin_const_t *oscore_info);
222
241 const char *dyn_resource_save_file,
242 const char *observe_save_file,
243 const char *obs_cnt_save_file,
244 uint32_t save_freq);
245
259
267 uint32_t observe_num);
268
283 coap_pdu_type_t message_type);
284
287#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:312
coap_pdu_type_t
CoAP PDU message type definitions.
Definition: coap_pdu.h:68
Multi-purpose address abstraction.
Definition: coap_address.h:148
CoAP binary data definition with const data.
Definition: coap_str.h:64
CoAP binary data definition.
Definition: coap_str.h:56
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:46
CoAP string data definition.
Definition: coap_str.h:38
Number of notifications that may be sent non-confirmable before a confirmable message is sent to dete...