Siena Fast Forwarding Documentation (v. 1.13.0)
bxtable.h
1 // -*- C++ -*-
2 //
3 // This file is part of Siena, a wide-area event notification system.
4 // See http://www.inf.usi.ch/carzaniga/siena/
5 //
6 // Authors: Antonio Carzaniga
7 // See the file AUTHORS for full details.
8 //
9 // Copyright (C) 2001-2003 University of Colorado
10 //
11 // Siena is free software: you can redistribute it and/or modify
12 // it under the terms of the GNU General Public License as published by
13 // the Free Software Foundation, either version 3 of the License, or
14 // (at your option) any later version.
15 //
16 // Siena is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU General Public License for more details.
20 //
21 // You should have received a copy of the GNU General Public License
22 // along with Siena. If not, see <http://www.gnu.org/licenses/>.
23 //
24 #ifndef SIENA_BXTABLE_H
25 #define SIENA_BXTABLE_H
26 
27 #include <cstddef>
28 
29 #include <siena/forwarding.h>
30 #include <siena/allocator.h>
31 
32 namespace siena {
33 
34 class BXPredicate;
35 
47 class BXTable : public ForwardingTable {
48 public:
49  BXTable();
50 
51  virtual ~BXTable();
52 
53  virtual void ifconfig(if_t, const predicate &);
54  virtual void consolidate();
55 
56  virtual void match(const message &, MatchHandler &) const;
57  virtual void match(const message &, MatchMessageHandler &) const;
58 
59  virtual void clear();
60  virtual void clear_recycle();
61 
62  virtual size_t allocated_bytesize() const;
63  virtual size_t bytesize() const;
64 
65 protected:
71  FTAllocator memory;
72 
77  BXPredicate * plist;
78 };
79 
80 } // end namespace siena
81 
82 #endif