// 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"
// 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()
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)
//timer = ppi::IntervalTimer(interval);
}
*/
+
+///////////////////////////////cc.e////////////////////////////////////////
+#undef prefix_
+//#include "RateFilter.mpp"
+
+\f
+// 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:
// 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 {
: 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
+
+\f
+// 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:
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());
BOOST_CHECK_EQUAL( ctrl.mtu(), oldMTU-16);
SENF_CHECK_NO_THROW( ctrl.mtu(oldMTU));
BOOST_CHECK_EQUAL( ctrl.mtu(), oldMTU);
+
}
///////////////////////////////cc.e////////////////////////////////////////