Sous-routine FrcaCacheLoadFile

Objectif

Charge un fichier dans un cache associé à une instance FRCA (Fast Response Cache Accelerator).

Bibliothèque

Bibliothèque FRCA (libfrca.a)

Syntaxe

#include <frca.h>
int32_t FrcaCacheLoadFile ( CacheHandle,  FrcaHandle,  FileSpec,  AssocData);
int32_t  CacheHandle;
int32_t  FrcaHandle;
frca_filespec_t * FileSpec;
frca_assocdata_t * AssocData;

Descriptif

Le sous-programme FrcaCacheLoadFile charge un fichier dans une instance de cache existante pour une instance FRCA configurée précédemment.

Paramètres

Article Descriptif
CacheHandle Identifie l'instance de cache à laquelle la nouvelle entrée doit être ajoutée.
FrcaHandle Identifie l'instance FRCA à laquelle appartient l'instance de cache.
FileSpec Pointe vers une structure Frca_loadfile_t , qui spécifie les caractéristiques utilisées pour identifier l'entrée de cache qui doit être chargée dans le cache donné. La structure contient les membres suivants:
uint32_t  cacheEntryType;
char * fileName;
char * virtualHost;
char * searchKey;
Les membres de la structure Remarque: n'apparaissent pas nécessairement dans cet ordre.
cacheEntryType
Indique le type de l'entrée de cache. Cette zone doit être définie sur FCTRL_CET_HTTPFILE.
fileName
Indique le chemin d'accès absolu au fichier qui fournit le contenu de la nouvelle entrée de cache.
virtualHost
Indique un nom d'hôte virtuel qui est servi par l'instance FRCA.
searchKey
Indique la clé que l'entrée de cache peut être trouvée par l'instance FRCA lorsqu'elle traite une demande interceptée. Pour le moteur GET HTTP, la clé de recherche est identique à la partie abs_path de HTTP URL conformément à la section 3.2.2 du RFC 2616. Par exemple, la clé de recherche correspondant à URL http://www.mydomain/welcome.html est /welcome.html.
Remarque: Si une entrée de cache avec le même type, le même nom de fichier, l'hôte virtuel et la clé de recherche existe déjà et que le fichier n'a pas été modifié depuis la création de l'entrée existante, la demande de chargement aboutit sans aucun effet. Si l'entrée existe et que le contenu du fichier a été modifié depuis son chargement dans le cache, l'entrée de cache est mise à jour. Si l'entrée existe et que le contenu du fichier n'a pas changé, mais que l'un des paramètres des champs de l'en-tête HTTP change, l'entrée existante doit d'abord être déchargée.
AssocData Pointe vers une structure Frca_assocdata_t , qui spécifie des informations supplémentaires à associer au contenu de l'entrée de cache donnée. La structure contient les membres suivants:
uint32_t  assocDataType;
char * cacheControl;
char * contentType;
char * contentEncoding;
char * contentLanguage;
char * contentCharset;
Les membres de la structure Remarque: n'apparaissent pas nécessairement dans cet ordre.
assocDataType
Indique le type de données associées à l'entrée de cache donnée.
cacheControl
Spécifie les paramètres du champ d'en-tête HTTP correspondant, conformément à la RFC 2616.
contentType
Spécifie les paramètres du champ d'en-tête HTTP correspondant, conformément à la RFC 2616.
contentEncoding
Spécifie les paramètres du champ d'en-tête HTTP correspondant, conformément à la RFC 2616.
contentLanguage
Spécifie les paramètres du champ d'en-tête HTTP correspondant, conformément à la RFC 2616.
contentCharset
Spécifie les paramètres du champ d'en-tête HTTP correspondant, conformément à la RFC 2616.

Valeurs renvoyées

Article Descriptif
0 La sous-routine a abouti.
-1 La sous-routine a échoué. La variable globale Errno est définie pour indiquer le type d'erreur spécifique.

Codes d'erreur

Article Descriptif
EINVAL Le paramètre FileSpec ou le paramètre AssocData est égal à zéro ou n'est pas du type correct ou l'un des composants fileName ou searchKey est égal à zéro ou la taille du fichier est égale à zéro.
EFAULT Le paramètre FileSpec ou le paramètre AssocData ou l'un de leurs composants pointe vers une adresse non valide.
ENOMEM Le sous-système FRCA ou NBC est hors mémoire.
EFBIG Le contenu de l'entrée de cache n'a pas pu être chargé dans la CCBN. Vérifiez les options réseau Nbc_limit, Nbc_min_cacheet Nbc_max_cache.
ENOTREADY L'extension de noyau est en cours de chargement ou de déchargement.
ENOENT Le paramètre CacheHandle ou FrcaHandle n'est pas valide.