diff options
Diffstat (limited to 'src/PollEventPoll.h')
| -rw-r--r-- | src/PollEventPoll.h | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/PollEventPoll.h b/src/PollEventPoll.h index 0b88baef..bd754712 100644 --- a/src/PollEventPoll.h +++ b/src/PollEventPoll.h @@ -39,7 +39,7 @@ # include <poll.h> -#include <set> +#include <map> #include "Event.h" #include "a2functional.h" @@ -64,19 +64,20 @@ private: public: KSocketEntry(sock_t socket); + KSocketEntry(const KSocketEntry&) = delete; + KSocketEntry(KSocketEntry&&) = default; + struct pollfd getEvents(); }; friend int accumulateEvent(int events, const KEvent& event); private: - typedef std::set<std::shared_ptr<KSocketEntry>, - DerefLess<std::shared_ptr<KSocketEntry> > > KSocketEntrySet; + typedef std::map<sock_t, KSocketEntry> KSocketEntrySet; KSocketEntrySet socketEntries_; #ifdef ENABLE_ASYNC_DNS - typedef std::set<std::shared_ptr<KAsyncNameResolverEntry>, - DerefLess<std::shared_ptr<KAsyncNameResolverEntry> > > - KAsyncNameResolverEntrySet; + typedef std::map<std::pair<AsyncNameResolver*, Command*>, + KAsyncNameResolverEntry> KAsyncNameResolverEntrySet; KAsyncNameResolverEntrySet nameResolverEntries_; #endif // ENABLE_ASYNC_DNS @@ -86,7 +87,7 @@ private: // The number of valid struct pollfd in pollfds_. int pollfdNum_; - struct pollfd* pollfds_; + std::unique_ptr<struct pollfd[]> pollfds_; bool addEvents(sock_t socket, const KEvent& event); |
