10bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch/*
22daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies)
30bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
40bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    This library is free software; you can redistribute it and/or
50bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    modify it under the terms of the GNU Library General Public
60bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    License as published by the Free Software Foundation; either
70bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    version 2 of the License, or (at your option) any later version.
80bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
90bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    This library is distributed in the hope that it will be useful,
100bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    but WITHOUT ANY WARRANTY; without even the implied warranty of
110bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    Library General Public License for more details.
130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    You should have received a copy of the GNU Library General Public License
150bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    along with this library; see the file COPYING.LIB.  If not, write to
160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    Boston, MA 02110-1301, USA.
180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch*/
190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
202daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#ifndef QtMIMETypeSniffer_h
212daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define QtMIMETypeSniffer_h
220bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
232daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#include "MIMESniffing.h"
242daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#include <QObject>
25d0825bca7fe65beaee391d30da42e937db621564Steve Block
262daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochclass QNetworkReply;
270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
282daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochclass QtMIMETypeSniffer : public QObject {
292daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    Q_OBJECT
302daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochpublic:
312daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    QtMIMETypeSniffer(QNetworkReply*, const QString& advertisedMimeType, bool isSupportedImageType);
322daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    QString mimeType() const { return m_mimeType; }
332daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    bool isFinished() const { return m_isFinished; }
340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
352daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochsignals:
362daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    void finished();
370bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
382daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochprivate slots:
392daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    void trySniffing();
40d0825bca7fe65beaee391d30da42e937db621564Steve Block
412daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochprivate:
422daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    bool sniff();
432daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
442daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    QNetworkReply* m_reply;
452daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    QString m_mimeType;
462daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    MIMESniffer m_sniffer;
472daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    bool m_isFinished;
482daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch};
492daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
502daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#endif // QtMIMETypeSniffer_h
51