SOAP-SVCLOG-Viewer 1.4
A friendly SOAP log messages viewer
FileParser Class Reference

La classe FileParser parse un fichier .SCVLOG et insère autant de lignes dans la ListView de la fenêtre qu'il y a de messages SOAP dans le fichier. La classe utilise le parser XML 'Expat' qui est open-source, très rapide, et SAX (parsing au fil de l'eau). Elle gère les gros fichiers grace à un système de buffer. More...

#include <FileParser.h>

Public Member Functions

void open (std::string filename, const void *fenetre)
 Ouvre un fichier SVCLOG.
int parse (bool useCRLF)
 Fonction principale pour déclencher le parsing par Expat.
void close ()
 Ferme le fichier une fois le parsing terminé.

Static Public Member Functions

static void XMLCALL startElementHandler (void *userData, const XML_Char *name, const XML_Char **atts)
 Ce handler (statique) est appelé à chaque balise ouvrante. Selon la balise, on cree un nouveau message, ou bien on stocke le body du message. La librairie Expat fournit une methode permettant de savoir à quel octet, on est dans le fichier XML: XML_GetCurrentByteIndex(XML_Parser p)
static void XMLCALL endElementHandler (void *userData, const XML_Char *name)
 Ce Handler est appelé à chaque balise fermante. On traite les informations stockées dans userData.
static void XMLCALL dataHandler (void *userData, const XML_Char *content, int length)
 Ce Handler est appelé à chaque fois qu'il y a un Content. Le ContentType a été positionné par le Handler StartElement. Si le Content est à cheval sur 2 buffers, le dataHandler est appelé deux fois, et il faut concaténer.
Voir sur https://stackoverflow.com/questions/609376/geting-xml-data-using-xml-parser-expat#609736.
static void processContentData (void *userData)
 Mémorise dans le message, les informations contenue dans la variable statique contentData, en fonction du type mémorisé dans les userData.

Static Public Attributes

static const unsigned int MAX_MESSAGES = 32000
 Qt ne peut afficher que 32762 messages dans la ListView.

Detailed Description

La classe FileParser parse un fichier .SCVLOG et insère autant de lignes dans la ListView de la fenêtre qu'il y a de messages SOAP dans le fichier. La classe utilise le parser XML 'Expat' qui est open-source, très rapide, et SAX (parsing au fil de l'eau). Elle gère les gros fichiers grace à un système de buffer.


Author
David de Lorenzo

Member Function Documentation

◆ close()

void FileParser::close ( void )

Ferme le fichier une fois le parsing terminé.


See also
open()

◆ dataHandler()

void XMLCALL FileParser::dataHandler ( void * userData,
const XML_Char * content,
int length )
static

Ce Handler est appelé à chaque fois qu'il y a un Content. Le ContentType a été positionné par le Handler StartElement. Si le Content est à cheval sur 2 buffers, le dataHandler est appelé deux fois, et il faut concaténer.
Voir sur https://stackoverflow.com/questions/609376/geting-xml-data-using-xml-parser-expat#609736.


Parameters
userData: Non utilisé.
content: Le contenu textuel de la section.
length: Le Content n'est pas NULL-terminated: il faut utiliser length.

◆ endElementHandler()

void XMLCALL FileParser::endElementHandler ( void * userData,
const XML_Char * name )
static

Ce Handler est appelé à chaque balise fermante. On traite les informations stockées dans userData.


Parameters
userData: Pointeur sur les données mémorisées lors de lors de l'ouverture des balises.
name: Le nom de la balise.

◆ open()

void FileParser::open ( std::string filename,
const void * fenetre )

Ouvre un fichier SVCLOG.


Parameters
filename: le nom du fichier SVCLOG à parser.
fenetre: pointeur sur la fenetre contenant la listView de Message List.

◆ parse()

int FileParser::parse ( bool useCRLF)

Fonction principale pour déclencher le parsing par Expat.


Parameters
useCRLF: TRUE si le fichier contient des Retour Chariot au format Windows (CRLF): typiquement des fichiers XML. FALSE si le fichier contient des Retour Chariot au format LINUX (LF) ou 1 seule ligne. Typiquement des fichiers SVCLOG
Returns
Retourne un code d'erreur (0 si tout s'est bien passé).

◆ processContentData()

void FileParser::processContentData ( void * userData)
static

Mémorise dans le message, les informations contenue dans la variable statique contentData, en fonction du type mémorisé dans les userData.


Parameters
userData: Pointeur sur les données mémorisées lors de lors de l'ouverture des balises.

◆ startElementHandler()

void XMLCALL FileParser::startElementHandler ( void * userData,
const XML_Char * name,
const XML_Char ** atts )
static

Ce handler (statique) est appelé à chaque balise ouvrante. Selon la balise, on cree un nouveau message, ou bien on stocke le body du message. La librairie Expat fournit une methode permettant de savoir à quel octet, on est dans le fichier XML: XML_GetCurrentByteIndex(XML_Parser p)


Parameters
userData: Structure pour les données à mémoriser.
name: Nom de la balise.
atts: Tableau des attributs.

The documentation for this class was generated from the following files:
  • E:/Sources/Repositories/VOR/TOOLS/SOAP-Message-Viewer/Sources/FileParser.h
  • E:/Sources/Repositories/VOR/TOOLS/SOAP-Message-Viewer/Sources/FileParser.cpp