From: <bl...@us...> - 2003-05-05 08:15:49
|
Update of /cvsroot/cpptool/rfta/src/rftaparser In directory sc8-pr-cvs1:/tmp/cvs-serv20028/src/rftaparser Modified Files: MiniParserTest.cpp MiniParserTest.h Log Message: * added callback to function member test using Boost.Bind. Index: MiniParserTest.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rftaparser/MiniParserTest.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MiniParserTest.cpp 4 May 2003 22:13:51 -0000 1.2 --- MiniParserTest.cpp 5 May 2003 07:37:09 -0000 1.3 *************** *** 6,9 **** --- 6,11 ---- #include "stdafx.h" #include "MiniParserTest.h" + #include <functional> + #include <boost/bind.hpp> *************** *** 72,75 **** --- 74,78 ---- MiniParserTest::setUp() { + callbackText_ = Xtl::CStringView(); } *************** *** 216,226 **** } void MiniParserTest::testParseCallback() { ! const Xtl::MiniParser &parser = Xtl::spaces>> Xtl::StringMiniParser( "ab" )[&callback1] >> Xtl::spaces; const std::string text( " ab " ); RFTA_ASSERT_MINIPARSER_PASS( text, parser ); RFTA_ASSERT_EQUAL( "ab", callback1Text.str() ); } --- 219,248 ---- } + + void + MiniParserTest::callback( const Xtl::CStringView &text ) + { + callbackText_ = text; + } + + void MiniParserTest::testParseCallback() { ! const Xtl::MiniParser &parser = Xtl::spaces >> Xtl::StringMiniParser( "ab" )[&callback1] >> Xtl::spaces; const std::string text( " ab " ); RFTA_ASSERT_MINIPARSER_PASS( text, parser ); RFTA_ASSERT_EQUAL( "ab", callback1Text.str() ); + + Xtl::MiniParser::MatchedCallback fcb; + fcb = boost::bind( &MiniParserTest::callback, this, _1 ); + + + const Xtl::MiniParser &parser2 = + Xtl::spaces + >> Xtl::StringMiniParser( "ab" )[boost::bind( &MiniParserTest::callback, this, _1 )] + >> Xtl::spaces; + RFTA_ASSERT_MINIPARSER_PASS( text, parser2 ); + RFTA_ASSERT_EQUAL( "ab", callbackText_.str() ); } Index: MiniParserTest.h =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rftaparser/MiniParserTest.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MiniParserTest.h 4 May 2003 22:13:51 -0000 1.2 --- MiniParserTest.h 5 May 2003 07:37:09 -0000 1.3 *************** *** 60,63 **** --- 60,66 ---- private: + void callback( const Xtl::CStringView &text ); + + Xtl::CStringView callbackText_; }; |