Lines Matching +full:file +full:- +full:entry +full:- +full:cache
1 /* coap_cache.h -- Caching of CoAP requests
3 * Copyright (C) 2020-2023 Olaf Bergmann <bergmann@tzi.org>
5 * SPDX-License-Identifier: BSD-2-Clause
7 * This file is part of the CoAP library libcoap. Please see
12 * @file coap_cache.h
13 * @brief Provides a simple cache request storage for CoAP requests
23 * @defgroup cache Cache Support
24 * API for Cache-Key and Cache-Entry.
25 * See https://rfc-editor.org/rfc/rfc7252#section-5.4.2
30 * Callback to free off the app data when the cache-entry is
48 * Calculates a cache-key for the given CoAP PDU. See
49 * https://rfc-editor.org/rfc/rfc7252#section-5.4.2
50 * for an explanation of CoAP cache keys.
52 * Specific CoAP options can be removed from the cache-key. Examples of
53 * this are the Block1 and Block2 options - which make no real sense including
59 * NOTE: The returned cache-key needs to be freed off by the caller by
62 * @param session The session to add into cache-key if @p session_based
64 * @param pdu The CoAP PDU for which a cache-key is to be
67 * cache-key, else COAP_CACHE_NOT_SESSION_BASED.
69 * @return The returned cache-key or @c NULL if failure.
76 * Calculates a cache-key for the given CoAP PDU. See
77 * https://rfc-editor.org/rfc/rfc7252#section-5.4.2
78 * for an explanation of CoAP cache keys.
80 * Specific CoAP options can be removed from the cache-key. Examples of
81 * this are the Block1 and Block2 options - which make no real sense including
87 * NOTE: The returned cache-key needs to be freed off by the caller by
90 * @param session The session to add into cache-key if @p session_based
92 * @param pdu The CoAP PDU for which a cache-key is to be
95 * cache-key, else COAP_CACHE_NOT_SESSION_BASED.
99 * @return The returned cache-key or @c NULL if failure.
108 * Delete the cache-key.
110 * @param cache_key The cache-key to delete.
116 * the cache-key. Options that are defined as Non-Cache and the Observe
130 * Create a new cache-entry hash keyed by cache-key derived from the PDU.
132 * If @p session_based is set, then this cache-entry will get deleted when
135 * this cache-entry is deleted.
137 * The cache-entry is maintained on a context hash list.
140 * @param pdu The pdu to use to generate the cache-key.
144 * cache-entry with the the session (which is embedded
145 * in the cache-entry), else COAP_CACHE_NOT_SESSION_BASED.
146 * @param idle_time Idle time in seconds before cache-entry is expired.
150 * @return The returned cache-key or @c NULL if failure.
159 * Remove a cache-entry from the hash list and free off all the appropriate
163 * @param cache_entry The cache-entry to remove.
169 * Searches for a cache-entry identified by @p cache_key. This
170 * function returns the corresponding cache-entry or @c NULL
174 * @param cache_key The cache-key to get the hashed coap-entry.
176 * @return The cache-entry for @p cache_key or @c NULL if not found.
182 * Searches for a cache-entry corresponding to @p pdu. This
183 * function returns the corresponding cache-entry or @c NULL if not
189 * cache-key to be used, else COAP_CACHE_NOT_SESSION_BASED.
191 * @return The cache-entry for @p request or @c NULL if not found.
198 * Returns the PDU information stored in the @p coap_cache entry.
200 * @param cache_entry The CoAP cache entry.
208 * Stores @p data with the given cache entry. This function
212 * @param cache_entry The CoAP cache entry.
213 * @param data The data pointer to store with wih the cache entry. Note that
216 * cache-entry is deleted, or @c NULL if not required.
222 * Returns any application-specific data that has been stored with @p
226 * @param cache_entry The CoAP cache entry.