Siena Fast Forwarding
Documentation (v. 1.13.0)
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
siena
bctable.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_BCTABLE_H
25
#define SIENA_BCTABLE_H
26
27
#ifdef HAVE_CONFIG_H
28
#include "config.h"
29
#else
30
#define CONFIG_BLOOM_FILTER_SIZE 256
31
#endif
32
33
#include <
siena/forwarding.h
>
34
#include <siena/allocator.h>
35
#include <siena/btable.h>
36
37
namespace
siena {
38
39
class
BCFilterList;
40
53
class
BCTable
:
public
BTable
{
54
public
:
55
BCTable
();
56
virtual
~
BCTable
();
57
58
virtual
void
consolidate
();
59
virtual
void
match
(
const
message
&,
MatchHandler
&)
const
;
60
61
private
:
66
BCFilterList * positions[CONFIG_BLOOM_FILTER_SIZE];
67
unsigned
int
f_counter;
68
unsigned
int
if_counter;
69
};
70
71
}
// end namespace siena
72
73
#endif