summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Kolny <marcin.kolny@gmail.com>2016-12-12 09:25:26 +0100
committerKjell Ahlstedt <kjell.ahlstedt@bredband.net>2016-12-12 09:25:26 +0100
commit30abb2180219bc328cb522b6aaf97a9cf79fe1a1 (patch)
tree64c16add404fc71436c1b173b38d48081408a41e
parent793bf2867525a6ea1e12ef5f0823d3db07736b08 (diff)
downloadglibmm-30abb2180219bc328cb522b6aaf97a9cf79fe1a1.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 d726ebaa..93ba40e0 100644
--- a/glib/glibmm/main.cc
+++ b/glib/glibmm/main.cc
@@ -357,14 +357,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;
@@ -490,7 +490,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);
@@ -1295,7 +1295,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));
}
@@ -1312,7 +1312,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 f60cc8f0..c6dc839f 100644
--- a/glib/glibmm/main.h
+++ b/glib/glibmm/main.h
@@ -49,12 +49,14 @@ class Mutex;
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); }
@@ -305,7 +307,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.
@@ -887,13 +889,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.