/[mldonkey]/mldonkey/src/networks/donkey/donkeyChunks.ml
ViewVC logotype

Diff of /mldonkey/src/networks/donkey/donkeyChunks.ml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.7 by spiralvoice, Mon Sep 19 15:13:37 2005 UTC revision 1.8 by spiralvoice, Sun Oct 16 20:42:54 2005 UTC
# Line 45  open DonkeyGlobals Line 45  open DonkeyGlobals
45    
46    (*    (*
47  let chunk_pos i =  let chunk_pos i =
48    Int64.mul (Int64.of_int i)  block_size    (Int64.of_int i) ** block_size
49    
50  let chunk_end file i =  let chunk_end file i =
51    let pos = Int64.mul (Int64.of_int (i+1))  block_size in    let pos = (Int64.of_int (i+1)) ** block_size in
52    if pos > file_size file then    if pos > file_size file then
53      file_size file else pos      file_size file else pos
54    
# Line 57  let verify_chunk file i = Line 57  let verify_chunk file i =
57    let file_md4s = Array.of_list file.file_md4s in    let file_md4s = Array.of_list file.file_md4s in
58    let begin_pos = chunk_pos i in    let begin_pos = chunk_pos i in
59    let end_pos = chunk_end file i in    let end_pos = chunk_end file i in
60    let len = Int64.sub end_pos begin_pos in    let len = end_pos -- begin_pos in
61    let md4 = file_md4s.(i) in    let md4 = file_md4s.(i) in
62    if !verbose then begin    if !verbose then begin
63        lprintf "verify_chunk %s[%d] %Ld[%Ld]\n"        lprintf "verify_chunk %s[%d] %Ld[%Ld]\n"
# Line 169  let chunk_compute_missing file i = Line 169  let chunk_compute_missing file i =
169    match file.file_chunks.(i) with    match file.file_chunks.(i) with
170        PresentTemp | PresentVerified -> Int64.zero        PresentTemp | PresentVerified -> Int64.zero
171      | AbsentTemp | AbsentVerified ->      | AbsentTemp | AbsentVerified ->
172          Int64.sub (chunk_end file i) (chunk_pos i)          (chunk_end file i) -- (chunk_pos i)
173      | PartialTemp b | PartialVerified b ->      | PartialTemp b | PartialVerified b ->
174          let absent = ref Int64.zero in          let absent = ref Int64.zero in
175          List.iter (fun z ->          List.iter (fun z ->
176            absent := Int64.add !absent (            absent := !absent ++ (z.zone_end -- z.zone_begin)
             Int64.sub z.zone_end z.zone_begin)  
177          ) b.block_zones;          ) b.block_zones;
178          !absent          !absent
179    
# Line 183  let compute_size file = Line 182  let compute_size file =
182            
183      let absents = ref Int64.zero in      let absents = ref Int64.zero in
184      for i = 0 to file.file_nchunks - 1 do      for i = 0 to file.file_nchunks - 1 do
185        absents := Int64.add !absents (chunk_compute_missing file i)        absents := !absents ++ (chunk_compute_missing file i)
186      done;      done;
187      let current = Int64.sub (file_size file) !absents in      let current = (file_size file) -- !absents in
188      file.file_file.impl_file_downloaded <- current;      file.file_file.impl_file_downloaded <- current;
189      if file_downloaded file > file_size file then begin      if file_downloaded file > file_size file then begin
190          lprintf "******* downloaded %Ld > %Ld size after compute_size ***** for %s\n"          lprintf "******* downloaded %Ld > %Ld size after compute_size ***** for %s\n"
# Line 220  let verify_chunks file = Line 219  let verify_chunks file =
219                    PartialTemp bloc -> PartialVerified bloc                    PartialTemp bloc -> PartialVerified bloc
220                  | PresentTemp ->                  | PresentTemp ->
221                      file.file_file.impl_file_downloaded <-                      file.file_file.impl_file_downloaded <-
222                        Int64.sub (file_downloaded file) block_size;                        (file_downloaded file) -- block_size;
223                                            
224                      if file_downloaded file > file_size file then begin                      if file_downloaded file > file_size file then begin
225                          lprintf "******* downloaded %Ld > %Ld size after verify_chunks ***** for %s\n"                          lprintf "******* downloaded %Ld > %Ld size after verify_chunks ***** for %s\n"
# Line 274  let register_md4s md4s file_num file_siz Line 273  let register_md4s md4s file_num file_siz
273    for i = 0 to Array.length md4s - 1 do    for i = 0 to Array.length md4s - 1 do
274      let md4 = md4s.(i) in      let md4 = md4s.(i) in
275      let chunk_pos = block_size *.. i in      let chunk_pos = block_size *.. i in
276      let chunk_end = Int64.add chunk_pos block_size in      let chunk_end = chunk_pos ++ block_size in
277      let chunk_size = if chunk_end > file_size then      let chunk_size = if chunk_end > file_size then
278          Int64.sub file_size chunk_pos else block_size in          file_size -- chunk_pos else block_size in
279      register_md4 i md4 chunk_pos chunk_size file_num;      register_md4 i md4 chunk_pos chunk_size file_num;
280    done    done
281        
# Line 347  let duplicate_chunks () = ( Line 346  let duplicate_chunks () = (
346            for i = 0 to Array.length file.file_md4s - 1 do            for i = 0 to Array.length file.file_md4s - 1 do
347              let chunk_pos = block_size *.. i in              let chunk_pos = block_size *.. i in
348              let md4 = file.file_md4s.(i) in              let md4 = file.file_md4s.(i) in
349              let chunk_end = Int64.add chunk_pos block_size in              let chunk_end = chunk_pos ++ block_size in
350              let chunk_size = if chunk_end > file_size then              let chunk_size = if chunk_end > file_size then
351                  Int64.sub file_size chunk_pos else block_size in                  file_size -- chunk_pos else block_size in
352                            
353              (try              (try
354                  if bitmap.[i] < '3' then                  if bitmap.[i] < '3' then

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26