libgpac
Documentation of the core library of GPAC
Loading...
Searching...
No Matches
download.h File Reference

HTTP(S) Downloader. More...

#include <gpac/tools.h>
#include <gpac/config_file.h>
#include <gpac/cache.h>

Data Structures

struct  GF_URL_Info
 
struct  GF_NETIO_Parameter
 
struct  GF_UserCredentials
 

Typedefs

typedef void(* gf_dm_on_usr_pass) (void *usr_cbk, const char *usr_name, const char *password, Bool store_info)
 callback function for authentication
 
typedef Bool(* gf_dm_get_usr_pass) (void *usr_cbk, Bool secure, const char *site_url, char *usr_name, char *password, gf_dm_on_usr_pass async_pass, void *async_udta)
 function for authentication
 
typedef void(* gf_dm_user_io) (void *usr_cbk, GF_NETIO_Parameter *parameter)
 callback function for data reception and state signaling
 

Enumerations

enum  GF_NetIOStatus {
  GF_NETIO_SETUP = 0 , GF_NETIO_CONNECTED , GF_NETIO_GET_METHOD , GF_NETIO_GET_HEADER ,
  GF_NETIO_GET_CONTENT , GF_NETIO_WAIT_FOR_REPLY , GF_NETIO_PARSE_HEADER , GF_NETIO_PARSE_REPLY ,
  GF_NETIO_DATA_EXCHANGE , GF_NETIO_DATA_TRANSFERED , GF_NETIO_DISCONNECTED , GF_NETIO_STATE_ERROR ,
  GF_NETIO_REQUEST_SESSION , GF_NETIO_CANCEL_STREAM
}
 
enum  GF_NetIOFlags {
  GF_NETIO_SESSION_NOT_THREADED = 1 , GF_NETIO_SESSION_NOT_CACHED = 1<<1 , GF_NETIO_SESSION_NOTIFY_DATA = 1<<2 , GF_NETIO_SESSION_PERSISTENT = 1<<3 ,
  GF_NETIO_SESSION_MEMORY_CACHE = 1<<4 , GF_NETIO_SESSION_KEEP_CACHE = 1<<5 , GF_NETIO_SESSION_KEEP_FIRST_CACHE = 1<<6 , GF_NETIO_SESSION_AUTO_CACHE = 1<<7 ,
  GF_NETIO_SESSION_NO_BLOCK = 1<<8
}
 
enum  {
  GF_HTTP_UNKNOWN = 0 , GF_HTTP_GET , GF_HTTP_HEAD , GF_HTTP_OPTIONS ,
  GF_HTTP_CONNECT , GF_HTTP_TRACE , GF_HTTP_PUT , GF_HTTP_POST ,
  GF_HTTP_DELETE
}
 
enum  GF_CredentialRequestState { GF_CREDS_STATE_NONE =0 , GF_CREDS_STATE_PENDING , GF_CREDS_STATE_DONE }
 

Functions

GF_Err gf_dm_get_url_info (const char *url, GF_URL_Info *info, const char *baseURL)
 
void gf_dm_url_info_init (GF_URL_Info *info)
 
void gf_dm_url_info_del (GF_URL_Info *info)
 
GF_DownloadManager * gf_dm_new (GF_DownloadFilterSession *fsess)
 download manager constructor
 
void gf_dm_del (GF_DownloadManager *dm)
 download manager destructor
 
void gf_dm_set_auth_callback (GF_DownloadManager *dm, gf_dm_get_usr_pass get_pass, void *usr_cbk)
 password retrieval assignment
 
GF_DownloadSession * gf_dm_sess_new (GF_DownloadManager *dm, const char *url, u32 dl_flags, gf_dm_user_io user_io, void *usr_cbk, GF_Err *error)
 download session constructor
 
GF_DownloadSession * gf_dm_sess_new_simple (GF_DownloadManager *dm, const char *url, u32 dl_flags, gf_dm_user_io user_io, void *usr_cbk, GF_Err *e)
 download session simple constructor
 
void gf_dm_sess_del (GF_DownloadSession *sess)
 downloader session destructor
 
void gf_dm_sess_abort (GF_DownloadSession *sess)
 aborts downloading
 
GF_Err gf_dm_sess_last_error (GF_DownloadSession *sess)
 gets last session error
 
GF_Err gf_dm_sess_fetch_data (GF_DownloadSession *sess, char *buffer, u32 buffer_size, u32 *read_size)
 fetches data on session
 
const char * gf_dm_sess_mime_type (GF_DownloadSession *sess)
 get mime type as lower case
 
GF_Err gf_dm_sess_set_range (GF_DownloadSession *sess, u64 start_range, u64 end_range, Bool discontinue_cache)
 sets session range
 
const char * gf_dm_sess_get_cache_name (GF_DownloadSession *sess)
 get cache file name
 
void gf_dm_delete_cached_file_entry (const GF_DownloadManager *dm, const char *url)
 Marks the cache file to be deleted once the file is not used anymore by any session.
 
void gf_dm_delete_cached_file_entry_session (const GF_DownloadSession *sess, const char *url)
 
GF_Err gf_dm_sess_get_stats (GF_DownloadSession *sess, const char **server, const char **path, u64 *total_size, u64 *bytes_done, u32 *bytes_per_sec, GF_NetIOStatus *net_status)
 get statistics
 
u64 gf_dm_sess_get_utc_start (GF_DownloadSession *sess)
 get start time
 
GF_Err gf_dm_sess_process (GF_DownloadSession *sess)
 fetch session object
 
GF_Err gf_dm_sess_process_headers (GF_DownloadSession *sess)
 fetch session object headers
 
const char * gf_dm_sess_get_resource_name (GF_DownloadSession *sess)
 Get session resource url.
 
GF_Err gf_dm_wget_with_cache (GF_DownloadManager *dm, const char *url, const char *filename, u64 start_range, u64 end_range, char **redirected_url)
 
GF_Err gf_dm_wget (const char *url, const char *filename, u64 start_range, u64 end_range, char **redirected_url)
 Same as gf_dm_wget_with_cache, but initializes the GF_DownloadManager by itself.
 
GF_Err gf_dm_sess_setup_from_url (GF_DownloadSession *sess, const char *url, Bool allow_direct_reuse)
 
const char * gf_dm_sess_get_header (GF_DownloadSession *sess, const char *name)
 retrieves the HTTP header value for the given name
 
GF_Err gf_dm_sess_enum_headers (GF_DownloadSession *sess, u32 *idx, const char **hdr_name, const char **hdr_val)
 enumerates the HTTP headers for a session
 
void gf_dm_set_data_rate (GF_DownloadManager *dm, u32 rate_in_bits_per_sec)
 sets download manager max rate per session
 
u32 gf_dm_get_data_rate (GF_DownloadManager *dm)
 gets download manager max rate per session
 
u32 gf_dm_get_global_rate (GF_DownloadManager *dm)
 gets cumultaed download rate for all sessions
 
GF_Err gf_dm_sess_get_header_sizes_and_times (GF_DownloadSession *sess, u32 *req_hdr_size, u32 *rsp_hdr_size, u32 *connect_time, u32 *reply_time, u32 *download_time)
 Get header sizes and times stats for the session.
 
void gf_dm_sess_force_memory_mode (GF_DownloadSession *sess, u32 force_cache_type)
 Forces session to use memory storage.
 
GF_Err gf_dm_set_localcache_provider (GF_DownloadManager *dm, Bool(*local_cache_url_provider_cbk)(void *udta, char *url, Bool is_cache_destroy), void *lc_udta)
 
DownloadedCacheEntry gf_dm_add_cache_entry (GF_DownloadManager *dm, const char *szURL, GF_Blob *blob, u64 start_range, u64 end_range, const char *mime, Bool clone_memory, u32 download_time_ms)
 
GF_Err gf_dm_force_headers (GF_DownloadManager *dm, const DownloadedCacheEntry entry, const char *headers)
 
GF_UserCredentialsgf_user_credentials_find_for_site (GF_DownloadManager *dm, const char *server_name, const char *user_name)
 
GF_UserCredentialsgf_user_credentials_register (GF_DownloadManager *dm, Bool secure, const char *server_name, const char *username, const char *password, Bool valid)
 

Detailed Description

HTTP(S) Downloader.

>