Loading...
Searching...
No Matches

nanocoap-cache API More...

Detailed Description

nanocoap-cache API

Author
Cenk Gündoğan cenk..nosp@m.guen.nosp@m.dogan.nosp@m.@haw.nosp@m.-hamb.nosp@m.urg..nosp@m.de

Definition in file cache.h.

#include <assert.h>
#include <stdbool.h>
#include <stdint.h>
#include "clist.h"
#include "net/nanocoap.h"
#include "hashes/sha256.h"
#include "ztimer.h"
+ Include dependency graph for cache.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  nanocoap_cache_entry_t
 Cache container that holds a coap_pkt_t struct. More...
 

Macros

#define CONFIG_NANOCOAP_CACHE_ENTRIES   (8)
 The number of maximum cache entries.
 
#define CONFIG_NANOCOAP_CACHE_KEY_LENGTH   (8)
 The length of the cache key in bytes.
 
#define CONFIG_NANOCOAP_CACHE_RESPONSE_SIZE   (128)
 Size of the buffer to store responses in the cache.
 

Typedefs

typedef int(* nanocoap_cache_replacement_strategy_t) (void)
 Typedef for the cache replacement strategy on full cache list.
 
typedef int(* nanocoap_cache_update_strategy_t) (clist_node_t *node)
 Typedef for the cache update strategy on element access.
 

Functions

static void nanocoap_cache_init (void)
 Initializes the internal state of the nanocoap cache.
 
size_t nanocoap_cache_used_count (void)
 Returns the number of cached entries.
 
size_t nanocoap_cache_free_count (void)
 Returns the number of unused cache entries.
 
nanocoap_cache_entry_tnanocoap_cache_process (const uint8_t *cache_key, unsigned request_method, const coap_pkt_t *resp, size_t resp_len)
 Determines if a response is cacheable and modifies the cache as reflected in RFC7252, Section 5.9.
 
nanocoap_cache_entry_tnanocoap_cache_add_by_req (const coap_pkt_t *req, const coap_pkt_t *resp, size_t resp_len)
 Creates a new or gets an existing cache entry using the request packet.
 
nanocoap_cache_entry_tnanocoap_cache_add_by_key (const uint8_t *cache_key, unsigned request_method, const coap_pkt_t *resp, size_t resp_len)
 Creates a new or gets an existing cache entry using the cache key.
 
nanocoap_cache_entry_tnanocoap_cache_request_lookup (const coap_pkt_t *req)
 Performs a cache lookup based on the req.
 
nanocoap_cache_entry_tnanocoap_cache_key_lookup (const uint8_t *cache_key)
 Performs a cache lookup based on the cache key of a request.
 
int nanocoap_cache_del (const nanocoap_cache_entry_t *ce)
 Deletes the provided cache entry ce.
 
void nanocoap_cache_key_generate (const coap_pkt_t *req, uint8_t *cache_key)
 Generates a cache key based on the request req.
 
void nanocoap_cache_key_options_generate (const coap_pkt_t *req, void *cache_key)
 Generates a cache key based on only the options in req.
 
void nanocoap_cache_key_blockreq_options_generate (const coap_pkt_t *req, void *cache_key)
 Generates a cache key based on only the options in req without any of the blockwise options included in the key.
 
ssize_t nanocoap_cache_key_compare (uint8_t *cache_key1, uint8_t *cache_key2)
 Compares two cache keys.
 
static bool nanocoap_cache_entry_is_stale (const nanocoap_cache_entry_t *ce, uint32_t now)
 Check if the Max-Age of a cache entry has passed.