Page principale | Hiérarchie des classes | Liste alphabétique | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier

NetParser.h

00001 /*! \file NetParser.h
00002     \brief Parser de protocol.
00003 
00004     Parser de protocol programmable.
00005 
00006     \author     aerith (www.aerith.fr)
00007     \version    1.0
00008     \date       23/01/2008
00009 */
00010 
00011 #ifndef INCLUDE_RSRC_NET_PARSER
00012 #define INCLUDE_RSRC_NET_PARSER
00013 
00014 #include    "../Surcouche/SurcoucheModule.h"
00015 #include    "../Tools/Tools.h"
00016 #include    "../Error/Error.h"
00017 #include    "NetRequest.h"
00018 #include    <stdio.h>
00019 #include    <string.h>
00020 #include    <stdlib.h>
00021 #include    <vector>
00022 
00023 //! Parser de protocol.
00024 /*! Parser de protocol programmable.
00025 */
00026 class NetParser
00027 {
00028 private :
00029     int                         NbRequest;      /*!< Nombre de requette.                                    */
00030     std::vector<NetRequest *>   Requests;       /*!< Chaque lignes est une requette.                        */
00031     NetConnect                  *Connect;       /*!< Class d'info sur la connection utilisant le parser.    */
00032 
00033 public  :
00034     /*! Initialise avec des paramétres par defaut.
00035         \param pConnect class de la connection reseau
00036     */
00037     NetParser(NetConnect *pConnect);
00038 
00039     /*! Libère la mémoire proprement
00040     */
00041     ~NetParser();
00042 
00043     //! Ajoute une requette.
00044     /*! Ajoute une requette avec un raw et une fonction lier.
00045         \param pFunction fonction a lier.
00046         \param pMask syntax de la requette.
00047         \sa DelRequest() et GetNbRequest().
00048     */
00049     int     AddRequest(ROUTINE pFunction, char *pMask);
00050 
00051     //! Supprime une requette.
00052     /*! Supprime la requette à la position \a iPos.
00053         \param iPos position de la requette.
00054         \sa AddRequest(), GetRaw() et GetNbRequest().
00055     */
00056     int     DelRequest(int iPos);
00057 
00058     //! Retourne la syntax de la requette.
00059     /*! Retourne la syntax (Mask) de la requette \a iPos.
00060         \param iPos Position de la requette.
00061         \return pointeur sur la syntax de la requette \a Mask.
00062         \sa AddRequest(), DelRequest() et GetNbRequest().
00063     */
00064     inline char     *GetMask(int iPos)
00065     {
00066         if(iPos < NbRequest)
00067             return Requests[iPos]->Mask;
00068 
00069         return NULL;
00070     };
00071 
00072     //! Retourne le nombre de requettes.
00073     /*! Retourne le nombre de requette du parser.
00074         \return nombre de requette du parser.
00075         \sa AddRequest(), DelRequest() et GetRequest().
00076     */
00077     inline int      GetNbRequest()
00078     {
00079         return NbRequest;
00080     };
00081 
00082     //! Parse un buffer.
00083     /*! Parse un buffer ligne à ligne, recherche et éxécute les requettes.\n
00084         \param pBuffer buffer à parser.
00085         \return code d'erreur de la fonction retournant l'erreur.
00086     */
00087     int     ParseLine(char *pBuffer);
00088 
00089     //! Parse un buffer.
00090     /*! Parse le buffer en un seul block, recherche et éxécute une requette.\n
00091         \param pBuffer buffer à parser.
00092         \return code d'erreur de la fonction.
00093     */
00094     int     Parse(char *pBuffer);
00095 };
00096 
00097 
00098 #endif

Généré le Thu Jan 24 12:36:03 2008 pour A.I.F. par  doxygen 1.3.9.1