transition to more default member initializers (#1261)

This commit is contained in:
Arvid Norberg 2016-10-26 20:41:57 -04:00 committed by GitHub
parent f5366bd816
commit 5f3c52f406
7 changed files with 48 additions and 92 deletions

View File

@ -78,27 +78,7 @@ namespace libtorrent
// which determines the storage mechanism for the downloaded or seeding // which determines the storage mechanism for the downloaded or seeding
// data for the torrent. For more information, see the ``storage`` field. // data for the torrent. For more information, see the ``storage`` field.
explicit add_torrent_params(storage_constructor_type sc = default_storage_constructor) explicit add_torrent_params(storage_constructor_type sc = default_storage_constructor)
: version(LIBTORRENT_VERSION_NUM) : storage(sc) {}
, storage_mode(storage_mode_sparse)
, storage(sc)
, userdata(0)
, flags(default_flags)
, max_uploads(-1)
, max_connections(-1)
, upload_limit(-1)
, download_limit(-1)
, total_uploaded(0)
, total_downloaded(0)
, active_time(0)
, finished_time(0)
, seeding_time(0)
, added_time(0)
, completed_time(0)
, last_seen_complete(0)
, num_complete(-1)
, num_incomplete(-1)
, num_downloaded(-1)
{}
// values for the ``flags`` field // values for the ``flags`` field
enum flags_t : std::uint64_t enum flags_t : std::uint64_t
@ -281,7 +261,7 @@ namespace libtorrent
// filled in by the constructor and should be left untouched. It is used // filled in by the constructor and should be left untouched. It is used
// for forward binary compatibility. // for forward binary compatibility.
int version; int version = LIBTORRENT_VERSION_NUM;
// torrent_info object with the torrent to add. Unless the url or // torrent_info object with the torrent to add. Unless the url or
// info_hash is set, this is required to be initialized. // info_hash is set, this is required to be initialized.
@ -314,7 +294,7 @@ namespace libtorrent
// One of the values from storage_mode_t. For more information, see // One of the values from storage_mode_t. For more information, see
// storage-allocation_. // storage-allocation_.
storage_mode_t storage_mode; storage_mode_t storage_mode = storage_mode_sparse;
// can be used to customize how the data is stored. The default storage // can be used to customize how the data is stored. The default storage
// will simply write the data to the files it belongs to, but it could be // will simply write the data to the files it belongs to, but it could be
@ -327,7 +307,7 @@ namespace libtorrent
// The ``userdata`` parameter is optional and will be passed on to the // The ``userdata`` parameter is optional and will be passed on to the
// extension constructor functions, if any // extension constructor functions, if any
// (see torrent_handle::add_extension()). // (see torrent_handle::add_extension()).
void* userdata; void* userdata = nullptr;
// can be set to control the initial file priorities when adding a // can be set to control the initial file priorities when adding a
// torrent. The semantics are the same as for // torrent. The semantics are the same as for
@ -364,7 +344,7 @@ namespace libtorrent
// constructor. In order to preserve default behavior when clearing or // constructor. In order to preserve default behavior when clearing or
// setting other flags, make sure to bitwise OR or in a flag or bitwise // setting other flags, make sure to bitwise OR or in a flag or bitwise
// AND the inverse of a flag to clear it. // AND the inverse of a flag to clear it.
std::uint64_t flags; std::uint64_t flags = default_flags;
// set this to the info hash of the torrent to add in case the info-hash // set this to the info hash of the torrent to add in case the info-hash
// is the only known property of the torrent. i.e. you don't have a // is the only known property of the torrent. i.e. you don't have a
@ -380,34 +360,34 @@ namespace libtorrent
// //
// -1 means unlimited on these settings just like their counterpart // -1 means unlimited on these settings just like their counterpart
// functions on torrent_handle // functions on torrent_handle
int max_uploads; int max_uploads = -1;
int max_connections; int max_connections = -1;
int upload_limit; int upload_limit = -1;
int download_limit; int download_limit = -1;
// the total number of bytes uploaded and downloaded by this torrent so // the total number of bytes uploaded and downloaded by this torrent so
// far. // far.
std::int64_t total_uploaded; std::int64_t total_uploaded = 0;
std::int64_t total_downloaded; std::int64_t total_downloaded = 0;
// the number of seconds this torrent has spent in started, finished and // the number of seconds this torrent has spent in started, finished and
// seeding state so far, respectively. // seeding state so far, respectively.
int active_time; int active_time = 0;
int finished_time; int finished_time = 0;
int seeding_time; int seeding_time = 0;
// if set to a non-zero value, this is the posix time of when this torrent // if set to a non-zero value, this is the posix time of when this torrent
// was first added, including previous runs/sessions. If set to zero, the // was first added, including previous runs/sessions. If set to zero, the
// internal added_time will be set to the time of when add_torrent() is // internal added_time will be set to the time of when add_torrent() is
// called. // called.
time_t added_time; time_t added_time = 0;
time_t completed_time; time_t completed_time = 0;
// if set to non-zero, initializes the time (expressed in posix time) when // if set to non-zero, initializes the time (expressed in posix time) when
// we last saw a seed or peers that together formed a complete copy of the // we last saw a seed or peers that together formed a complete copy of the
// torrent. If left set to zero, the internal counterpart to this field // torrent. If left set to zero, the internal counterpart to this field
// will be updated when we see a seed or a distributed copies >= 1.0. // will be updated when we see a seed or a distributed copies >= 1.0.
time_t last_seen_complete; time_t last_seen_complete = 0;
// these field can be used to initialize the torrent's cached scrape data. // these field can be used to initialize the torrent's cached scrape data.
// The scrape data is high level metadata about the current state of the // The scrape data is high level metadata about the current state of the
@ -421,9 +401,9 @@ namespace libtorrent
// //
// Leaving any of these values set to -1 indicates we don't know, or we // Leaving any of these values set to -1 indicates we don't know, or we
// have not received any scrape data. // have not received any scrape data.
int num_complete; int num_complete = -1;
int num_incomplete; int num_incomplete = -1;
int num_downloaded; int num_downloaded = -1;
// URLs can be added to these two lists to specify additional web // URLs can be added to these two lists to specify additional web
// seeds to be used by the torrent. If the ``flag_override_web_seeds`` // seeds to be used by the torrent. If the ``flag_override_web_seeds``

View File

@ -72,6 +72,8 @@ namespace libtorrent
{ {
disk_io_job(); disk_io_job();
~disk_io_job(); ~disk_io_job();
disk_io_job(disk_io_job const&) = delete;
disk_io_job& operator=(disk_io_job const&) = delete;
enum action_t enum action_t
{ {
@ -133,7 +135,7 @@ namespace libtorrent
bool completed(cached_piece_entry const* pe, int block_size); bool completed(cached_piece_entry const* pe, int block_size);
// unique identifier for the peer when reading // unique identifier for the peer when reading
void* requester; void* requester = nullptr;
// for write, this points to the data to write, // for write, this points to the data to write,
// for read, the data read is returned here // for read, the data read is returned here
@ -209,24 +211,24 @@ namespace libtorrent
enum { operation_failed = -1 }; enum { operation_failed = -1 };
// return value of operation // return value of operation
std::int32_t ret; std::int32_t ret = 0;
// flags controlling this job // flags controlling this job
std::uint8_t flags; std::uint8_t flags = 0;
#if TORRENT_USE_ASSERTS #if TORRENT_USE_ASSERTS
bool in_use:1; bool in_use = false;
// set to true when the job is added to the completion queue. // set to true when the job is added to the completion queue.
// to make sure we don't add it twice // to make sure we don't add it twice
mutable bool job_posted:1; mutable bool job_posted = false;
// set to true when the callback has been called once // set to true when the callback has been called once
// used to make sure we don't call it twice // used to make sure we don't call it twice
mutable bool callback_called:1; mutable bool callback_called = false;
// this is true when the job is blocked by a storage_fence // this is true when the job is blocked by a storage_fence
mutable bool blocked:1; mutable bool blocked = false;
#endif #endif
}; };

View File

@ -725,10 +725,10 @@ namespace libtorrent
// the number of seeds. These are not added to // the number of seeds. These are not added to
// the availability counters of the pieces // the availability counters of the pieces
int m_seeds; int m_seeds = 0;
// the number of pieces that have passed the hash check // the number of pieces that have passed the hash check
int m_num_passed; int m_num_passed = 0;
// this vector contains all piece indices that are pickable // this vector contains all piece indices that are pickable
// sorted by priority. Pieces are in random random order // sorted by priority. Pieces are in random random order
@ -761,41 +761,41 @@ namespace libtorrent
// this is a free-list. // this is a free-list.
std::vector<std::uint16_t> m_free_block_infos; std::vector<std::uint16_t> m_free_block_infos;
std::uint16_t m_blocks_per_piece; std::uint16_t m_blocks_per_piece = 0;
std::uint16_t m_blocks_in_last_piece; std::uint16_t m_blocks_in_last_piece = 0;
// the number of filtered pieces that we don't already // the number of filtered pieces that we don't already
// have. total_number_of_pieces - number_of_pieces_we_have // have. total_number_of_pieces - number_of_pieces_we_have
// - num_filtered is supposed to the number of pieces // - num_filtered is supposed to the number of pieces
// we still want to download // we still want to download
int m_num_filtered; int m_num_filtered = 0;
// the number of pieces we have that also are filtered // the number of pieces we have that also are filtered
int m_num_have_filtered; int m_num_have_filtered = 0;
// we have all pieces in the range [0, m_cursor) // we have all pieces in the range [0, m_cursor)
// m_cursor is the first piece we don't have // m_cursor is the first piece we don't have
int m_cursor; int m_cursor = 0;
// we have all pieces in the range [m_reverse_cursor, end) // we have all pieces in the range [m_reverse_cursor, end)
// m_reverse_cursor is the first piece where we also have // m_reverse_cursor is the first piece where we also have
// all the subsequent pieces // all the subsequent pieces
int m_reverse_cursor; int m_reverse_cursor = 0;
// the number of pieces we have (i.e. passed + flushed). // the number of pieces we have (i.e. passed + flushed).
// This includes pieces that we have filtered but still have // This includes pieces that we have filtered but still have
int m_num_have; int m_num_have = 0;
// this is the number of partial download pieces // this is the number of partial download pieces
// that may be caused by pad files. We raise the limit // that may be caused by pad files. We raise the limit
// of number of partial pieces by this amount, to not // of number of partial pieces by this amount, to not
// prioritize pieces that intersect pad files for no // prioritize pieces that intersect pad files for no
// apparent reason // apparent reason
int m_num_pad_files; int m_num_pad_files = 0;
// if this is set to true, it means update_pieces() // if this is set to true, it means update_pieces()
// has to be called before accessing m_pieces. // has to be called before accessing m_pieces.
mutable bool m_dirty; mutable bool m_dirty = false;
public: public:
#ifdef TORRENT_OPTIMIZE_MEMORY_USAGE #ifdef TORRENT_OPTIMIZE_MEMORY_USAGE

View File

@ -149,9 +149,9 @@ namespace libtorrent
std::vector<utp_socket_impl*> m_stalled_sockets; std::vector<utp_socket_impl*> m_stalled_sockets;
// the last socket we received a packet on // the last socket we received a packet on
utp_socket_impl* m_last_socket; utp_socket_impl* m_last_socket = nullptr;
int m_new_connection; int m_new_connection = -1;
aux::session_settings const& m_sett; aux::session_settings const& m_sett;
@ -161,15 +161,15 @@ namespace libtorrent
// the timestamp for the last time we updated // the timestamp for the last time we updated
// the routing table // the routing table
mutable time_point m_last_route_update; mutable time_point m_last_route_update = min_time();
// cache of interfaces // cache of interfaces
mutable std::vector<ip_interface> m_interfaces; mutable std::vector<ip_interface> m_interfaces;
mutable time_point m_last_if_update; mutable time_point m_last_if_update = min_time();
// the buffer size of the socket. This is used // the buffer size of the socket. This is used
// to now lower the buffer size // to now lower the buffer size
int m_sock_buf_size; int m_sock_buf_size = 0;
// stats counters // stats counters
counters& m_counters; counters& m_counters;
@ -177,7 +177,7 @@ namespace libtorrent
io_service& m_ios; io_service& m_ios;
std::array<int, 3> m_restrict_mtu; std::array<int, 3> m_restrict_mtu;
int m_mtu_idx; int m_mtu_idx = 0;
// this is passed on to the instantiate connection // this is passed on to the instantiate connection
// if this is non-nullptr it will create SSL connections over uTP // if this is non-nullptr it will create SSL connections over uTP

View File

@ -36,17 +36,8 @@ POSSIBILITY OF SUCH DAMAGE.
namespace libtorrent namespace libtorrent
{ {
disk_io_job::disk_io_job() disk_io_job::disk_io_job()
: requester(nullptr) : piece(0)
, piece(0)
, action(read) , action(read)
, ret(0)
, flags(0)
#if TORRENT_USE_ASSERTS
, in_use(false)
, job_posted(false)
, callback_called(false)
, blocked(false)
#endif
{ {
buffer.disk_block = nullptr; buffer.disk_block = nullptr;
d.io.offset = 0; d.io.offset = 0;

View File

@ -65,18 +65,7 @@ namespace libtorrent
const piece_block piece_block::invalid((std::numeric_limits<int>::max)(), (std::numeric_limits<int>::max)()); const piece_block piece_block::invalid((std::numeric_limits<int>::max)(), (std::numeric_limits<int>::max)());
piece_picker::piece_picker() piece_picker::piece_picker()
: m_seeds(0) : m_priority_boundaries(1, int(m_pieces.size()))
, m_num_passed(0)
, m_priority_boundaries(1, int(m_pieces.size()))
, m_blocks_per_piece(0)
, m_blocks_in_last_piece(0)
, m_num_filtered(0)
, m_num_have_filtered(0)
, m_cursor(0)
, m_reverse_cursor(0)
, m_num_have(0)
, m_num_pad_files(0)
, m_dirty(false)
{ {
#ifdef TORRENT_PICKER_LOG #ifdef TORRENT_PICKER_LOG
std::cerr << "[" << this << "] " << "new piece_picker" << std::endl; std::cerr << "[" << this << "] " << "new piece_picker" << std::endl;

View File

@ -57,15 +57,9 @@ namespace libtorrent
, void* ssl_context) , void* ssl_context)
: m_send_fun(send_fun) : m_send_fun(send_fun)
, m_cb(cb) , m_cb(cb)
, m_last_socket(nullptr)
, m_new_connection(-1)
, m_sett(sett) , m_sett(sett)
, m_last_route_update(min_time())
, m_last_if_update(min_time())
, m_sock_buf_size(0)
, m_counters(cnt) , m_counters(cnt)
, m_ios(ios) , m_ios(ios)
, m_mtu_idx(0)
, m_ssl_context(ssl_context) , m_ssl_context(ssl_context)
{ {
m_restrict_mtu.fill(65536); m_restrict_mtu.fill(65536);