#ifndef OPIE_OCOP_CLIENT_H #define OPIE_OCOP_CLIENT_H #include #include #include #include #include #include /** * This is the OCOP client * It currently only supports * asking if a Channel is registered, * calling and receiving calls */ class OCOPPacket; class OCOPClient : public QObject{ Q_OBJECT public: /* * this is the static * OCopClient */ static OCOPClient* self(); /** * Occasionally I decide to start a Server from here */ OCOPClient(const QString& pathToServer = QString::null, QObject* obj = 0l); ~OCOPClient(); bool isRegistered( const QCString& )const; void send( const QCString& chan, const QCString&, const QByteArray& msg ); /** * add a channel and does connect to a signal * callback is the object * slot is the SLOT() */ void addChannel( const QCString& channel ); void delChannel( const QCString& channel ); /* make it singleton? */ //static OCOPClient* self(); /* no direct signals due the design */ signals: void called(const QCString&, const QCString&, const QByteArray& ); private slots: void init(); void init(const QCString& pa); void newData(); private: void startUP(); OCOPPacket packet()const; void call( const OCOPPacket& ); QSocketNotifier* m_notify; int m_socket; int m_tries; static OCOPClient* m_self; }; #endif