Base de donnée de hashs sous la forme d'un système de fichier. Plus de détails...
Classes | |
struct | DirFileInfo |
Nom du répertoire et du fichier contenant le hash. Plus de détails... | |
Fonctions membres publiques | |
FileHashDatabase (ITraceMng *tm, const String &directory) | |
void | writeValues (const HashDatabaseWriteArgs &args, HashDatabaseWriteResult &xresult) override |
void | readValues (const HashDatabaseReadArgs &args) override |
Fonctions membres publiques hérités de Arccore::TraceAccessor | |
TraceAccessor (ITraceMng *m) | |
Construit un accesseur via le gestionnaire de trace m. | |
TraceAccessor (const TraceAccessor &rhs) | |
Constructeur par recopie. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () const |
Gestionnaire de trace. | |
TraceMessage | info () const |
Flot pour un message d'information. | |
TraceMessage | pinfo () const |
Flot pour un message d'information en parallèle. | |
TraceMessage | info (char category) const |
Flot pour un message d'information d'une catégorie donnée. | |
TraceMessage | pinfo (char category) const |
Flot pour un message d'information parallèle d'une catégorie donnée. | |
TraceMessage | info (bool v) const |
Flot pour un message d'information. | |
TraceMessage | warning () const |
Flot pour un message d'avertissement. | |
TraceMessage | pwarning () const |
TraceMessage | error () const |
Flot pour un message d'erreur. | |
TraceMessage | perror () const |
TraceMessage | log () const |
Flot pour un message de log. | |
TraceMessage | plog () const |
Flot pour un message de log. | |
TraceMessage | logdate () const |
Flot pour un message de log précédé de la date. | |
TraceMessage | fatal () const |
Flot pour un message d'erreur fatale. | |
TraceMessage | pfatal () const |
Flot pour un message d'erreur fatale en parallèle. | |
TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
Flot pour un message de debug. | |
Trace::eDebugLevel | configDbgLevel () const |
Niveau debug du fichier de configuration. | |
TraceMessage | info (Int32 verbose_level) const |
Flot pour un message d'information d'un niveau donné | |
TraceMessage | linfo () const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
TraceMessage | linfo (Int32 relative_level) const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
void | fatalMessage (const StandaloneTraceMessage &o) const |
Fonctions membres privées | |
DirFileInfo | _getDirFileInfo (const String &hash_value) |
Attributs privés | |
String | m_directory |
Int64 | m_nb_write_cache = 0 |
Int64 | m_nb_write = 0 |
Int64 | m_nb_read = 0 |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arccore::TraceAccessor | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
Base de donnée de hashs sous la forme d'un système de fichier.
L'implémentation est similaire à ce que peut faire 'git'.
Pour chaque hash on écrit un fichier dont le nom sera le hash et dont la valeur sera le tableau d'octets correspondant à ce hash. Un fichier n'est donc écrit qu'une seule fois et sa valeur ne change jamais: en écriture si le fichier existe déjà il n'est donc pas nécessaire de l'écrire à nouveau.
Afin d'éviter d'avoir trop de hash dans le même répertoire, on créé deux sous-répertoires. Le premier avec la première lettre du hash et le second avec les deux lettres suivantes. Donc par exemple si le hash est '0a239fb4', alors il sera dans le répertoire '0/a2/0a239fb4'.
Définition à la ligne 50 du fichier FileHashDatabase.cc.
Définition à la ligne 66 du fichier FileHashDatabase.cc.
|
inline |
Définition à la ligne 71 du fichier FileHashDatabase.cc.
|
inlineprivate |
Définition à la ligne 132 du fichier FileHashDatabase.cc.
|
inlineoverridevirtual |
Implémente Arcane::IHashDatabase.
Définition à la ligne 114 du fichier FileHashDatabase.cc.
|
inlineoverridevirtual |
Implémente Arcane::IHashDatabase.
Définition à la ligne 79 du fichier FileHashDatabase.cc.
|
private |
Définition à la ligne 150 du fichier FileHashDatabase.cc.
|
private |
Définition à la ligne 153 du fichier FileHashDatabase.cc.
|
private |
Définition à la ligne 152 du fichier FileHashDatabase.cc.
|
private |
Définition à la ligne 151 du fichier FileHashDatabase.cc.