libtorrent-rasterbarの使い方メモ
マイナーなライブラリなんで、日本語で解説してあるサイトは皆無っぽいです。
まあ公式ページ↓に詳しい使い方書いてあるから必要ないかもしれませんけど
http://www.rasterbar.com/products/libtorrent/manual.html
基本的な流れ
- sessionを作る(コンストラクタ)
- 拡張機能(DHT, LSD, UPnP, NAT-PMP)を開始する
- torrentファイルをパースする
- 大抵の場合torrentファイルのパスをadd_torrent_paramsに代入して、add_torrent();関数を実行後、返り値のtorrent_handleを取得という流れ
- メインループ、
- 必要に応じてストレージ監視など、ダウンロード制御する
- 終了前にダウンロード状態を保存する
- torrent_handleを使いsave_resume_data()を実行
- sessionを破棄する(デストラクタ)
これ以外の詳細な使い方はexample/client-test.cppをみればわかります
主要クラスの役割
- "libtorrent/torrent_handle.hpp"
- torrent_handle:各torrentのダウンロードの制御を行うハンドラクラス、帯域制御とかできる
- "libtorrent/torrent_info.hpp"
- torrent_info:ファイル内の情報を見る、例えば何ファイル何サイズあるとか
- "libtorrent/bitfield.hpp"
- bitfield:ダウンロード状況などをビットフィールドで管理しているクラス
- "libtorrent/storage.hpp"
- storage_interface:ファイル保存のためのストレージを制御する、例えばリネームなどが可能
ビルド方法
example/Makefileとかを参考にして自分で作ってみましょう
(libtorrent-rasterbar以外にもlibpthreadとかzlibとかあって、何が必要なのか正直わからなかった)