1- // libTorrent - BitTorrent library
2- // Copyright (C) 2005-2011, Jari Sundell
3- //
4- // This program is free software; you can redistribute it and/or modify
5- // it under the terms of the GNU General Public License as published by
6- // the Free Software Foundation; either version 2 of the License, or
7- // (at your option) any later version.
8- //
9- // This program is distributed in the hope that it will be useful,
10- // but WITHOUT ANY WARRANTY; without even the implied warranty of
11- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12- // GNU General Public License for more details.
13- //
14- // You should have received a copy of the GNU General Public License
15- // along with this program; if not, write to the Free Software
16- // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17- //
18- // In addition, as a special exception, the copyright holders give
19- // permission to link the code of portions of this program with the
20- // OpenSSL library under certain conditions as described in each
21- // individual source file, and distribute linked combinations
22- // including the two.
23- //
24- // You must obey the GNU General Public License in all respects for
25- // all of the code used other than OpenSSL. If you modify file(s)
26- // with this exception, you may extend this exception to your version
27- // of the file(s), but you are not obligated to do so. If you do not
28- // wish to do so, delete this exception statement from your version.
29- // If you delete this exception statement from all source files in the
30- // program, then also delete it here.
31- //
32- // Contact: Jari Sundell <jaris@ifi.uio.no>
33- //
34- // Skomakerveien 33
35- // 3185 Skoppum, NORWAY
36-
371#include " config.h"
382
393#include " chunk.h"
404#include " chunk_list_node.h"
415#include " hash_chunk.h"
42- #include " utils/sha1.h"
436
447namespace torrent {
458
46- HashChunk::~HashChunk () = default ;
47-
48- HashChunk::HashChunk (ChunkHandle h) {
49- m_hash = std::make_unique<Sha1>();
50- set_chunk (h);
51- }
52-
539void
5410HashChunk::set_chunk (ChunkHandle h) {
5511 m_position = 0 ;
5612 m_chunk = h;
57- m_hash->init ();
13+
14+ m_hash.init ();
5815}
5916
6017void
6118HashChunk::hash_c (char * buffer) {
62- m_hash-> final_c (buffer);
19+ m_hash. final_c (buffer);
6320}
6421
6522bool
@@ -68,7 +25,7 @@ HashChunk::perform(uint32_t length, bool force) {
6825
6926 if (m_position + length > m_chunk.chunk ()->chunk_size ())
7027 throw internal_error (" HashChunk::perform(...) received length out of range" );
71-
28+
7229 uint32_t l = force ? length : m_chunk.chunk ()->incore_length (m_position);
7330
7431 bool complete = l == length;
@@ -109,7 +66,7 @@ uint32_t
10966HashChunk::perform_part (Chunk::iterator itr, uint32_t length) {
11067 length = std::min (length, remaining_part (itr, m_position));
11168
112- m_hash-> update (itr->chunk ().begin () + m_position - itr->position (), length);
69+ m_hash. update (itr->chunk ().begin () + m_position - itr->position (), length);
11370 m_position += length;
11471
11572 return length;
0 commit comments