From fbdeea6df44f13ea4368f33d5eb846730458bc76 Mon Sep 17 00:00:00 2001 From: fgerlits Date: Fri, 1 Jul 2005 17:24:21 +0000 Subject: [PATCH] added timeDurationToStringMilliseconds() method --- .../include/LiveSupport/Core/TimeConversion.h | 13 +++++++++-- .../modules/core/src/TimeConversion.cxx | 22 ++++++++++++++++++- .../modules/core/src/TimeConversionTest.cxx | 20 +++++++++++++++-- .../modules/core/src/TimeConversionTest.h | 13 +++++++++-- 4 files changed, 61 insertions(+), 7 deletions(-) diff --git a/livesupport/modules/core/include/LiveSupport/Core/TimeConversion.h b/livesupport/modules/core/include/LiveSupport/Core/TimeConversion.h index 9cd725be2..f0007c779 100644 --- a/livesupport/modules/core/include/LiveSupport/Core/TimeConversion.h +++ b/livesupport/modules/core/include/LiveSupport/Core/TimeConversion.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.6 $ + Version : $Revision: 1.7 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/include/LiveSupport/Core/TimeConversion.h,v $ ------------------------------------------------------------------------------*/ @@ -71,7 +71,7 @@ using namespace LiveSupport; * A helper object holding static time conversion functions. * * @author $Author: fgerlits $ - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ */ class TimeConversion { @@ -138,6 +138,15 @@ class TimeConversion */ static void sleep(Ptr::Ref duration) throw (); + + /** + * Convert a time_duration to a format used in SMILs. + * + * @param duration sleep for this duration. + */ + static Ptr::Ref + timeDurationToStringMilliseconds(Ptr::Ref duration) + throw (); }; diff --git a/livesupport/modules/core/src/TimeConversion.cxx b/livesupport/modules/core/src/TimeConversion.cxx index 05787e2e2..15c39b7fe 100644 --- a/livesupport/modules/core/src/TimeConversion.cxx +++ b/livesupport/modules/core/src/TimeConversion.cxx @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.6 $ + Version : $Revision: 1.7 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/TimeConversion.cxx,v $ ------------------------------------------------------------------------------*/ @@ -152,3 +152,23 @@ TimeConversion :: sleep(Ptr::Ref duration) } } + +/*------------------------------------------------------------------------------ + * Convert a time_duration to a format used in SMILs. + *----------------------------------------------------------------------------*/ +Ptr::Ref +TimeConversion :: timeDurationToStringMilliseconds( + Ptr::Ref duration) + throw () +{ + std::stringstream stringStream; + stringStream << duration->total_seconds(); + int microseconds = duration->fractional_seconds(); + stringStream << "." + << std::setw(3) << std::setfill('0') << std::dec + << microseconds / 1000 + << 's'; + Ptr::Ref result(new std::string(stringStream.str())); + return result; +} + diff --git a/livesupport/modules/core/src/TimeConversionTest.cxx b/livesupport/modules/core/src/TimeConversionTest.cxx index c4b311644..8f9b75a5c 100644 --- a/livesupport/modules/core/src/TimeConversionTest.cxx +++ b/livesupport/modules/core/src/TimeConversionTest.cxx @@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Author : $Author: maroy $ - Version : $Revision: 1.5 $ + Author : $Author: fgerlits $ + Version : $Revision: 1.6 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/TimeConversionTest.cxx,v $ ------------------------------------------------------------------------------*/ @@ -213,3 +213,19 @@ TimeConversionTest :: sleepTest(void) CPPUNIT_ASSERT((*end - *start) >= *duration); } + +/*------------------------------------------------------------------------------ + * Test the timeDurationToStringMilliseconds() function + *----------------------------------------------------------------------------*/ +void +TimeConversionTest :: durationToStringTest(void) + throw (CPPUNIT_NS::Exception) +{ + Ptr::Ref duration(new time_duration(1,2,3,4000)); + + Ptr::Ref durationString + = TimeConversion::timeDurationToStringMilliseconds( + duration); + CPPUNIT_ASSERT_EQUAL(std::string("3723.004s"), *durationString); +} + diff --git a/livesupport/modules/core/src/TimeConversionTest.h b/livesupport/modules/core/src/TimeConversionTest.h index 5fbbd29ed..db40cad7d 100644 --- a/livesupport/modules/core/src/TimeConversionTest.h +++ b/livesupport/modules/core/src/TimeConversionTest.h @@ -22,7 +22,7 @@ Author : $Author: fgerlits $ - Version : $Revision: 1.4 $ + Version : $Revision: 1.5 $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/core/src/TimeConversionTest.h,v $ ------------------------------------------------------------------------------*/ @@ -58,7 +58,7 @@ namespace Core { * Unit test for the TimeConversion class. * * @author $Author: fgerlits $ - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ * @see TimeConversion */ class TimeConversionTest : public CPPUNIT_NS::TestFixture @@ -69,6 +69,7 @@ class TimeConversionTest : public CPPUNIT_NS::TestFixture CPPUNIT_TEST(ptimeToTmTest); CPPUNIT_TEST(nowTest); CPPUNIT_TEST(sleepTest); + CPPUNIT_TEST(durationToStringTest); CPPUNIT_TEST_SUITE_END(); protected: @@ -113,6 +114,14 @@ class TimeConversionTest : public CPPUNIT_NS::TestFixture void sleepTest(void) throw (CPPUNIT_NS::Exception); + /** + * Test the timeDurationToStringMilliseconds() function. + * + * @exception CPPUNIT_NS::Exception on test failures. + */ + void + durationToStringTest(void) throw (CPPUNIT_NS::Exception); + public: