QNetworkAccessManager を使用して Web からファイルをダウンロードしています。これはタスクに簡単な API を提供します。しかし、クラスにダウンロード レート制限を追加したいので、すべての http 応答がその制限を超えないようにします (要求を制限する理由がわかりません)。
私は abit をグーグルで検索し、ここで興味深い投稿を見つけました。しかし、それは QTcpSocket のサブクラスであり、ソケットのセットを管理する別のクラスを使用して帯域幅を制御します。これは良いことですが、QNetworkAcessManager クラスを引き続き使用したいと考えています。
私の見方では、次のことができます。
- QNetworkAccessManager をサブクラス化し、サブクラス化された QTcpSocket を何らかの方法で統合します (これには、さらに多くのクラス (QHttp* クラス) をサブクラス化することが含まれる場合があります)。
- この記事で提供されているクラスを使用して、それらを中心に独自の QNetworkAccessManager を構築します。
- QNetworkAccessManager はプロキシの使用を許可します。帯域幅調整ロジックを含む偽のプロキシ クラスを作成できます。しかし、これは私には醜いハックのようです。
最初の 2 つのオプションは可能ですが、これを行うためのより簡単な方法があるかどうか疑問に思っていましたか? そうでない場合、どちらをお勧めしますか?