]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/poll.h
Add move semantics to Variant
[libs/core.git] / source / io / poll.h
index ca0b0b7d88f46ccc6b82e8219e70d3bcbd74a97b..53e3808feceb4a00845e5a9ec63d0ae5918d8544 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <map>
 #include <vector>
+#include <msp/core/mspcore_api.h>
 #include <msp/core/noncopyable.h>
 #include <msp/time/timedelta.h>
 
@@ -31,22 +32,20 @@ inline PollEvent operator~(PollEvent e)
 { return PollEvent(~static_cast<int>(e)); }
 
 
-class Poller: private NonCopyable
+class MSPCORE_API Poller: private NonCopyable
 {
 public:
        struct PolledObject
        {
-               EventObject *object = 0;
-               PollEvent events = P_NONE;
-
-               PolledObject(EventObject *o, PollEvent e): object(o), events(e) { }
+               EventObject *object;
+               PollEvent events;
        };
 
 private:
        struct Private;
 
        std::vector<PolledObject> objects;
-       Private *priv = 0;
+       Private *priv = nullptr;
        bool events_changed = false;
        bool objs_changed = false;
        std::vector<PolledObject> poll_result;
@@ -66,8 +65,8 @@ public:
        const std::vector<PolledObject> &get_result() const { return poll_result; }
 };
 
-PollEvent poll(EventObject &, PollEvent);
-PollEvent poll(EventObject &, PollEvent, const Time::TimeDelta &);
+MSPCORE_API PollEvent poll(EventObject &, PollEvent);
+MSPCORE_API PollEvent poll(EventObject &, PollEvent, const Time::TimeDelta &);
 
 } // namespace IO
 } // namespace Msp