PPI: Add optional template arg for packet type to connectors
[senf.git] / PPI / RateFilter.hh
1 // Copyright (C) 2007
2 // Fraunhofer Institute for Open Communication Systems (FOKUS) 
3 // Competence Center NETwork research (NET), St. Augustin, GERMANY 
4 //     Stefan Bund <g0dil@berlios.de>
5 //
6 // This program is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
10 //
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the
18 // Free Software Foundation, Inc.,
19 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20 #ifndef RATEFILTER_HH_
21 #define RATEFILTER_HH_
22
23 // Custom includes
24 #include "Connectors.hh"
25 #include "Module.hh"
26 #include "IntervalTimer.hh"
27
28
29 namespace senf {
30 namespace ppi {
31 namespace module {
32         
33 class RateFilter
34     : public Module
35 {
36     SENF_PPI_MODULE(RateFilter);
37 public:
38
39     connector::ActiveInput<> input;
40     connector::ActiveOutput<> output;
41
42     RateFilter(senf::ClockService::clock_type interval);
43 //    void changeInterval(senf::ClockService::clock_type interval);   not yet implemented!
44
45 private:
46     void timeout();
47     ppi::IntervalTimer timer;
48 };
49
50 }}} //namespaces
51
52 #endif /*RATEFILTER_HH_*/