Lines Matching defs:context
113 * @param context The context with the resource map.
130 coap_print_wellknown(coap_context_t *context, unsigned char *buf, size_t *buflen,
135 coap_print_wellknown(coap_context_t *context, unsigned char *buf, size_t *buflen,
203 RESOURCES_ITER(context->resources, r) {
462 static void coap_notify_observers(coap_context_t *context, coap_resource_t *r,
472 if (!resource->context->observe_no_clear) {
474 coap_notify_observers(resource->context, resource, COAP_DELETING_RESOURCE);
477 if (resource->context->resource_deleted)
478 resource->context->resource_deleted(resource->context, resource->uri_path,
479 resource->context->observe_user_data);
481 if (resource->context->release_userdata && resource->user_data)
482 resource->context->release_userdata(resource->user_data);
492 if (resource->context->observe_deleted)
493 resource->context->observe_deleted(obs->session, obs,
494 resource->context->observe_user_data);
513 coap_add_resource(coap_context_t *context, coap_resource_t *resource) {
515 if (context->unknown_resource)
516 coap_free_resource(context->unknown_resource);
517 context->unknown_resource = resource;
519 if (context->proxy_uri_resource)
520 coap_free_resource(context->proxy_uri_resource);
521 context->proxy_uri_resource = resource;
523 coap_resource_t *r = coap_get_resource_from_uri_path(context,
530 coap_delete_resource(context, r);
532 RESOURCES_ADD(context->resources, resource);
534 if (context->unknown_pdu && context->dyn_resource_save_file &&
535 context->dyn_resource_added && resource->observable) {
538 raw_packet.s = context->unknown_pdu->token -
539 context->unknown_pdu->hdr_size;
540 raw_packet.length = context->unknown_pdu->used_size +
541 context->unknown_pdu->hdr_size;
542 context->dyn_resource_added(context->unknown_session, resource->uri_path,
543 &raw_packet, context->observe_user_data);
547 assert(resource->context == NULL);
548 resource->context = context;
552 * Input context is ignored, but param left there to keep API consistent
555 coap_delete_resource(coap_context_t *context, coap_resource_t *resource) {
559 context = resource->context;
562 if (context && context->unknown_resource == resource) {
563 context->unknown_resource = NULL;
566 if (context && context->proxy_uri_resource == resource) {
567 context->proxy_uri_resource = NULL;
569 } else if (context) {
571 RESOURCES_DELETE(context->resources, resource);
581 coap_delete_all_resources(coap_context_t *context) {
588 HASH_ITER(hh, context->resources, res, rtmp) {
589 HASH_DELETE(hh, context->resources, res);
593 context->resources = NULL;
595 if (context->unknown_resource) {
596 coap_free_resource(context->unknown_resource);
597 context->unknown_resource = NULL;
599 if (context->proxy_uri_resource) {
600 coap_free_resource(context->proxy_uri_resource);
601 context->proxy_uri_resource = NULL;
606 coap_get_resource_from_uri_path(coap_context_t *context, coap_str_const_t *uri_path) {
609 RESOURCES_FIND(context->resources, uri_path, result);
819 if (session->context->observe_added && session->proto == COAP_PROTO_UDP) {
898 session->context->observe_added(session, s, session->proto,
903 session->context->observe_user_data);
908 if (resource->context->track_observe_value) {
910 resource->context->track_observe_value(resource->context,resource->uri_path,
912 resource->context->observe_user_data);
919 coap_touch_observer(coap_context_t *context, coap_session_t *session,
923 RESOURCES_ITER(context->resources, r) {
952 if (s && session->context->observe_deleted)
953 session->context->observe_deleted(session, s,
954 session->context->observe_user_data);
968 coap_delete_observers(coap_context_t *context, coap_session_t *session) {
969 RESOURCES_ITER(context->resources, resource) {
973 if (context->observe_deleted)
974 context->observe_deleted(session, s, context->observe_user_data);
986 coap_notify_observers(coap_context_t *context, coap_resource_t *r,
1007 context->observe_pending = 1;
1016 context->observe_pending = 1;
1026 context->observe_pending = 1;
1037 context->observe_pending = 1;
1047 context->observe_pending = 1;
1161 context->observe_pending = 1;
1185 assert(r->context);
1187 if (r->context->track_observe_value) {
1189 if ((r->observe % r->context->observe_save_freq) == 0)
1190 r->context->track_observe_value(r->context, r->uri_path,
1192 r->context->observe_user_data);
1195 r->context->observe_pending = 1;
1197 coap_update_epoll_timer(r->context, 0);
1220 coap_resource_release_userdata_handler(coap_context_t *context,
1222 context->release_userdata = callback;
1238 coap_check_notify(coap_context_t *context) {
1240 if (context->observe_pending) {
1241 context->observe_pending = 0;
1242 RESOURCES_ITER(context->resources, r) {
1243 coap_notify_observers(context, r, COAP_NOT_DELETING_RESOURCE);
1262 * @param context The CoAP context to use
1268 coap_remove_failed_observers(coap_context_t *context,
1281 coap_cancel_all_messages(context, obs->session,
1291 coap_handle_failed_notify(coap_context_t *context,
1295 RESOURCES_ITER(context->resources, r) {
1296 coap_remove_failed_observers(context, r, session, token);