#ifndef _DCTC_CONN_H #define _DCTC_CONN_H #include #include #include class QSocketNotifier; class QStringList; class QProcess; class dctc_connection : public QObject { Q_OBJECT public: dctc_connection(QObject *parent = 0, const char* name = 0); int hubconnect(const QString &hubip, const QString &hubpwd, int new_pid = 0,const QString& profile=QString::null); int connectToMaster(); void hubdisconnect(); // these two are public for debugging only! void send_command(const QString &command); QString message; signals: void dctc_data(const QString&); void hub_died(); private slots: void dataReceived(int); void data_to_send(const QString&); void hub_stderr(); private: int fork_client(const char *hubip,const QString& pwd,const QString& profile); int connect_to_running(const char *hubip, int new_pid = 0); // bool sleep_on_client(const QString& socket); void kill_client(); //! Tells us when there are things to read from the socket. QSocketNotifier *read_notifier; //! Used as a wrapper for the local unix socket communication with dctc. QSocketDevice *dctc_socket; int pid; QProcess *dctcproc; struct sockaddr_un name; int dctc_fd; }; #endif