Siena Fast Forwarding documentation (v. 1.0.0)

Main Page   Class Hierarchy   Compound List   File List   Compound Members   Examples  

string_index.h

00001 // -*- C++ -*-
00002 //
00003 //  This file is part of Siena, a wide-area event notification system.
00004 //  See http://www.cs.colorado.edu/serl/siena/
00005 //
00006 //  Authors: Antonio Carzaniga <[email protected]>
00007 //  See the file AUTHORS for full details. 
00008 //
00009 //  Copyright (C) 2001-2002 University of Colorado
00010 //
00011 //  This program is free software; you can redistribute it and/or
00012 //  modify it under the terms of the GNU General Public License
00013 //  as published by the Free Software Foundation; either version 2
00014 //  of the License, or (at your option) any later version.
00015 //
00016 //  This program is distributed in the hope that it will be useful,
00017 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00018 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019 //  GNU General Public License for more details.
00020 //
00021 //  You should have received a copy of the GNU General Public License
00022 //  along with this program; if not, write to the Free Software
00023 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307,
00024 //  USA, or send email to [email protected].
00025 //
00026 //
00027 // $Id: string_index.h,v 1.7 2002/09/30 04:51:49 carzanig Exp $
00028 //
00029 #ifndef STRING_INDEX_H
00030 #define STRING_INDEX_H
00031 
00032 #include "fwd_table.h"
00033 #include "tst.h"
00034 #include "ft_allocator.h"
00035 
00037 class SICompleteDescr {
00038 public:
00039     Constraint *                eq;
00040     Constraint *                lt;
00041     Constraint *                gt;
00042     Constraint *                sf;
00043     SICompleteDescr *           next_lt;
00044     SICompleteDescr *           next_gt;
00045 
00046     void                        insert_between(TSTNode *, TSTNode *);
00047 };
00048 
00050 struct SIPartialDescr {
00051     Constraint *                pf;
00052     Constraint *                ss;
00053 };
00054 
00061 class StringIndex : public PTST {
00062 public:
00063                                 StringIndex();
00064 
00065     Constraint *                add_eq(const string & v, FTAllocator &);
00066     Constraint *                add_lt(const string & v, FTAllocator &);
00067     Constraint *                add_gt(const string & v, FTAllocator &);
00068     Constraint *                add_pf(const string & v, FTAllocator &);
00069     Constraint *                add_sf(const string & v, FTAllocator &);
00070     Constraint *                add_ss(const string & v, FTAllocator &);
00071 
00072     bool                        match(const string & v, CProcessor & p) const;
00073 };
00074 
00075 #ifdef HAVE_INLINE
00076 #include "string_index.icc"
00077 #endif
00078 
00079 #endif

Copyright © 2001-2002 University of Colorado.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". This documentation is authored and maintained by Antonio Carzaniga