#ifndef MYX_QT_POSIX_SIGNAL_WATCHER_P_HPP_ #define MYX_QT_POSIX_SIGNAL_WATCHER_P_HPP_ #include #include #include #include #include #include #include #ifdef Q_OS_WIN #define MYX_QT_HAS_POSIX_SIGNALS 0 #else #define MYX_QT_HAS_POSIX_SIGNALS 1 #endif #if MYX_QT_HAS_POSIX_SIGNALS #include #include #include #include #endif namespace myx { namespace qt { /*! * \brief The PosixSignalWatcherPrivate class implements the back-end signal * handling for the PosixSignalWatcher. * * \see http://qt-project.org/doc/qt-5.0/qtdoc/POSIX-signals.html */ class PosixSignalWatcherPrivate : public QObject { Q_OBJECT public: PosixSignalWatcherPrivate( PosixSignalWatcher* q ); ~PosixSignalWatcherPrivate(); void watchForSignal( int signal ); static void signalHandler( int signal ); private: PosixSignalWatcher* const q_ptr = nullptr; Q_DECLARE_PUBLIC( PosixSignalWatcher ) static int m_sockpair[2]; std::unique_ptr< QSocketNotifier > m_notifier; QList< int > m_watchedSignals; }; // class PosixSignalWatcherPrivate } // namespace qt } // namespace myx #endif // ifndef MYX_QT_POSIX_SIGNAL_WATCHER_P_HPP_