SOAP-SVCLOG-Viewer 1.4
A friendly SOAP log messages viewer
messages.h
1#ifndef MESSAGES_H
2#define MESSAGES_H
3
4#include <iostream> // pour cout
5#include <string>
6#include <vector>
7#include <fstream>
8#include <cstring> // pour memcpy
9
16{
17public:
18 struct Message; // forward declaration
19
20 static void init(std::string filename);
21 // Ajout d'un message à la liste
22 static void append();
23 static void setWsdl(std::string wsdl);
24 static void setHost(std::string host);
25 static void setAction(std::string* action);
26 static void setActivityID(std::string id);
27 static void setMessageTime(std::string messagetime);
28 static void setMessageSource(std::string source);
29 static void setCurrentBodyStartPosition(long position);
30 static void setCurrentBodyEndPosition(long position);
31 static void setComputerName(std::string name);
32 static void setLogDate(std::string date);
33 // Recupération des infos d'un message
34 static Message* getMessage(std::string number);
35 static Message* getMessage(long number);
36 static void getMessageBody(long number);
37 static bool isSession();
38 static bool isCurrentMessageFaulty();
39 static bool isCurrentMessageRequest();
40 static bool isCurrentMessageServiceLevel();
41 static std::string getCurrentMessageTime();
42 static std::string getCurrentMessageIndex();
43 static int getNextCorrelatedMessageIndex(int startingIndex, std::string id, int endingIndex=-1);
44 static int getPreviousCorrelatedMessageIndex(int index, std::string id);
45 // informations globales
46 static std::string getComputerName();
47 static std::string getLogDate();
48 // recherches
49 static bool containsMessageBody(int index, std::string substring);
50
52 struct Message
53 {
54 std::string host;
55 std::string module;
56 std::string action;
57 std::string direction;
58 std::string activityId;
59 std::string messageTime;
60 std::string wsdl;
61 char* body=nullptr;
64 bool isRequest=false;
65 bool isServiceLevel=false;
66 };
67
68private:
69 static std::string computerName;
70 static std::string logDate;
71 static std::string fileName;
72
73};
74
75#endif // MESSAGES_H
76
77
La classe statique Messages gère la liste des messages SOAP échangés. Tous les membres de la classe s...
Definition messages.h:16
static Message * getMessage(std::string number)
Retourne le message de la liste portant le numéro demandé.
Definition messages.cpp:147
static void setLogDate(std::string date)
Mémorise la date à laquelle le message a été enregistré dans la trace.
Definition messages.cpp:370
static bool containsMessageBody(int index, std::string substring)
On regarde si le Body demandé contient la substring.
Definition messages.cpp:210
static std::string getLogDate()
Renvoie la date à laquelle le message a été enregistré dans la trace.
Definition messages.cpp:352
static void getMessageBody(long number)
Cette fonction lit le Body du message demandé dans le fichier SVCLOG et le mémorise dans la structure...
Definition messages.cpp:170
static void setMessageSource(std::string source)
Mémorise le sens du ciculation du message.
Definition messages.cpp:86
static void setAction(std::string *action)
Cette méthode analyse la string fourni et extrait les deux derniers mots significatifs,...
Definition messages.cpp:37
static bool isCurrentMessageServiceLevel()
Indique si le Message courant est un message SOAP de niveau Service.
Definition messages.cpp:247
static int getPreviousCorrelatedMessageIndex(int index, std::string id)
Renvoie l'index d'un précédent Message ayant cet ActivityId,.
Definition messages.cpp:308
static void setActivityID(std::string id)
Mémorise l'ID de l'activité. L'activité peut regrouper plusieurs messages, par exemple une query et s...
Definition messages.cpp:63
static void append()
Ajout d'un nouveau message à la liste.
Definition messages.cpp:19
static bool isSession()
Indique si le Message est une demande d'ouverture ou de fermeture de session. Il sera alors grisé dan...
Definition messages.cpp:228
static void setMessageTime(std::string messagetime)
Stocke l'heure du message au format "14:31:17.975".
Definition messages.cpp:74
static void setCurrentBodyEndPosition(long position)
Mémorise la position de la fin du Body.
Definition messages.cpp:125
static void setWsdl(std::string wsdl)
Cette méthode mémorise le nom du WSDL. (Présent pour les messages de type REQUEST,...
Definition messages.cpp:103
static std::string getCurrentMessageTime()
Renvoie le timestamp du message courant.
Definition messages.cpp:271
static bool isCurrentMessageRequest()
Indique si le Message est une Query ou une Response.
Definition messages.cpp:237
static bool isCurrentMessageFaulty()
Indique si le Message courant est un message d'erreur SOAP.
Definition messages.cpp:256
static void init(std::string filename)
Initialise toutes les infos du parsing.
Definition messages.cpp:326
static std::string getCurrentMessageIndex()
Retourne le numéro du message courant dans la liste. (C'est le dernier message de la liste).
Definition messages.cpp:136
static std::string getComputerName()
Renvoie le hostname du poste ayant émis le message.
Definition messages.cpp:343
static void setHost(std::string host)
Mémorise le nom de l'ordinateur émetteur du message.
Definition messages.cpp:51
static void setComputerName(std::string name)
Mémorise le hostname du poste ayant émis le message.
Definition messages.cpp:361
static void setCurrentBodyStartPosition(long position)
Mémorise la position du début du Body.
Definition messages.cpp:114
static int getNextCorrelatedMessageIndex(int startingIndex, std::string id, int endingIndex=-1)
Renvoie l'index du prochain Message ayant cet ActivityId.
Definition messages.cpp:284
Structure descriptive d'un Message SOAP extrait du fichier SVCLOG.
Definition messages.h:53
std::string action
Action WSDL. Exemple: "Open".
Definition messages.h:56
std::string wsdl
URL du WSDL du message. exemple: "http://00xdsvmam03200.paris.org/VEDA.SOA/Session....
Definition messages.h:60
std::string direction
Direction du message (sent = "S" ou received = "R").
Definition messages.h:57
long bodyEndPosition
Byte index de la fin du Body dans le fichier SVCLOG.
Definition messages.h:63
std::string messageTime
Timestamp du message au format "14:31:17.975".
Definition messages.h:59
char * body
Body du message (renseigné à la demande).
Definition messages.h:61
bool isRequest
Indique si le message est de type Query ou non.
Definition messages.h:64
std::string host
Hostname ou adresse IP de l'emetteur du message.
Definition messages.h:54
bool isServiceLevel
Indique si le message est de type Service ou de type Transport.
Definition messages.h:65
std::string module
Module WSDL. Exemple: "Session".
Definition messages.h:55
std::string activityId
Identifiant permettant de relier plusieurs messages entre-eux. Exemple: "{dee19e7b-5fba-4adc-8197-2ae...
Definition messages.h:58
long bodyStartPosition
Byte index du début du Body dans le fichier SVCLOG.
Definition messages.h:62