# API functions¶

void TSHttpTxnReqCacheableSet(TSHttpTxn txnp, int flag)

Set a flag that marks a request as cacheable. This is a positive override only, setting flag to 0 restores the default behavior, it does not force the request to be uncacheable.

TSReturnCode TSCacheUrlSet(TSHttpTxn txnp, char const* url, int length)

Set the cache key for the transaction txnp as the string pointed at by url of length characters. It need not be NUL-terminated. This should be called from TS_HTTP_READ_REQUEST_HDR_HOOK which is before cache lookup but late enough that the HTTP request header is available.

The APIs that modify the cache key can be called as early as TS_HTTP_READ_REQUEST_HDR_HOOK but no later than TS_HTTP_POST_REMAP_HOOK. The cache key is not only used for a cache lookup before going to origin, but also to mark the intent to write to cache on an origin response (if possible).

## Cache Internals¶

int DIR_SIZE_WITH_BLOCK(int big)

A preprocessor macro which computes the maximum size of a fragment based on the value of big. This is computed as if the argument where the value of the big field in a struct Dir.

int DIR_BLOCK_SIZE(int big)

A preprocessor macro which computes the block size multiplier for a struct Dir where big is the big field value.