1*4882a593Smuzhiyun #ifndef IWATCHDOG_H 2*4882a593Smuzhiyun #define IWATCHDOG_H 3*4882a593Smuzhiyun #include <QObject> 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun class QTimer; 6*4882a593Smuzhiyun class IWatchDog : public QObject 7*4882a593Smuzhiyun { 8*4882a593Smuzhiyun Q_OBJECT 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun public: 11*4882a593Smuzhiyun IWatchDog(const QString &name, QObject *parent = Q_NULLPTR); 12*4882a593Smuzhiyun ~IWatchDog(); 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun bool open(int timeoutSeconds, float feedSeconds); 15*4882a593Smuzhiyun bool close(); 16*4882a593Smuzhiyun bool isOpen(); 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun void setFeed(bool bFeed=true); 19*4882a593Smuzhiyun void setFeedTime(float seconds); 20*4882a593Smuzhiyun void setTimeoutTime(int seconds); 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun Q_SIGNALS: 23*4882a593Smuzhiyun void feedCount(int count); 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun public slots: 26*4882a593Smuzhiyun void feedDog(); 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun private: 29*4882a593Smuzhiyun void checkoutTime(); 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun protected: 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun QString m_dogName; 34*4882a593Smuzhiyun int m_type; 35*4882a593Smuzhiyun int m_fd; 36*4882a593Smuzhiyun bool m_feed; 37*4882a593Smuzhiyun int m_timeoutTimes; 38*4882a593Smuzhiyun float m_feedTimes; 39*4882a593Smuzhiyun int m_feedCount; 40*4882a593Smuzhiyun QTimer *m_timer; 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun #endif // IWATCHDOG_H 44