Multiple simultaneous request support to Communication
[qtmeetings] / src / IO / Communication / Communication.h
index 9fd8523..41dedb5 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <QObject>
 #include <QHttp>
+#include <QHash>
 
 class QByteArray;
 class ConnectionSettings;
@@ -11,8 +12,6 @@ class ConnectionSettings;
 /*!
  *  This class uses the QHttp class to make HTTP requests. HTTP responses are
  *  returned as QByteArray.
- * 
- *  NOTE! Currently this class does NOT support multiple simultaneuos requests.
  */
 class Communication : public QObject
 {
@@ -29,11 +28,9 @@ public:
        virtual ~Communication();
        //! Returns the response of a request identified by aRequestId.
        /*! 
-        *  NOTE! Currently the last request response is returned as the multiple
-        *  request support is not implemented.
         *  \param aRequestId Request id number.
        */
-       const QByteArray& response( int aRequestId );
+       QByteArray* response( int aRequestId );
 
        //! Makes a HTTP request to the server defined in the constructor.
        /*! 
@@ -61,7 +58,7 @@ signals:
        *   \param aRequestId Request id number.
        *   \param aError Error code of the request finished.
        */
-       void requestFinished( int aRequestId, QHttp::Error aError );
+       void requestFinished( int aRequestId, int aError );
 
 protected slots:
        //! Connected to QHttp::readyRead to read the response buffer.
@@ -85,9 +82,9 @@ private:
        */
        QHttp* iHttp;
        /*!
-        * Response buffer
+        * QHash of requests and response buffers
        */
-       QByteArray* iResponse;
+       QHash<int, QByteArray*> iResponses;
        /*!
         * ID number of a request currently ongoing
        */