libdap  Updated for version 3.17.0
GNURegex.h
00001 
00002 // -*- mode: c++; c-basic-offset:4 -*-
00003 
00004 // This file is part of libdap, A C++ implementation of the OPeNDAP Data
00005 // Access Protocol.
00006 
00007 // Copyright (c) 2005 OPeNDAP, Inc.
00008 // Author: James Gallagher <jgallagher@opendap.org>
00009 //
00010 // This library is free software; you can redistribute it and/or
00011 // modify it under the terms of the GNU Lesser General Public
00012 // License as published by the Free Software Foundation; either
00013 // version 2.1 of the License, or (at your option) any later version.
00014 // 
00015 // This library is distributed in the hope that it will be useful,
00016 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018 // Lesser General Public License for more details.
00019 // 
00020 // You should have received a copy of the GNU Lesser General Public
00021 // License along with this library; if not, write to the Free Software
00022 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00023 //
00024 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
00025 
00026 #ifndef _Regex_h
00027 #define _Regex_h 1
00028 
00029 namespace libdap
00030 {
00031 
00035 class Regex
00036 {
00037 private:
00038     // d_preg was a regex_t* but I needed to include both regex.h and config.h
00039     // to make the gnulib code work. Because this header is installed (and is
00040     // used by other libraries) it cannot include config.h, so I moved the 
00041     // regex.h and config.h (among other) includes to the implementation. It
00042     // would be cleaner to use a special class, but for one field that seems
00043     // like overkill.
00044     void *d_preg;
00045     void init(const char *t);
00046     
00047 public:
00048     Regex(const char *t);
00049     Regex(const char *t, int dummy);
00050     ~Regex();
00051 
00053     int match(const char* s, int len, int pos = 0);
00055     int search(const char* s, int len, int& matchlen, int pos = 0);
00056 };
00057 
00058 } // namespace libdap
00059 
00060 #endif