![]() |
libgpac
Documentation of the core library of GPAC
|
#include <gpac/cache.h>#include <gpac/network.h>#include <gpac/download.h>#include <gpac/token.h>#include <gpac/thread.h>#include <gpac/list.h>#include <gpac/base_coding.h>#include <gpac/tools.h>#include <gpac/config_file.h>#include <stdio.h>#include <string.h>Data Structures | |
| struct | GF_CacheReader |
| struct | DownloadedRange |
| struct | DownloadedCacheEntry |
Macros | |
| #define | CHECK_ENTRY if (!entry) { GF_LOG(GF_LOG_WARNING, GF_LOG_CACHE, ("[CACHE] entry is null at " __FILE__ ":%d\n", __LINE__)); return GF_BAD_PARAM; } |
| #define | _CACHE_TMP_SIZE 4096 |
| #define | _CACHE_HASH_SIZE 20 |
| #define | _CACHE_MAX_EXTENSION_SIZE 6 |
Enumerations | |
| enum | CacheValid { MUST_REVALIDATE = 1 , IS_HTTPS = 1<<1 , CORRUPTED = 1<<2 , NO_CACHE = 1<<3 , DELETED = 1<<4 } |
Functions | |
| Bool | gf_cache_entry_persistent (const DownloadedCacheEntry entry) |
| void | gf_cache_entry_set_persistent (const DownloadedCacheEntry entry) |
| Bool | delete_cache_files (void *cbck, char *item_name, char *item_path, GF_FileEnumInfo *file_info) |
| Bool | gather_cache_size (void *cbck, char *item_name, char *item_path, GF_FileEnumInfo *file_info) |
| u64 | gf_cache_get_size (const char *directory) |
| GF_Err | gf_cache_delete_all_cached_files (const char *directory) |
| void | gf_cache_entry_set_delete_files_when_deleted (const DownloadedCacheEntry entry) |
| Bool | gf_cache_entry_is_delete_files_when_deleted (const DownloadedCacheEntry entry) |
| const char * | gf_cache_get_etag_on_server (const DownloadedCacheEntry entry) |
| const char * | gf_cache_get_mime_type (const DownloadedCacheEntry entry) |
| GF_Err | gf_cache_set_headers_processed (const DownloadedCacheEntry entry) |
| Bool | gf_cache_are_headers_processed (const DownloadedCacheEntry entry) |
| GF_Err | gf_cache_set_etag_on_server (const DownloadedCacheEntry entry, const char *eTag) |
| GF_Err | gf_cache_set_etag_on_disk (const DownloadedCacheEntry entry, const char *eTag) |
| GF_Err | gf_cache_set_mime_type (const DownloadedCacheEntry entry, const char *mime_type) |
| u64 | gf_cache_get_start_range (const DownloadedCacheEntry entry) |
| u64 | gf_cache_get_end_range (const DownloadedCacheEntry entry) |
| const char * | gf_cache_get_url (const DownloadedCacheEntry entry) |
| const char * | gf_cache_get_last_modified_on_server (const DownloadedCacheEntry entry) |
| GF_Err | gf_cache_set_last_modified_on_server (const DownloadedCacheEntry entry, const char *newLastModified) |
| GF_Err | gf_cache_set_last_modified_on_disk (const DownloadedCacheEntry entry, const char *newLastModified) |
| GF_Err | gf_cache_flush_disk_cache (const DownloadedCacheEntry entry) |
| u32 | gf_cache_get_cache_filesize (const DownloadedCacheEntry entry) |
| const char * | gf_cache_get_cache_filename (const DownloadedCacheEntry entry) |
| GF_Err | gf_cache_get_http_headers (const DownloadedCacheEntry entry, const char **etag, const char **last_modif) |
| DownloadedCacheEntry | gf_cache_create_entry (GF_DownloadManager *dm, const char *cache_directory, const char *url, u64 start_range, u64 end_range, Bool mem_storage, GF_Mutex *mx) |
| GF_Err | gf_cache_set_content_length (const DownloadedCacheEntry entry, u32 length) |
| u32 | gf_cache_get_content_length (const DownloadedCacheEntry entry) |
| GF_Err | gf_cache_close_write_cache (const DownloadedCacheEntry entry, const GF_DownloadSession *sess, Bool success) |
| Close the write file pointer of cache This function also flushes all buffers, so cache will always be consistent after. | |
| GF_Err | gf_cache_open_write_cache (const DownloadedCacheEntry entry, const GF_DownloadSession *sess) |
| Open the write file pointer of cache This function prepares calls for gf_cache_write_to_cache. | |
| GF_Err | gf_cache_write_to_cache (const DownloadedCacheEntry entry, const GF_DownloadSession *sess, const char *data, const u32 size, GF_Mutex *mx) |
| GF_Err | gf_cache_delete_entry (const DownloadedCacheEntry entry) |
| Bool | gf_cache_check_if_cache_file_is_corrupted (const DownloadedCacheEntry entry) |
| s32 | gf_cache_remove_session_from_cache_entry (DownloadedCacheEntry entry, GF_DownloadSession *sess) |
| u32 | gf_cache_get_sessions_count_for_cache_entry (const DownloadedCacheEntry entry) |
| s32 | gf_cache_add_session_to_cache_entry (DownloadedCacheEntry entry, GF_DownloadSession *sess) |
| void | gf_cache_set_end_range (DownloadedCacheEntry entry, u64 range_end) |
| Bool | gf_cache_is_in_progress (const DownloadedCacheEntry entry) |
| Bool | gf_cache_set_mime (const DownloadedCacheEntry entry, const char *mime) |
| Bool | gf_cache_set_range (const DownloadedCacheEntry entry, u64 size, u64 start_range, u64 end_range) |
| Bool | gf_cache_set_headers (const DownloadedCacheEntry entry, const char *headers) |
| char * | gf_cache_get_forced_headers (const DownloadedCacheEntry entry) |
| void | gf_cache_set_downtime (const DownloadedCacheEntry entry, u32 download_time_ms) |
| u32 | gf_cache_get_downtime (const DownloadedCacheEntry entry) |
| Bool | gf_cache_is_done (const DownloadedCacheEntry entry) |
| const u8 * | gf_cache_get_content (const DownloadedCacheEntry entry, u32 *size) |
| void | gf_cache_release_content (const DownloadedCacheEntry entry) |
| Bool | gf_cache_is_deleted (const DownloadedCacheEntry entry) |
| Bool | gf_cache_set_content (const DownloadedCacheEntry entry, GF_Blob *blob, Bool copy, GF_Mutex *mx) |
Variables | |
| static const char * | CACHE_SECTION_NAME = "cache" |
| static const char * | CACHE_SECTION_NAME_URL = "url" |
| static const char * | CACHE_SECTION_NAME_RANGE = "range" |
| static const char * | CACHE_SECTION_NAME_ETAG = "ETag" |
| static const char * | CACHE_SECTION_NAME_MIME_TYPE = "Content-Type" |
| static const char * | CACHE_SECTION_NAME_CONTENT_SIZE = "Content-Length" |
| static const char * | CACHE_SECTION_NAME_LAST_MODIFIED = "Last-Modified" |
| static const char * | cache_file_prefix = "gpac_cache_" |
| static const char * | default_cache_file_suffix = ".dat" |
| static const char * | cache_file_info_suffix = ".txt" |
| struct __CacheReaderStruct |
cache object
| Data Fields | ||
|---|---|---|
| FILE * | readPtr | |
| s64 | readPosition | |
| struct __DownloadedCacheEntryStruct |
This opaque structure handles the data from the cache
Handle for Cache Entries. You can use the gf_cache_get_* functions to get the cache properties
| Data Fields | ||
|---|---|---|
| char * | url |
URL of the cache (never NULL) |
| char * | hash |
Hash of the cache (never NULL) |
| char * | cache_filename |
Name of the cache filename, (can be NULL) |
| GF_Config * | properties |
Name of the cached properties filename , (can be NULL) |
| u32 | contentLength |
Theorical size of cache if any |
| u32 | cacheSize |
Real size of cache |
| u32 | validity |
GMT timestamp for revalidation |
| char * | serverLastModified |
The last modification time on the server |
| char * | diskLastModified |
The last modification time of the cache if any |
| char * | serverETag |
ETag if any |
| char * | diskETag |
ETag if any |
| char * | mimeType |
Mime-type (never NULL) |
| FILE * | writeFilePtr |
Write pointer for the cache |
| u32 | written_in_cache |
Bytes written during this cache session |
| enum CacheValid | flags |
Flag indicating whether we have to revalidate |
| const GF_DownloadSession * | write_session | |
| GF_List * | sessions | |
| Bool | deletableFilesOnDelete | |
| GF_DownloadManager * | dm | |
| u64 | range_start | |
| u64 | range_end | |
| Bool | continue_file | |
| Bool | file_exists | |
| u32 | previousRangeContentLength | |
| Bool | headers_done | |
| Bool | memory_stored |
Set to 1 if file is not stored on disk |
| u32 | mem_allocated | |
| u8 * | mem_storage | |
| char * | forced_headers | |
| u32 | downtime | |
| GF_Blob | cache_blob | |
| GF_Blob * | external_blob | |
| Bool | persistent | |
| #define CHECK_ENTRY if (!entry) { GF_LOG(GF_LOG_WARNING, GF_LOG_CACHE, ("[CACHE] entry is null at " __FILE__ ":%d\n", __LINE__)); return GF_BAD_PARAM; } |
| #define _CACHE_TMP_SIZE 4096 |
| #define _CACHE_HASH_SIZE 20 |
| #define _CACHE_MAX_EXTENSION_SIZE 6 |
| enum CacheValid |
| Bool gf_cache_entry_persistent | ( | const DownloadedCacheEntry | entry | ) |
| void gf_cache_entry_set_persistent | ( | const DownloadedCacheEntry | entry | ) |
| Bool delete_cache_files | ( | void * | cbck, |
| char * | item_name, | ||
| char * | item_path, | ||
| GF_FileEnumInfo * | file_info | ||
| ) |
| Bool gather_cache_size | ( | void * | cbck, |
| char * | item_name, | ||
| char * | item_path, | ||
| GF_FileEnumInfo * | file_info | ||
| ) |
| DownloadedCacheEntry gf_cache_create_entry | ( | GF_DownloadManager * | dm, |
| const char * | cache_directory, | ||
| const char * | url, | ||
| u64 | start_range, | ||
| u64 | end_range, | ||
| Bool | mem_storage, | ||
| GF_Mutex * | mx | ||
| ) |
Creates a new cache entry
| GF_Err gf_cache_close_write_cache | ( | const DownloadedCacheEntry | entry, |
| const GF_DownloadSession * | sess, | ||
| Bool | success | ||
| ) |
Close the write file pointer of cache This function also flushes all buffers, so cache will always be consistent after.
| entry | The entry to use |
| sess | The download session |
| success | 1 if cache write is success, false otherwise |
| GF_Err gf_cache_open_write_cache | ( | const DownloadedCacheEntry | entry, |
| const GF_DownloadSession * | sess | ||
| ) |
Open the write file pointer of cache This function prepares calls for gf_cache_write_to_cache.
| entry | The entry to use |
| sess | The download session |
| GF_Err gf_cache_write_to_cache | ( | const DownloadedCacheEntry | entry, |
| const GF_DownloadSession * | sess, | ||
| const char * | data, | ||
| const u32 | size, | ||
| GF_Mutex * | mx | ||
| ) |
| s32 gf_cache_remove_session_from_cache_entry | ( | DownloadedCacheEntry | entry, |
| GF_DownloadSession * | sess | ||
| ) |
Removes a session for a DownloadedCacheEntry
| entry | The entry |
| sess | The session to remove |
| s32 gf_cache_add_session_to_cache_entry | ( | DownloadedCacheEntry | entry, |
| GF_DownloadSession * | sess | ||
| ) |
Adds a session to a DownloadedCacheEntry. implemented in cache.c
| entry | The entry |
| sess | The session to add |
| void gf_cache_set_end_range | ( | DownloadedCacheEntry | entry, |
| u64 | range_end | ||
| ) |
| Bool gf_cache_is_in_progress | ( | const DownloadedCacheEntry | entry | ) |
| Bool gf_cache_set_mime | ( | const DownloadedCacheEntry | entry, |
| const char * | mime | ||
| ) |
| Bool gf_cache_set_range | ( | const DownloadedCacheEntry | entry, |
| u64 | size, | ||
| u64 | start_range, | ||
| u64 | end_range | ||
| ) |
| Bool gf_cache_set_headers | ( | const DownloadedCacheEntry | entry, |
| const char * | headers | ||
| ) |
| char * gf_cache_get_forced_headers | ( | const DownloadedCacheEntry | entry | ) |
| void gf_cache_set_downtime | ( | const DownloadedCacheEntry | entry, |
| u32 | download_time_ms | ||
| ) |
| u32 gf_cache_get_downtime | ( | const DownloadedCacheEntry | entry | ) |
| Bool gf_cache_is_done | ( | const DownloadedCacheEntry | entry | ) |
| void gf_cache_release_content | ( | const DownloadedCacheEntry | entry | ) |
| Bool gf_cache_is_deleted | ( | const DownloadedCacheEntry | entry | ) |
| Bool gf_cache_set_content | ( | const DownloadedCacheEntry | entry, |
| GF_Blob * | blob, | ||
| Bool | copy, | ||
| GF_Mutex * | mx | ||
| ) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |