Miam-Player  0.8.0
A nice music player
requestpool.h
Go to the documentation of this file.
1 #ifndef REQUESTPOOL_H
2 #define REQUESTPOOL_H
3 
4 #include <QObject>
5 #include <QNetworkAccessManager>
6 #include <QNetworkReply>
7 #include <QUrlQuery>
8 
10 #include "mbrelease.h"
11 
17 class MIAMACOUSTID_LIBRARY RequestPool : public QObject
18 {
19  Q_OBJECT
20 private:
21  static int _maxRequestPerSecond;
22  static int _nbRequestsToAcoustIdServer;
23 
24  QNetworkAccessManager _nam;
25  //QTimer *_timer;
26  QMap<QString, QNetworkReply*> _map;
27 
31  class Quadruplet
32  {
33  public:
34  QString track;
35  QNetworkRequest request;
36  QUrlQuery urlQuery;
37  int trackDuration;
38 
39  Quadruplet(const QString &tr, QNetworkRequest r, QUrlQuery u, int t) : track(tr), request(r), urlQuery(u), trackDuration(t) {}
40  };
41 
42  QList<Quadruplet> _pool;
43 
44 public:
45  RequestPool(QObject *parent);
46 
47  void add(const QString &track, const QNetworkRequest &request, const QUrlQuery &urlQuery, int trackDuration);
48 
49 private slots:
50  void dispatchReply(QNetworkReply *reply);
51 
52 signals:
53  void releaseFound(const MusicBrainz::Release &);
54  void tracksAnalyzed();
55 };
56 
57 #endif // REQUESTPOOL_H
The RequestPool class is used to limite rate to webservice.
Definition: requestpool.h:17
#define MIAMACOUSTID_LIBRARY
Definition: miamacoustid_global.hpp:8
The Release class.
Definition: mbrelease.h:74