ZOO-Project
Functions
caching.h File Reference
#include "ulinet.h"
#include "service.h"

Go to the source code of this file.

Functions

void addToCache (maps *, char *, char *, char *, int, char *, size_t)
 Cache a file for a given request. More...
 
char * isInCache (maps *, char *)
 Verify if a url is available in the cache. More...
 
bool isAllowedPath (maps *, const char *)
 Ensure that the file:// protocol is used only for allowed paths. More...
 
int runHttpRequests (maps **, maps **, HINTERNET *, map **)
 Effectively run all the HTTP requests in the queue. More...
 
void addRequestToQueue (maps **, HINTERNET *, const char *, bool)
 Add a request in the download queue. More...
 
int loadRemoteFile (maps **, map **, HINTERNET *, char *)
 Try to load file from cache or download a remote file if not in cache. More...
 
char * getMd5f (char *)
 Compute md5 of a file. More...
 
int storeMd5 (char *)
 

Function Documentation

◆ addRequestToQueue()

void addRequestToQueue ( maps **  ppmsConf,
HINTERNET hInternet,
const char *  url,
bool  req 
)

Add a request in the download queue.

Parameters
mthe maps containing the settings of the main.cfg file
urlthe url to add to the queue

◆ addToCache()

void addToCache ( maps pmsConf,
char *  request,
char *  content,
char *  mimeType,
int  length,
char *  filepath,
size_t  max_path 
)

Cache a file for a given request.

For each cached file, the are two files stored, a .zca and a .zcm containing the downloaded content and the mimeType respectively.

Parameters
pmsConfthe maps containing the settings of the main.cfg file
requestthe url used too fetch the content
contentthe downloaded content
mimeTypethe content mimeType
lengththe content size
filepatha buffer for storing the path of the cached file; may be NULL
max_paththe size of the allocated filepath buffer

◆ getMd5f()

char* getMd5f ( char *  file)

Compute md5 of a file.

Parameters
filethe char*
Returns
a char* representing the md5 of the url
Warning
make sure to free resources returned by this function

◆ isAllowedPath()

bool isAllowedPath ( maps pmsConf,
const char *  pccPath 
)

Ensure that the file:// protocol is used only for allowed paths.

Parameters
pmsConfthe maps containing the settings of the main.cfg file
pccPaththe path to check
Returns
true if the path is accessible, false otherwise

◆ isInCache()

char* isInCache ( maps pmsConf,
char *  request 
)

Verify if a url is available in the cache.

Parameters
pmsConfthe maps containing the settings of the main.cfg file
requestthe url
Returns
the full name of the cached file if any, NULL in other case
Warning
make sure to free resources returned by this function (if not NULL)

◆ loadRemoteFile()

int loadRemoteFile ( maps **  ppmsConf,
map **  content,
HINTERNET hInternet,
char *  url 
)

Try to load file from cache or download a remote file if not in cache.

Parameters
mthe maps containing the settings of the main.cfg file
contentthe map to update
hInternetthe HINTERNET pointer
urlthe url to fetch
Returns
0

◆ runHttpRequests()

int runHttpRequests ( maps **  ppmsConf,
maps **  inputs,
HINTERNET hInternet,
map **  error 
)

Effectively run all the HTTP requests in the queue.

Parameters
mthe maps containing the settings of the main.cfg file
inputsthe maps containing the inputs (defined in the requests+added per default based on the zcfg file)
hInternetthe HINTERNET pointer
errorthe error map pointer
Returns
0 on success, -1 on failure

◆ storeMd5()

int storeMd5 ( char *  )