Siena Fast Forwarding
Documentation (v. 1.13.0)
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
siena
btable.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_BTABLE_H
26
#define SIENA_BTABLE_H
27
28
#include <cstddef>
29
30
#include <
siena/forwarding.h
>
31
#include <siena/allocator.h>
32
33
namespace
siena {
34
35
class
BPredicate;
36
58
class
BTable
:
public
ForwardingTable
{
59
public
:
60
BTable
();
61
62
virtual
~
BTable
();
63
64
virtual
void
ifconfig
(
if_t
,
const
predicate
&);
65
66
virtual
void
match
(
const
message
&,
MatchHandler
&)
const
;
67
virtual
void
match
(
const
message
&,
MatchMessageHandler
&)
const
;
68
69
virtual
void
clear
();
70
virtual
void
clear_recycle
();
71
72
virtual
size_t
allocated_bytesize
()
const
;
73
virtual
size_t
bytesize
()
const
;
74
75
protected
:
81
FTAllocator
memory
;
82
87
BPredicate *
plist
;
88
};
89
101
class
SortedBTable
:
public
BTable
{
102
public
:
103
SortedBTable
();
104
105
virtual
void
consolidate
();
106
};
107
108
}
// end namespace siena
109
110
#endif