From 260a0b8bcb925a63bc54196d633614c1e818cc35 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Tue, 25 Sep 2012 00:07:14 +0900 Subject: [PATCH] Rewritten AnnounceList::getEventString() --- src/AnnounceList.cc | 18 ++++++------------ src/AnnounceList.h | 8 +------- src/DefaultBtAnnounce.cc | 4 ++-- test/AnnounceListTest.cc | 15 ++++++++++----- 4 files changed, 19 insertions(+), 26 deletions(-) diff --git a/src/AnnounceList.cc b/src/AnnounceList.cc index 5b05d033..e41b278e 100644 --- a/src/AnnounceList.cc +++ b/src/AnnounceList.cc @@ -42,12 +42,6 @@ namespace aria2 { -const std::string AnnounceList::STARTED("started"); - -const std::string AnnounceList::STOPPED("stopped"); - -const std::string AnnounceList::COMPLETED("completed"); - AnnounceList::AnnounceList():currentTrackerInitialized_(false) {} AnnounceList::AnnounceList @@ -146,21 +140,21 @@ void AnnounceList::setEvent(AnnounceTier::AnnounceEvent event) { } } -std::string AnnounceList::getEventString() const { +const char* AnnounceList::getEventString() const { if(currentTrackerInitialized_) { switch((*currentTier_)->event) { case AnnounceTier::STARTED: case AnnounceTier::STARTED_AFTER_COMPLETION: - return STARTED; + return "started"; case AnnounceTier::STOPPED: - return STOPPED; + return "stopped"; case AnnounceTier::COMPLETED: - return COMPLETED; + return "completed"; default: - return A2STR::NIL; + return ""; } } else { - return A2STR::NIL; + return ""; } } diff --git a/src/AnnounceList.h b/src/AnnounceList.h index a4e064a1..61e26c93 100644 --- a/src/AnnounceList.h +++ b/src/AnnounceList.h @@ -81,7 +81,7 @@ public: /** * Returns announce event, such as started, stopped, completed, etc. */ - std::string getEventString() const; + const char* getEventString() const; AnnounceTier::AnnounceEvent getEvent() const; @@ -130,12 +130,6 @@ public: bool currentTierAcceptsStoppedEvent() const; bool currentTierAcceptsCompletedEvent() const; - - static const std::string STARTED; - - static const std::string STOPPED; - - static const std::string COMPLETED; }; } // namespace aria2 diff --git a/src/DefaultBtAnnounce.cc b/src/DefaultBtAnnounce.cc index 1a76df15..16f197c7 100644 --- a/src/DefaultBtAnnounce.cc +++ b/src/DefaultBtAnnounce.cc @@ -172,8 +172,8 @@ std::string DefaultBtAnnounce::getAnnounceUrl() { if(tcpPort_) { uri += fmt("&port=%u", tcpPort_); } - std::string event = announceList_.getEventString(); - if(!event.empty()) { + const char* event = announceList_.getEventString(); + if(event[0]) { uri += "&event="; uri += event; } diff --git a/test/AnnounceListTest.cc b/test/AnnounceListTest.cc index 5105ff3c..4d6af9ee 100644 --- a/test/AnnounceListTest.cc +++ b/test/AnnounceListTest.cc @@ -185,13 +185,15 @@ void AnnounceListTest::testNextEventIfAfterStarted() { announceList.setEvent(AnnounceTier::STOPPED); announceList.announceFailure(); announceList.resetTier(); - CPPUNIT_ASSERT_EQUAL(std::string(""), announceList.getEventString()); + CPPUNIT_ASSERT_EQUAL(std::string(""), + std::string(announceList.getEventString())); CPPUNIT_ASSERT_EQUAL(AnnounceTier::HALTED, announceList.getEvent()); announceList.setEvent(AnnounceTier::COMPLETED); announceList.announceFailure(); announceList.resetTier(); - CPPUNIT_ASSERT_EQUAL(std::string(""), announceList.getEventString()); + CPPUNIT_ASSERT_EQUAL(std::string(""), + std::string(announceList.getEventString())); CPPUNIT_ASSERT_EQUAL(AnnounceTier::SEEDING, announceList.getEvent()); } @@ -205,16 +207,19 @@ void AnnounceListTest::testEvent() { announceList.setEvent(AnnounceTier::STOPPED); announceList.announceSuccess(); - CPPUNIT_ASSERT_EQUAL(std::string(""), announceList.getEventString()); + CPPUNIT_ASSERT_EQUAL(std::string(""), + std::string(announceList.getEventString())); CPPUNIT_ASSERT_EQUAL(AnnounceTier::HALTED, announceList.getEvent()); announceList.setEvent(AnnounceTier::COMPLETED); announceList.announceSuccess(); - CPPUNIT_ASSERT_EQUAL(std::string(""), announceList.getEventString()); + CPPUNIT_ASSERT_EQUAL(std::string(""), + std::string(announceList.getEventString())); CPPUNIT_ASSERT_EQUAL(AnnounceTier::SEEDING, announceList.getEvent()); announceList.setEvent(AnnounceTier::STARTED_AFTER_COMPLETION); - CPPUNIT_ASSERT_EQUAL(std::string("started"), announceList.getEventString()); + CPPUNIT_ASSERT_EQUAL(std::string("started"), + std::string(announceList.getEventString())); announceList.announceSuccess(); CPPUNIT_ASSERT_EQUAL(AnnounceTier::SEEDING, announceList.getEvent()); }