BitCache::BitCache(const std::tr1::shared_ptr<BitData>& bitdata, BitDownloadingInfo *downloading_info) : piece_length_(bitdata->GetPieceLength()), piece_map_(bitdata->GetPieceMap()), info_hash_(bitdata->GetInfoHash()), metainfo_file_(bitdata->GetMetainfoFile()), downloading_info_(downloading_info), file_(bitdata) { const std::size_t total_cache_memory = 50 * 1024 * 1024; max_cache_pieces_ = total_cache_memory / piece_length_; }