summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Kolny <marcin.kolny@gmail.com>2016-12-06 16:40:44 +0100
committerKjell Ahlstedt <kjell.ahlstedt@bredband.net>2016-12-06 16:40:44 +0100
commiteb7b40400f95169dc4b8016a1c615df90c062764 (patch)
tree685878f3da6a5395cf90b19be23975859e2bb450
parentd931a93588259f550954e6aa11253fc3960089c4 (diff)
downloadglibmm-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.cc10
-rw-r--r--glib/glibmm/main.h16
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.