00001 // -------------------------------------------------------------------------- 00002 // OpenMS -- Open-Source Mass Spectrometry 00003 // -------------------------------------------------------------------------- 00004 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen, 00005 // ETH Zurich, and Freie Universitaet Berlin 2002-2012. 00006 // 00007 // This software is released under a three-clause BSD license: 00008 // * Redistributions of source code must retain the above copyright 00009 // notice, this list of conditions and the following disclaimer. 00010 // * Redistributions in binary form must reproduce the above copyright 00011 // notice, this list of conditions and the following disclaimer in the 00012 // documentation and/or other materials provided with the distribution. 00013 // * Neither the name of any author or any participating institution 00014 // may be used to endorse or promote products derived from this software 00015 // without specific prior written permission. 00016 // For a full list of authors, refer to the file AUTHORS. 00017 // -------------------------------------------------------------------------- 00018 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00019 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00020 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00021 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING 00022 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00023 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00024 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 00025 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00026 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 00027 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 00028 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00029 // 00030 // -------------------------------------------------------------------------- 00031 // $Maintainer: Chris Bielow $ 00032 // $Authors: Andreas Bertsch, Daniel Jameson, Chris Bielow$ 00033 // -------------------------------------------------------------------------- 00034 00035 #ifndef OPENMS_FORMAT_MASCOTREMOTEQUERY_H 00036 #define OPENMS_FORMAT_MASCOTREMOTEQUERY_H 00037 00038 #include <OpenMS/DATASTRUCTURES/DefaultParamHandler.h> 00039 #include <QtCore/QObject> 00040 #include <QtCore/QString> 00041 #include <QtCore/QFile> 00042 #include <QtNetwork/QHttpRequestHeader> 00043 #include <QTimer> 00044 00045 00046 namespace OpenMS 00047 { 00057 class MascotRemoteQuery : 00058 public QObject, 00059 public DefaultParamHandler 00060 { 00061 Q_OBJECT 00062 00063 public: 00064 00068 00069 OPENMS_DLLAPI MascotRemoteQuery(QObject * parent = 0); 00070 00072 OPENMS_DLLAPI virtual ~MascotRemoteQuery(); 00074 00075 00077 OPENMS_DLLAPI void setQuerySpectra(const String & exp); 00078 00080 OPENMS_DLLAPI const QByteArray & getMascotXMLResponse() const; 00081 00083 OPENMS_DLLAPI bool hasError() const; 00084 00086 OPENMS_DLLAPI const String & getErrorMessage() const; 00087 00088 protected: 00089 00090 OPENMS_DLLAPI virtual void updateMembers_(); 00091 00092 public slots: 00093 00094 OPENMS_DLLAPI void run(); 00095 00096 private slots: 00097 00098 OPENMS_DLLAPI void timedOut(); 00099 00100 OPENMS_DLLAPI void readyReadSlot(const QHttpResponseHeader & resp); 00101 00106 OPENMS_DLLAPI void httpRequestFinished(int request_id, bool error); 00107 00109 OPENMS_DLLAPI void httpDataReadProgress(int bytes_read, int bytes_total); 00110 00112 OPENMS_DLLAPI void httpDataSendProgress(int bytes_sent, int bytes_total); 00113 00115 OPENMS_DLLAPI void httpRequestStarted(int request_id); 00116 00121 OPENMS_DLLAPI void httpStateChanged(int state); 00122 00124 OPENMS_DLLAPI void httpDone(bool error); 00125 00127 OPENMS_DLLAPI void readResponseHeader(const QHttpResponseHeader & response_header); 00128 00129 OPENMS_DLLAPI void login(); 00130 00131 OPENMS_DLLAPI void execQuery(); 00132 00133 OPENMS_DLLAPI void getResults(); 00134 00135 OPENMS_DLLAPI void loginSuccess(); 00136 00137 signals: 00138 00139 OPENMS_DLLAPI void done(); 00140 00141 OPENMS_DLLAPI void loginDone(); 00142 00143 OPENMS_DLLAPI void queryDone(); 00144 00145 private: 00147 OPENMS_DLLAPI MascotRemoteQuery & operator=(const MascotRemoteQuery & rhs); 00149 OPENMS_DLLAPI MascotRemoteQuery(const MascotRemoteQuery & rhs); 00150 00151 OPENMS_DLLAPI void endRun_(); 00152 00153 String query_spectra_; 00154 QByteArray mascot_xml_; 00155 QHttp * http_; 00156 QString results_path_; 00157 QString cookie_; 00158 String error_message_; 00159 QTimer timeout_; 00160 Int to_; 00161 }; 00162 00163 } 00164 #endif /*OPENMS_FORMAT_MASCOTREMOTEQUERY_H*/
| OpenMS / TOPP release 1.10.0 | Documentation generated on Thu Mar 7 2013 09:42:41 using doxygen 1.7.1 |