diff options
author | Marcin Kolny <marcin.kolny@gmail.com> | 2016-12-06 16:40:44 +0100 |
---|---|---|
committer | Kjell Ahlstedt <kjell.ahlstedt@bredband.net> | 2016-12-06 16:40:44 +0100 |
commit | eb7b40400f95169dc4b8016a1c615df90c062764 (patch) | |
tree | 685878f3da6a5395cf90b19be23975859e2bb450 | |
parent | d931a93588259f550954e6aa11253fc3960089c4 (diff) | |
download | glibmm-eb7b40400f95169dc4b8016a1c615df90c062764.tar.gz |
PollFD: autodeduce type of fd field
* glib/glibmm/main.[h|cc]: file descriptor to poll can be either of gint,
or gint64 type, depending on the platform. glibmm should follow this
rule as well.
https://bugzilla.gnome.org/show_bug.cgi?id=772074
-rw-r--r-- | glib/glibmm/main.cc | 10 | ||||
-rw-r--r-- | glib/glibmm/main.h | 16 |
2 files changed, 14 insertions, 12 deletions
diff --git a/glib/glibmm/main.cc b/glib/glibmm/main.cc index f2436054..1f19f46e 100644 --- a/glib/glibmm/main.cc +++ b/glib/glibmm/main.cc @@ -324,14 +324,14 @@ PollFD::PollFD() gobject_.revents = 0; } -PollFD::PollFD(int fd) +PollFD::PollFD(PollFD::fd_t fd) { gobject_.fd = fd; gobject_.events = 0; gobject_.revents = 0; } -PollFD::PollFD(int fd, IOCondition events) +PollFD::PollFD(PollFD::fd_t fd, IOCondition events) { gobject_.fd = fd; gobject_.events = events; @@ -460,7 +460,7 @@ inline SignalIO::SignalIO(GMainContext* context) : context_(context) sigc::connection SignalIO::connect( - const sigc::slot<bool(IOCondition)>& slot, int fd, IOCondition condition, int priority) + const sigc::slot<bool(IOCondition)>& slot, PollFD::fd_t fd, IOCondition condition, int priority) { const auto source = IOSource::create(fd, condition); @@ -1220,7 +1220,7 @@ IdleSource::dispatch(sigc::slot_base* slot) // static Glib::RefPtr<IOSource> -IOSource::create(int fd, IOCondition condition) +IOSource::create(PollFD::fd_t fd, IOCondition condition) { return Glib::RefPtr<IOSource>(new IOSource(fd, condition)); } @@ -1237,7 +1237,7 @@ IOSource::connect(const sigc::slot<bool(IOCondition)>& slot) return connect_generic(slot); } -IOSource::IOSource(int fd, IOCondition condition) : poll_fd_(fd, condition) +IOSource::IOSource(PollFD::fd_t fd, IOCondition condition) : poll_fd_(fd, condition) { add_poll(poll_fd_); } diff --git a/glib/glibmm/main.h b/glib/glibmm/main.h index ca884d00..63b1ef1b 100644 --- a/glib/glibmm/main.h +++ b/glib/glibmm/main.h @@ -39,12 +39,14 @@ namespace Glib class PollFD { public: + using fd_t = decltype(GPollFD::fd); + PollFD(); - explicit PollFD(int fd); - PollFD(int fd, IOCondition events); + explicit PollFD(fd_t fd); + PollFD(fd_t fd, IOCondition events); - void set_fd(int fd) { gobject_.fd = fd; } - int get_fd() const { return gobject_.fd; } + void set_fd(fd_t fd) { gobject_.fd = fd; } + fd_t get_fd() const { return gobject_.fd; } void set_events(IOCondition events) { gobject_.events = events; } IOCondition get_events() const { return static_cast<IOCondition>(gobject_.events); } @@ -285,7 +287,7 @@ public: * @param priority The priority of the new event source. * @return A connection handle, which can be used to disconnect the handler. */ - sigc::connection connect(const sigc::slot<bool(IOCondition)>& slot, int fd, IOCondition condition, + sigc::connection connect(const sigc::slot<bool(IOCondition)>& slot, PollFD::fd_t fd, IOCondition condition, int priority = PRIORITY_DEFAULT); /** Connects an I/O handler that watches an I/O channel. @@ -845,13 +847,13 @@ class IOSource : public Glib::Source public: using CppObjectType = Glib::IOSource; - static Glib::RefPtr<IOSource> create(int fd, IOCondition condition); + static Glib::RefPtr<IOSource> create(PollFD::fd_t fd, IOCondition condition); static Glib::RefPtr<IOSource> create( const Glib::RefPtr<IOChannel>& channel, IOCondition condition); sigc::connection connect(const sigc::slot<bool(IOCondition)>& slot); protected: - IOSource(int fd, IOCondition condition); + IOSource(PollFD::fd_t fd, IOCondition condition); IOSource(const Glib::RefPtr<IOChannel>& channel, IOCondition condition); /** Wrap an existing GSource object and install the given callback function. |