Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "unit.hpp"
00021
00022 #include <internal/ListLocked.hpp>
00023 #include <boost/bind/protect.hpp>
00024 #include <rtt-detail-fwd.hpp>
00025 using namespace RTT::detail;
00026
00027 using namespace std;
00028 using namespace RTT;
00029 using namespace boost;
00030
00031 void foo(double d)
00032 {
00033 }
00034
00035
00036 struct ListTest
00037 {
00038 struct Cont : public boost::intrusive::list_base_hook<> {
00039 double data;
00040 };
00041 typedef boost::intrusive::list<Cont> BufferType;
00042
00043 BufferType mlist;
00044
00045 void mfoo(double d)
00046 {}
00047
00048 double mcfoo(Cont& c)
00049 {
00050 return c.data;
00051 }
00052
00053 template<class Function>
00054 static void apply_item(Function func, Cont& c)
00055 {
00056
00057 }
00058
00059 template<class Function>
00060 void apply( Function func )
00061 {
00062
00063 for (BufferType::iterator it = mlist.begin(); it != mlist.end(); ++it)
00064 func( it->data );
00065 }
00066 };
00067
00068 void cfoo(ListTest::Cont& c)
00069 {
00070 }
00071
00072 bool iffoo(double d)
00073 {
00074 return true;
00075 }
00076
00077
00078 BOOST_FIXTURE_TEST_SUITE( ListTestSuite, ListTest )
00079
00080 BOOST_AUTO_TEST_CASE( test_instatiation )
00081 {
00082
00083 ListLocked<double> lld(10);
00084
00085 typedef boost::shared_ptr<double*> dsp;
00086
00087 ListLocked<dsp> lldsp(10);
00088 }
00089
00090 BOOST_AUTO_TEST_CASE( test_apply )
00091 {
00092
00093 std::for_each (mlist.begin(), mlist.end(), boost::bind( &ListTestSuite::test_apply::mcfoo, this, _1) );
00094
00095
00096
00097
00098 Cont c;
00099
00100
00101 apply( boost::bind(&foo,_1) );
00102
00103 #if 1
00104 ListLocked<double> lld(10);
00105
00106 typedef boost::shared_ptr<double*> dsp;
00107
00108 ListLocked<dsp> lldsp(10);
00109
00110 lld.apply( boost::bind( foo, _1 ) );
00111 #endif
00112
00113 lld.clear();
00114
00115 lldsp.clear();
00116
00117 lld.find_if(&iffoo);
00118 }
00119
00120 BOOST_AUTO_TEST_SUITE_END()
00121