Rewritten AnnounceList::getEventString()

pull/28/head
Tatsuhiro Tsujikawa 2012-09-25 00:07:14 +09:00
parent b640b830a2
commit 260a0b8bcb
4 changed files with 19 additions and 26 deletions

View File

@ -42,12 +42,6 @@
namespace aria2 { 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():currentTrackerInitialized_(false) {}
AnnounceList::AnnounceList AnnounceList::AnnounceList
@ -146,21 +140,21 @@ void AnnounceList::setEvent(AnnounceTier::AnnounceEvent event) {
} }
} }
std::string AnnounceList::getEventString() const { const char* AnnounceList::getEventString() const {
if(currentTrackerInitialized_) { if(currentTrackerInitialized_) {
switch((*currentTier_)->event) { switch((*currentTier_)->event) {
case AnnounceTier::STARTED: case AnnounceTier::STARTED:
case AnnounceTier::STARTED_AFTER_COMPLETION: case AnnounceTier::STARTED_AFTER_COMPLETION:
return STARTED; return "started";
case AnnounceTier::STOPPED: case AnnounceTier::STOPPED:
return STOPPED; return "stopped";
case AnnounceTier::COMPLETED: case AnnounceTier::COMPLETED:
return COMPLETED; return "completed";
default: default:
return A2STR::NIL; return "";
} }
} else { } else {
return A2STR::NIL; return "";
} }
} }

View File

@ -81,7 +81,7 @@ public:
/** /**
* Returns announce event, such as started, stopped, completed, etc. * Returns announce event, such as started, stopped, completed, etc.
*/ */
std::string getEventString() const; const char* getEventString() const;
AnnounceTier::AnnounceEvent getEvent() const; AnnounceTier::AnnounceEvent getEvent() const;
@ -130,12 +130,6 @@ public:
bool currentTierAcceptsStoppedEvent() const; bool currentTierAcceptsStoppedEvent() const;
bool currentTierAcceptsCompletedEvent() const; bool currentTierAcceptsCompletedEvent() const;
static const std::string STARTED;
static const std::string STOPPED;
static const std::string COMPLETED;
}; };
} // namespace aria2 } // namespace aria2

View File

@ -172,8 +172,8 @@ std::string DefaultBtAnnounce::getAnnounceUrl() {
if(tcpPort_) { if(tcpPort_) {
uri += fmt("&port=%u", tcpPort_); uri += fmt("&port=%u", tcpPort_);
} }
std::string event = announceList_.getEventString(); const char* event = announceList_.getEventString();
if(!event.empty()) { if(event[0]) {
uri += "&event="; uri += "&event=";
uri += event; uri += event;
} }

View File

@ -185,13 +185,15 @@ void AnnounceListTest::testNextEventIfAfterStarted() {
announceList.setEvent(AnnounceTier::STOPPED); announceList.setEvent(AnnounceTier::STOPPED);
announceList.announceFailure(); announceList.announceFailure();
announceList.resetTier(); 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()); CPPUNIT_ASSERT_EQUAL(AnnounceTier::HALTED, announceList.getEvent());
announceList.setEvent(AnnounceTier::COMPLETED); announceList.setEvent(AnnounceTier::COMPLETED);
announceList.announceFailure(); announceList.announceFailure();
announceList.resetTier(); 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()); CPPUNIT_ASSERT_EQUAL(AnnounceTier::SEEDING, announceList.getEvent());
} }
@ -205,16 +207,19 @@ void AnnounceListTest::testEvent() {
announceList.setEvent(AnnounceTier::STOPPED); announceList.setEvent(AnnounceTier::STOPPED);
announceList.announceSuccess(); 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()); CPPUNIT_ASSERT_EQUAL(AnnounceTier::HALTED, announceList.getEvent());
announceList.setEvent(AnnounceTier::COMPLETED); announceList.setEvent(AnnounceTier::COMPLETED);
announceList.announceSuccess(); 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()); CPPUNIT_ASSERT_EQUAL(AnnounceTier::SEEDING, announceList.getEvent());
announceList.setEvent(AnnounceTier::STARTED_AFTER_COMPLETION); 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(); announceList.announceSuccess();
CPPUNIT_ASSERT_EQUAL(AnnounceTier::SEEDING, announceList.getEvent()); CPPUNIT_ASSERT_EQUAL(AnnounceTier::SEEDING, announceList.getEvent());
} }