summaryrefslogtreecommitdiff
path: root/src/Event.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Event.h')
-rw-r--r--src/Event.h166
1 files changed, 77 insertions, 89 deletions
diff --git a/src/Event.h b/src/Event.h
index 1d9d24ee..1cce3b98 100644
--- a/src/Event.h
+++ b/src/Event.h
@@ -45,13 +45,12 @@
#include "a2netcompat.h"
#include "Command.h"
#ifdef ENABLE_ASYNC_DNS
-# include "AsyncNameResolver.h"
+#include "AsyncNameResolver.h"
#endif // ENABLE_ASYNC_DNS
namespace aria2 {
-template<typename SocketEntry>
-class Event {
+template <typename SocketEntry> class Event {
public:
virtual ~Event() {}
@@ -64,61 +63,49 @@ public:
virtual void removeSelf(SocketEntry* socketEntry) const = 0;
};
-template<typename SocketEntry, typename EventPoll>
+template <typename SocketEntry, typename EventPoll>
class CommandEvent : public Event<SocketEntry> {
private:
Command* command_;
int events_;
-public:
- CommandEvent(Command* command, int events):
- command_(command), events_(events) {}
- Command* getCommand() const
+public:
+ CommandEvent(Command* command, int events)
+ : command_(command), events_(events)
{
- return command_;
}
- void addEvents(int events)
- {
- events_ |= events;
- }
+ Command* getCommand() const { return command_; }
- void removeEvents(int events)
- {
- events_ &= (~events);
- }
+ void addEvents(int events) { events_ |= events; }
- bool eventsEmpty() const
- {
- return events_ == 0;
- }
+ void removeEvents(int events) { events_ &= (~events); }
+
+ bool eventsEmpty() const { return events_ == 0; }
bool operator==(const CommandEvent& commandEvent) const
{
return command_ == commandEvent.command_;
}
- virtual int getEvents() const
- {
- return events_;
- }
+ virtual int getEvents() const { return events_; }
virtual void processEvents(int events)
{
- if((events_&events) ||
- ((EventPoll::IEV_ERROR|EventPoll::IEV_HUP)&events)) {
+ if ((events_ & events) ||
+ ((EventPoll::IEV_ERROR | EventPoll::IEV_HUP) & events)) {
command_->setStatusActive();
}
- if(EventPoll::IEV_READ&events) {
+ if (EventPoll::IEV_READ & events) {
command_->readEventReceived();
}
- if(EventPoll::IEV_WRITE&events) {
+ if (EventPoll::IEV_WRITE & events) {
command_->writeEventReceived();
}
- if(EventPoll::IEV_ERROR&events) {
+ if (EventPoll::IEV_ERROR & events) {
command_->errorEventReceived();
}
- if(EventPoll::IEV_HUP&events) {
+ if (EventPoll::IEV_HUP & events) {
command_->hupEventReceived();
}
}
@@ -136,42 +123,44 @@ public:
#ifdef ENABLE_ASYNC_DNS
-template<typename SocketEntry, typename EventPoll>
+template <typename SocketEntry, typename EventPoll>
class ADNSEvent : public Event<SocketEntry> {
private:
std::shared_ptr<AsyncNameResolver> resolver_;
Command* command_;
sock_t socket_;
int events_;
+
public:
- ADNSEvent(const std::shared_ptr<AsyncNameResolver>& resolver, Command* command,
- sock_t socket, int events):
- resolver_(resolver), command_(command), socket_(socket), events_(events) {}
+ ADNSEvent(const std::shared_ptr<AsyncNameResolver>& resolver,
+ Command* command, sock_t socket, int events)
+ : resolver_(resolver), command_(command), socket_(socket), events_(events)
+ {
+ }
bool operator==(const ADNSEvent& event) const
{
return *resolver_ == *event.resolver_;
}
- virtual int getEvents() const
- {
- return events_;
- }
+ virtual int getEvents() const { return events_; }
virtual void processEvents(int events)
{
ares_socket_t readfd;
ares_socket_t writefd;
- if(events&(EventPoll::IEV_READ|EventPoll::IEV_ERROR|
- EventPoll::IEV_HUP)) {
+ if (events &
+ (EventPoll::IEV_READ | EventPoll::IEV_ERROR | EventPoll::IEV_HUP)) {
readfd = socket_;
- } else {
+ }
+ else {
readfd = ARES_SOCKET_BAD;
}
- if(events&(EventPoll::IEV_WRITE|EventPoll::IEV_ERROR|
- EventPoll::IEV_HUP)) {
+ if (events &
+ (EventPoll::IEV_WRITE | EventPoll::IEV_ERROR | EventPoll::IEV_HUP)) {
writefd = socket_;
- } else {
+ }
+ else {
writefd = ARES_SOCKET_BAD;
}
resolver_->process(readfd, writefd);
@@ -188,13 +177,13 @@ public:
socketEntry->removeADNSEvent(*this);
}
};
-#else // !ENABLE_ASYNC_DNS
-template<typename SocketEntry, typename EventPoll>
-class ADNSEvent : public Event<SocketEntry> {};
+#else // !ENABLE_ASYNC_DNS
+template <typename SocketEntry, typename EventPoll>
+class ADNSEvent : public Event<SocketEntry> {
+};
#endif // !ENABLE_ASYNC_DNS
-template<typename CommandEvent, typename ADNSEvent>
-class SocketEntry {
+template <typename CommandEvent, typename ADNSEvent> class SocketEntry {
protected:
sock_t socket_;
@@ -206,7 +195,7 @@ protected:
#endif // ENABLE_ASYNC_DNS
public:
- SocketEntry(sock_t socket):socket_(socket) {}
+ SocketEntry(sock_t socket) : socket_(socket) {}
SocketEntry(const SocketEntry&) = delete;
SocketEntry(SocketEntry&&) = default;
@@ -224,10 +213,11 @@ public:
void addCommandEvent(const CommandEvent& cev)
{
typename std::deque<CommandEvent>::iterator i =
- std::find(commandEvents_.begin(), commandEvents_.end(), cev);
- if(i == commandEvents_.end()) {
+ std::find(commandEvents_.begin(), commandEvents_.end(), cev);
+ if (i == commandEvents_.end()) {
commandEvents_.push_back(cev);
- } else {
+ }
+ else {
(*i).addEvents(cev.getEvents());
}
}
@@ -235,12 +225,13 @@ public:
void removeCommandEvent(const CommandEvent& cev)
{
typename std::deque<CommandEvent>::iterator i =
- std::find(commandEvents_.begin(), commandEvents_.end(), cev);
- if(i == commandEvents_.end()) {
+ std::find(commandEvents_.begin(), commandEvents_.end(), cev);
+ if (i == commandEvents_.end()) {
// not found
- } else {
+ }
+ else {
(*i).removeEvents(cev.getEvents());
- if((*i).eventsEmpty()) {
+ if ((*i).eventsEmpty()) {
commandEvents_.erase(i);
}
}
@@ -251,8 +242,8 @@ public:
void addADNSEvent(const ADNSEvent& aev)
{
typename std::deque<ADNSEvent>::iterator i =
- std::find(adnsEvents_.begin(), adnsEvents_.end(), aev);
- if(i == adnsEvents_.end()) {
+ std::find(adnsEvents_.begin(), adnsEvents_.end(), aev);
+ if (i == adnsEvents_.end()) {
adnsEvents_.push_back(aev);
}
}
@@ -260,30 +251,25 @@ public:
void removeADNSEvent(const ADNSEvent& aev)
{
typename std::deque<ADNSEvent>::iterator i =
- std::find(adnsEvents_.begin(), adnsEvents_.end(), aev);
- if(i == adnsEvents_.end()) {
+ std::find(adnsEvents_.begin(), adnsEvents_.end(), aev);
+ if (i == adnsEvents_.end()) {
// not found
- } else {
+ }
+ else {
adnsEvents_.erase(i);
}
}
#endif // ENABLE_ASYNC_DNS
- sock_t getSocket() const
- {
- return socket_;
- }
+ sock_t getSocket() const { return socket_; }
- void setSocket(sock_t socket)
- {
- socket_ = socket;
- }
+ void setSocket(sock_t socket) { socket_ = socket; }
bool eventEmpty() const
{
#ifdef ENABLE_ASYNC_DNS
return commandEvents_.empty() && adnsEvents_.empty();
-#else // !ENABLE_ASYNC_DNS
+#else // !ENABLE_ASYNC_DNS
return commandEvents_.empty();
#endif // !ENABLE_ASYNC_DNS)
}
@@ -302,8 +288,7 @@ public:
#ifdef ENABLE_ASYNC_DNS
-template<typename EventPoll>
-class AsyncNameResolverEntry {
+template <typename EventPoll> class AsyncNameResolverEntry {
private:
std::shared_ptr<AsyncNameResolver> nameResolver_;
@@ -315,42 +300,45 @@ private:
public:
AsyncNameResolverEntry(std::shared_ptr<AsyncNameResolver> nameResolver,
- Command* command):
- nameResolver_(std::move(nameResolver)), command_(command), socketsSize_(0) {}
+ Command* command)
+ : nameResolver_(std::move(nameResolver)),
+ command_(command),
+ socketsSize_(0)
+ {
+ }
AsyncNameResolverEntry(const AsyncNameResolverEntry&) = delete;
AsyncNameResolverEntry(AsyncNameResolverEntry&&) = default;
bool operator==(const AsyncNameResolverEntry& entry)
{
- return *nameResolver_ == *entry.nameResolver_ &&
- command_ == entry.command_;
+ return *nameResolver_ == *entry.nameResolver_ && command_ == entry.command_;
}
bool operator<(const AsyncNameResolverEntry& entry)
{
return nameResolver_.get() < entry.nameResolver_.get() ||
- (nameResolver_.get() == entry.nameResolver_.get() &&
- command_ < entry.command_);
+ (nameResolver_.get() == entry.nameResolver_.get() &&
+ command_ < entry.command_);
}
void addSocketEvents(EventPoll* e)
{
socketsSize_ = 0;
int mask = nameResolver_->getsock(sockets_);
- if(mask == 0) {
+ if (mask == 0) {
return;
}
size_t i;
- for(i = 0; i < ARES_GETSOCK_MAXNUM; ++i) {
+ for (i = 0; i < ARES_GETSOCK_MAXNUM; ++i) {
int events = 0;
- if(ARES_GETSOCK_READABLE(mask, i)) {
+ if (ARES_GETSOCK_READABLE(mask, i)) {
events |= EventPoll::IEV_READ;
}
- if(ARES_GETSOCK_WRITABLE(mask, i)) {
+ if (ARES_GETSOCK_WRITABLE(mask, i)) {
events |= EventPoll::IEV_WRITE;
}
- if(events == 0) {
+ if (events == 0) {
// assume no further sockets are returned.
break;
}
@@ -361,7 +349,7 @@ public:
void removeSocketEvents(EventPoll* e)
{
- for(size_t i = 0; i < socketsSize_; ++i) {
+ for (size_t i = 0; i < socketsSize_; ++i) {
e->deleteEvents(sockets_[i], command_, nameResolver_);
}
}
@@ -373,9 +361,9 @@ public:
nameResolver_->process(ARES_SOCKET_BAD, ARES_SOCKET_BAD);
}
};
-#else // !ENABLE_ASYNC_DNS
-template<typename EventPoll>
-class AsyncNameResolverEntry {};
+#else // !ENABLE_ASYNC_DNS
+template <typename EventPoll> class AsyncNameResolverEntry {
+};
#endif // !ENABLE_ASYNC_DNS
} // namespace aria2