Skip to content
Snippets Groups Projects
Commit 97054102 authored by tho's avatar tho
Browse files

PPI/RateFilter: added interval getter

parent 9fdb8e7a
No related branches found
No related tags found
No related merge requests found
......@@ -21,7 +21,7 @@
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
/** \file
\brief Jack.test unit tests */
\brief Jack unit tests */
//#include "Jack.test.hh"
//#include "Jack.test.ih"
......
......@@ -19,21 +19,23 @@
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
/** \file
\brief ppitest non-inline non-template implementation */
\brief RateFilter non-inline non-template implementation */
#include "RateFilter.hh"
//#include "RateFilter.ih"
#define prefix_
// ////////////////////////////////////////////////////////////////////////
// RateFilter
// Custom includes
//#include "RateFilter.mpp"
#define prefix_
///////////////////////////////cc.p////////////////////////////////////////
senf::ppi::module::RateFilter::RateFilter(senf::ClockService::clock_type interval)
: timer(interval)
: timer_(interval)
{
route(input,timer);
route(timer,output);
registerEvent(timer, &RateFilter::timeout);
route(input, timer_);
route(timer_, output);
registerEvent(timer_, &RateFilter::timeout);
}
void senf::ppi::module::RateFilter::timeout()
......@@ -41,6 +43,12 @@ void senf::ppi::module::RateFilter::timeout()
output(input());
}
senf::ClockService::clock_type senf::ppi::module::RateFilter::interval()
const
{
return timer_.interval().first;
}
/* this should be what should happen. but _this_ most likely won't work
void senf::ppi::module::RateFilter::changeInterval(senf::ClockService::clock_type interval)
......@@ -48,3 +56,18 @@ void senf::ppi::module::RateFilter::changeInterval(senf::ClockService::clock_typ
//timer = ppi::IntervalTimer(interval);
}
*/
///////////////////////////////cc.e////////////////////////////////////////
#undef prefix_
//#include "RateFilter.mpp"
// Local Variables:
// mode: c++
// fill-column: 100
// comment-column: 40
// c-file-style: "senf"
// indent-tabs-mode: nil
// ispell-local-dictionary: "american"
// compile-command: "scons -u test"
// End:
......@@ -17,14 +17,20 @@
// along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
/** \file
\brief RateFilter public header */
#ifndef HH_SENF_PPI_RateFilter_
#define HH_SENF_PPI_RateFilter_
#define HH_SENF_PPI_RateFilter_ 1
// Custom includes
#include "Connectors.hh"
#include "Module.hh"
#include "IntervalTimer.hh"
//#include "RateFilter.mpp"
///////////////////////////////hh.p////////////////////////////////////////
namespace senf {
namespace ppi {
......@@ -34,19 +40,35 @@ class RateFilter
: public Module
{
SENF_PPI_MODULE(RateFilter);
public:
connector::ActiveInput<> input;
connector::ActiveOutput<> output;
public:
RateFilter(senf::ClockService::clock_type interval);
// void changeInterval(senf::ClockService::clock_type interval); not yet implemented!
senf::ClockService::clock_type interval() const;
connector::ActiveInput<> input;
connector::ActiveOutput<> output;
private:
void timeout();
ppi::IntervalTimer timer;
ppi::IntervalTimer timer_;
};
}}} //namespaces
#endif /*HH_SENF_PPI_RateFilter_*/
///////////////////////////////hh.e////////////////////////////////////////
//#include "RateFilter.cci"
//#include "RateFilter.ct"
//#include "RateFilter.cti"
#endif
// Local Variables:
// mode: c++
// fill-column: 100
// c-file-style: "senf"
// indent-tabs-mode: nil
// ispell-local-dictionary: "american"
// compile-command: "scons -u test"
// comment-column: 40
// End:
......@@ -41,6 +41,11 @@ BOOST_AUTO_UNIT_TEST(NetdeviceController) {
senf::NetdeviceController ctrl ("lo");
BOOST_CHECK_EQUAL( ctrl.interfaceName(), "lo");
int index = ctrl.interfaceIndex();
BOOST_CHECK_EQUAL( index, senf::NetdeviceController(index).interfaceIndex() );
BOOST_CHECK_THROW( senf::NetdeviceController("invalid_interfacename"), senf::SystemException );
int oldMTU;
SENF_CHECK_NO_THROW( oldMTU = ctrl.mtu());
......@@ -53,6 +58,7 @@ BOOST_AUTO_UNIT_TEST(NetdeviceController) {
BOOST_CHECK_EQUAL( ctrl.mtu(), oldMTU-16);
SENF_CHECK_NO_THROW( ctrl.mtu(oldMTU));
BOOST_CHECK_EQUAL( ctrl.mtu(), oldMTU);
}
///////////////////////////////cc.e////////////////////////////////////////
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment