diff options
author | fcolin | 2007-02-01 13:01:09 +0000 |
---|---|---|
committer | fcolin | 2007-02-01 13:01:09 +0000 |
commit | b654ecae9031bb844102021bf0dc2277d37735ef (patch) | |
tree | 29c3cc6466beec72aaef69d9a952421453859366 /Bus/Ivy/IvyBinding.h | |
parent | 2d007e81c5c78e0e668b25f4a4f2fd32ddc3cece (diff) | |
download | ivy-cplusplus-b654ecae9031bb844102021bf0dc2277d37735ef.zip ivy-cplusplus-b654ecae9031bb844102021bf0dc2277d37735ef.tar.gz ivy-cplusplus-b654ecae9031bb844102021bf0dc2277d37735ef.tar.bz2 ivy-cplusplus-b654ecae9031bb844102021bf0dc2277d37735ef.tar.xz |
Utilisateur : Fcolin Date : 1/06/06 Heure : 15:54 Créé Commentaire: Separation module de traitement regexp (vss 1)
Diffstat (limited to 'Bus/Ivy/IvyBinding.h')
-rw-r--r-- | Bus/Ivy/IvyBinding.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/Bus/Ivy/IvyBinding.h b/Bus/Ivy/IvyBinding.h new file mode 100644 index 0000000..44a87ee --- /dev/null +++ b/Bus/Ivy/IvyBinding.h @@ -0,0 +1,58 @@ +/*
+ * Ivy, C interface
+ *
+ * Copyright (C) 1997-2006
+ * Centre d'Études de la Navigation Aérienne
+ *
+ * Bind syntax for extracting message comtent
+ * using regexp or other
+ *
+ * Authors: François-Régis Colin <fcolin@cena.fr>
+ *
+ * $Id: ivybind.h,v 1.5.2.3 2006/04/21 15:51:55 fcolin Exp $
+ *
+ * Please refer to file version.h for the
+ * copyright notice regarding this software
+ */
+/* Module de gestion de la syntaxe des messages Ivy */
+#pragma once
+
+#define USE_PCRE
+
+#ifdef USE_PCRE
+#define OVECSIZE 60 /* must be multiple of 3, for regexp return */
+#include <pcre.h>
+#else /* we don't USE_PCRE */
+#define MAX_MSG_FIELDS 200
+#include "Regex.h"
+#endif /* USE_PCRE */
+
+class IvyBinding
+{
+public:
+ /* Creation, Compilation */
+ IvyBinding();
+ ~IvyBinding();
+
+ /* Mise en place des Filtrages */
+ static void SetFilter( int argc, const char ** argv );
+ static int Filter( const char *expression );
+
+ /* Creation, Compilation */
+ bool Compile( const char *expression, int *erroffset, const char **errmessage );
+ /* Execution , extraction */
+ int Exec( const char * message );
+ void Match( const char *message, int argnum, int *arglen, const char **arg );
+
+private:
+#ifdef USE_PCRE
+ pcre *regexp;
+ pcre_extra *inspect;
+ int nb_match;
+ int ovector[OVECSIZE];
+#else /* we don't USE_PCRE */
+ regex_t regexp; /* la regexp sous forme machine */
+ regmatch_t match[MAX_MSG_FIELDS+1]; /* resultat du match */
+#endif /* USE_PCRE */
+
+};
\ No newline at end of file |