Siena Fast Forwarding
Documentation (v. 1.13.0)
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
siena
bddbtable.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
// Copyright (C) 2005 Antonio Carzaniga
11
//
12
// Siena is free software: you can redistribute it and/or modify
13
// it under the terms of the GNU General Public License as published by
14
// the Free Software Foundation, either version 3 of the License, or
15
// (at your option) any later version.
16
//
17
// Siena is distributed in the hope that it will be useful,
18
// but WITHOUT ANY WARRANTY; without even the implied warranty of
19
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
// GNU General Public License for more details.
21
//
22
// You should have received a copy of the GNU General Public License
23
// along with Siena. If not, see <http://www.gnu.org/licenses/>.
24
//
25
#ifndef SIENA_BDDBTABLE_H
26
#define SIENA_BDDBTABLE_H
27
28
#include <cstddef>
29
30
#include <
siena/forwarding.h
>
31
#include <siena/allocator.h>
32
33
namespace
siena {
34
46
class
BDDBTableBase
:
public
ForwardingTable
{
47
public
:
48
virtual
void
consolidate
();
49
virtual
void
ifconfig
(
if_t
,
const
predicate
&) = 0;
50
virtual
void
match
(
const
message
&,
MatchHandler
&)
const
= 0;
51
virtual
void
match
(
const
message
& m,
MatchMessageHandler
& p)
const
;
52
virtual
size_t
allocated_bytesize
()
const
;
53
virtual
size_t
bytesize
()
const
;
54
virtual
void
clear
() = 0;
55
virtual
void
clear_recycle
() = 0;
56
57
protected
:
63
FTAllocator
memory
;
64
};
65
72
class
BDDBTable
:
public
BDDBTableBase
{
73
public
:
74
BDDBTable
();
75
virtual
~
BDDBTable
();
76
77
virtual
void
ifconfig
(
if_t
,
const
predicate
&);
78
virtual
void
match
(
const
message
&,
MatchHandler
&)
const
;
79
80
virtual
void
clear
();
81
virtual
void
clear_recycle
();
82
83
private
:
84
class
IFDescr;
85
86
IFDescr * bddlist;
87
};
88
95
class
ZDDBTable
:
public
BDDBTableBase
{
96
public
:
97
ZDDBTable
();
98
virtual
~
ZDDBTable
();
99
100
virtual
void
ifconfig
(
if_t
,
const
predicate
&);
101
virtual
void
match
(
const
message
&,
MatchHandler
&)
const
;
102
103
virtual
void
clear
();
104
virtual
void
clear_recycle
();
105
106
private
:
107
class
IFDescr;
108
109
IFDescr * zddlist;
110
};
111
112
};
// end namespace siena
113
114
#endif