|
From: <arn...@us...> - 2008-04-24 13:26:39
|
Revision: 1194
http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=1194&view=rev
Author: arnetheduck
Date: 2008-04-24 06:26:29 -0700 (Thu, 24 Apr 2008)
Log Message:
-----------
Move chunk size logic where it belongs
Modified Paths:
--------------
dcplusplus/trunk/dcpp/Download.cpp
dcplusplus/trunk/dcpp/DownloadManager.cpp
dcplusplus/trunk/dcpp/QueueItem.cpp
dcplusplus/trunk/dcpp/QueueItem.h
dcplusplus/trunk/dcpp/QueueManager.cpp
dcplusplus/trunk/dcpp/QueueManager.h
dcplusplus/trunk/dcpp/Transfer.cpp
dcplusplus/trunk/dcpp/UserConnection.cpp
dcplusplus/trunk/dcpp/UserConnection.h
Property Changed:
----------------
dcplusplus/trunk/
Property changes on: dcplusplus/trunk
___________________________________________________________________
Name: bzr:revision-info
- timestamp: 2008-04-17 14:52:38.842999935 +0200
committer: tom <tom@ATHLON>
properties:
branch-nick: dcplusplus
+ timestamp: 2008-04-18 22:31:37.430000067 +0200
committer: Jacek Sieka <arn...@gm...>
properties:
branch-nick: dcplusplus
Name: bzr:revision-id:v3-trunk1
- 1027 arn...@gm...-20080323183926-schknwnkgeo7ivdn
1028 zouzou123gen-20080323220411-r8usuc3qxwuh7zsn
1029 zouzou123gen-20080323221249-0su72zaj13e706mk
1030 arn...@gm...-20080324140623-muba1dl46m000o8c
1031 zouzou123gen-20080324141933-qbgr93ugpe0297m6
1032 arn...@gm...-20080324153706-siidja05n84i00b1
1033 arn...@gm...-20080324153823-lhn3awurnu77riln
1034 arn...@gm...-20080324165650-zapppziji67yf5a2
1035 zouzou123gen-20080324175936-4mqc2kh0lo5wtdu2
1036 zouzou123gen-20080325004602-6wdsoym95mjuhwd3
1037 arn...@gm...-20080325100659-8fqy6q65itmghlep
1038 zouzou123gen-20080325175216-s297sdiucukfvijh
1039 arn...@gm...-20080325210137-3dfqyoi8ykosy087
1040 arn...@gm...-20080325211747-nwwy1eb33r071sca
1041 arn...@gm...-20080326084110-qbselrjckku275xi
1042 zouzou123gen-20080326123631-35642mgbk2i4ty32
1043 zouzou123gen-20080326124345-f4xwn2d3ty8ubd6r
1044 arn...@gm...-20080326162031-il0nyms30w0mky43
1045 arn...@gm...-20080326164801-8dru8mjc06xgzjpv
1046 arn...@gm...-20080326170438-uzl2rx8fqnohak7g
1047 zouzou123gen-20080326172821-d6uqcbmfb0c6rwlv
1048 arn...@gm...-20080326213257-qlgdh7m2712p2l0q
1049 arn...@gm...-20080326214313-ktnoekgk3s0wmatz
1050 arn...@gm...-20080326215256-0j1iqrf286b9g7zf
1051 arn...@gm...-20080327082121-hoi22wh1gwjdfbyd
1052 arn...@gm...-20080327120639-um3tukdt374rwvgm
1053 zouzou123gen-20080327130703-6vtek6uxy3vua543
1054 arn...@gm...-20080327215831-dmg5mkufskabwkro
1055 arn...@gm...-20080327231459-cdztcv25alsuyqmf
1056 arn...@gm...-20080328085925-gceybsr53oml1p24
1057 arn...@gm...-20080328200512-1sjuu6bcnl2dyd2a
1058 arn...@gm...-20080328210347-bussqjrm5mfswh7o
1059 arn...@gm...-20080329055630-braiir1dskv7a4qm
1060 arn...@gm...-20080329061558-rck8dz60wpj3c5ja
1061 arn...@gm...-20080329081253-if6o5jn329mbzfpl
1062 arn...@gm...-20080329081619-cb4x930j8sp55cs0
1063 arn...@gm...-20080329103216-hgjzo7ra2zixbztd
1064 arn...@gm...-20080329124042-q3aw4iodmo5kafyp
1065 arn...@gm...-20080329124926-2je1z18p0272zpua
1066 arn...@gm...-20080329150901-ehj9t32en7eps2dp
1067 zouzou123gen-20080329153653-36xlvpik2ns9r84r
1068 zouzou123gen-20080329162703-51xr8hg073pg7wq5
1069 zouzou123gen-20080329234706-8ddipdqu0xeudkql
1070 arn...@gm...-20080330081232-ubqr1171ewalrd4q
1071 zouzou123gen-20080330131607-yppbs3mgyjef1cux
1072 zouzou123gen-20080330134835-yv1nogy77ib1uehd
1073 zouzou123gen-20080331124549-alyw7vugdn30piqy
1074 zouzou123gen-20080331135108-q8frtqsin5bosfzm
1075 zouzou123gen-20080331140757-u94q52yccl5lsifk
1076 zouzou123gen-20080331152513-ue1x5qhigcw51348
1077 arn...@gm...-20080331184436-a8g6chibmg8nswls
1078 arn...@gm...-20080331220648-81485k28qmwruwz6
1079 zouzou123gen-20080401081001-2yjn07cf8s5sxr3a
1080 zouzou123gen-20080401081247-f3p4hdjojnd460jw
1081 zouzou123gen-20080401084117-24a454g8o0x656kg
1082 zouzou123gen-20080401133146-jabb5i8870fg6f66
1083 zouzou123gen-20080401154610-mxdqoo5bksru93e6
1084 arn...@gm...-20080401185530-lqj4tflt5ldmx46f
1085 arn...@gm...-20080401212616-ffl7m0xm8gt15knk
1086 arn...@gm...-20080402084515-ofmnwihzv159jton
1087 arn...@gm...-20080402133105-y70soi38owzl76i9
1088 arn...@gm...-20080402142417-rn2dbkx19wfz3vae
1089 arn...@gm...-20080402144459-u3z3hqvl8aqjc4a0
1090 zouzou123gen-20080402145051-zi8tmvy8u3r2mzu8
1091 arn...@gm...-20080402152137-f397uz1yp9qjvfwh
1092 zouzou123gen-20080402170355-29wda40wk3cy7lu5
1093 arn...@gm...-20080402180628-ipos9li0c4bsmq1h
1094 arn...@gm...-20080402181235-s2a6f4ww4lzayl46
1095 arn...@gm...-20080402193851-6mu64vgep6tijith
1096 arn...@gm...-20080402203810-86zpxsx69q83zf3r
1097 arn...@gm...-20080402204331-so2e8n892o23pejr
1098 poy-20080402224153-225qylr2cfwhqrg7
1099 mrmikejj-20080403125112-o8polh8rkn62umyh
1100 arn...@gm...-20080403125139-8xub76j1xazhfxna
1101 po...@12...-20080403140544-13kockkjho883nb4
1102 po...@12...-20080403143012-bxghtoodiolugpbs
1103 arn...@gm...-20080403190809-bbi4bz5rfcvjnt20
1104 arn...@gm...-20080403205410-czxru1vcg1s4wcws
1105 arn...@gm...-20080403213124-54spdrwszgyimd90
1106 po...@12...-20080404002406-aj74x5tngi6mmmj1
1107 arn...@gm...-20080404122415-mjy07qzbaxyhagra
1108 po...@12...-20080404145445-84lyk5tyy3b3br14
1109 po...@12...-20080404231417-v4v8x7u3f0hm0ejc
1110 po...@12...-20080405001107-14d1ojjof8xhvcj8
1111 arn...@gm...-20080405071929-jmnrul21sxx04kky
1112 arn...@gm...-20080405080105-9qbda7be0pi7y1ai
1113 po...@12...-20080405154555-yuj2n5kyndfjlpsf
1114 po...@12...-20080405220250-8y09d0samsj8ja94
1115 po...@12...-20080406134101-4860ytb61sbu3yhg
1116 po...@12...-20080406155849-2wzxzuzs5m8zpk0g
1117 po...@12...-20080406164835-bv5dydhm3qqydsty
1118 arn...@gm...-20080406210237-c7tyfgiz2sjgv044
1119 po...@12...-20080407114423-4yajg1rffidq76bj
1120 arn...@gm...-20080407194826-c42t4bjzw4vflejn
1121 po...@12...-20080407214303-o7ul1bvcn6gvaoc9
1122 po...@12...-20080407220647-r7f3em92til5j67s
1123 po...@12...-20080408212439-54t3bqlhvw1nu4xc
1124 arn...@gm...-20080409193708-y6erfzwrcb1seet3
1125 arn...@gm...-20080409195827-ub6t2s3wdf28nfpz
1126 po...@12...-20080409215055-1zmqhhm2859878c1
1127 arn...@gm...-20080410102447-l4es4cbukkqwcnpc
1128 arn...@gm...-20080410214118-b70g50tl27cq9q29
1129 arn...@gm...-20080411074730-w1pu78qigtx87lx3
1130 arn...@gm...-20080411090724-kwdj9pg9hrv1xhwb
1131 po...@12...-20080411153057-tn7zhxqk0z7ceref
1132 arn...@gm...-20080411200946-ierqlg8v9vzj18n2
1133 arn...@gm...-20080411201718-ecshulwd7ic0wdci
1134 arn...@gm...-20080411204047-jc9vzcsf32j38dvc
1135 arn...@gm...-20080411205445-ojuz2a29yq8ww37j
1136 arn...@gm...-20080411214746-r420xmdgo35pkweb
1137 po...@12...-20080412010723-cibh8r0itlzqyt3f
1138 arn...@gm...-20080412200504-6qfeqnsghxgrk775
1139 arn...@gm...-20080413095435-2pkfb407hk8j54te
1140 arn...@gm...-20080413133927-zw2tpz8o8p3izyix
1141 arn...@gm...-20080413165025-ug342rxtq4blxck5
1142 arn...@gm...-20080413182618-6ihabn0tii6gb2m2
1143 arn...@gm...-20080413184517-9p08tedakta1h762
1144 arn...@gm...-20080413193655-kc98lx7kpzo42q43
1145 arn...@gm...-20080414132947-pguvkuzvyadukssc
1146 arn...@gm...-20080414133544-pxwxm9kcvw0k0vf3
1147 po...@12...-20080414174341-hw1im7ysymscpiq0
1148 arn...@gm...-20080414181459-5gu852lneflgf5d6
1149 po...@12...-20080414205719-d80e75fsl8zzi6je
1150 arn...@gm...-20080414211616-835ve71r1qdlbhb4
1151 arn...@gm...-20080415080409-4cid9q7opng8ijav
1152 arn...@gm...-20080415124540-roduj23x442jeefn
1153 arn...@gm...-20080415141450-cld2ym4s50uu31q7
1154 po...@12...-20080415143018-4emcs3u1fquzsu1f
1155 arn...@gm...-20080415174958-wfqu5kga5pe39xvc
1156 po...@12...-20080415182942-2ux0yn8immkrz7ch
1157 po...@12...-20080415185700-gdgpyn414bf4behz
1158 po...@12...-20080415202535-cvevdgrawpilji5b
1159 po...@12...-20080415214801-lgb1429qdm4ti6ub
1160 po...@12...-20080416123247-6dw18ea0lk4m5q8q
1161 po...@12...-20080416135834-6mtzcfy7pzxqfnq0
1162 po...@12...-20080416181626-0ex66f1lv1maf38l
1163 arn...@gm...-20080416183603-yxbj16t2nd8rdzzd
1164 arn...@gm...-20080416200700-wncbhytfixz9b15u
1165 po...@12...-20080416200941-5oigemky43sz6r87
1166 arn...@gm...-20080416204550-0dx3qhxasdkdohx1
1167 arn...@gm...-20080416211510-3ilsym0bom7u2cer
1168 tom@athlon-20080417125238-0hhhchg951y7p83w
+ 1027 arn...@gm...-20080323183926-schknwnkgeo7ivdn
1028 zouzou123gen-20080323220411-r8usuc3qxwuh7zsn
1029 zouzou123gen-20080323221249-0su72zaj13e706mk
1030 arn...@gm...-20080324140623-muba1dl46m000o8c
1031 zouzou123gen-20080324141933-qbgr93ugpe0297m6
1032 arn...@gm...-20080324153706-siidja05n84i00b1
1033 arn...@gm...-20080324153823-lhn3awurnu77riln
1034 arn...@gm...-20080324165650-zapppziji67yf5a2
1035 zouzou123gen-20080324175936-4mqc2kh0lo5wtdu2
1036 zouzou123gen-20080325004602-6wdsoym95mjuhwd3
1037 arn...@gm...-20080325100659-8fqy6q65itmghlep
1038 zouzou123gen-20080325175216-s297sdiucukfvijh
1039 arn...@gm...-20080325210137-3dfqyoi8ykosy087
1040 arn...@gm...-20080325211747-nwwy1eb33r071sca
1041 arn...@gm...-20080326084110-qbselrjckku275xi
1042 zouzou123gen-20080326123631-35642mgbk2i4ty32
1043 zouzou123gen-20080326124345-f4xwn2d3ty8ubd6r
1044 arn...@gm...-20080326162031-il0nyms30w0mky43
1045 arn...@gm...-20080326164801-8dru8mjc06xgzjpv
1046 arn...@gm...-20080326170438-uzl2rx8fqnohak7g
1047 zouzou123gen-20080326172821-d6uqcbmfb0c6rwlv
1048 arn...@gm...-20080326213257-qlgdh7m2712p2l0q
1049 arn...@gm...-20080326214313-ktnoekgk3s0wmatz
1050 arn...@gm...-20080326215256-0j1iqrf286b9g7zf
1051 arn...@gm...-20080327082121-hoi22wh1gwjdfbyd
1052 arn...@gm...-20080327120639-um3tukdt374rwvgm
1053 zouzou123gen-20080327130703-6vtek6uxy3vua543
1054 arn...@gm...-20080327215831-dmg5mkufskabwkro
1055 arn...@gm...-20080327231459-cdztcv25alsuyqmf
1056 arn...@gm...-20080328085925-gceybsr53oml1p24
1057 arn...@gm...-20080328200512-1sjuu6bcnl2dyd2a
1058 arn...@gm...-20080328210347-bussqjrm5mfswh7o
1059 arn...@gm...-20080329055630-braiir1dskv7a4qm
1060 arn...@gm...-20080329061558-rck8dz60wpj3c5ja
1061 arn...@gm...-20080329081253-if6o5jn329mbzfpl
1062 arn...@gm...-20080329081619-cb4x930j8sp55cs0
1063 arn...@gm...-20080329103216-hgjzo7ra2zixbztd
1064 arn...@gm...-20080329124042-q3aw4iodmo5kafyp
1065 arn...@gm...-20080329124926-2je1z18p0272zpua
1066 arn...@gm...-20080329150901-ehj9t32en7eps2dp
1067 zouzou123gen-20080329153653-36xlvpik2ns9r84r
1068 zouzou123gen-20080329162703-51xr8hg073pg7wq5
1069 zouzou123gen-20080329234706-8ddipdqu0xeudkql
1070 arn...@gm...-20080330081232-ubqr1171ewalrd4q
1071 zouzou123gen-20080330131607-yppbs3mgyjef1cux
1072 zouzou123gen-20080330134835-yv1nogy77ib1uehd
1073 zouzou123gen-20080331124549-alyw7vugdn30piqy
1074 zouzou123gen-20080331135108-q8frtqsin5bosfzm
1075 zouzou123gen-20080331140757-u94q52yccl5lsifk
1076 zouzou123gen-20080331152513-ue1x5qhigcw51348
1077 arn...@gm...-20080331184436-a8g6chibmg8nswls
1078 arn...@gm...-20080331220648-81485k28qmwruwz6
1079 zouzou123gen-20080401081001-2yjn07cf8s5sxr3a
1080 zouzou123gen-20080401081247-f3p4hdjojnd460jw
1081 zouzou123gen-20080401084117-24a454g8o0x656kg
1082 zouzou123gen-20080401133146-jabb5i8870fg6f66
1083 zouzou123gen-20080401154610-mxdqoo5bksru93e6
1084 arn...@gm...-20080401185530-lqj4tflt5ldmx46f
1085 arn...@gm...-20080401212616-ffl7m0xm8gt15knk
1086 arn...@gm...-20080402084515-ofmnwihzv159jton
1087 arn...@gm...-20080402133105-y70soi38owzl76i9
1088 arn...@gm...-20080402142417-rn2dbkx19wfz3vae
1089 arn...@gm...-20080402144459-u3z3hqvl8aqjc4a0
1090 zouzou123gen-20080402145051-zi8tmvy8u3r2mzu8
1091 arn...@gm...-20080402152137-f397uz1yp9qjvfwh
1092 zouzou123gen-20080402170355-29wda40wk3cy7lu5
1093 arn...@gm...-20080402180628-ipos9li0c4bsmq1h
1094 arn...@gm...-20080402181235-s2a6f4ww4lzayl46
1095 arn...@gm...-20080402193851-6mu64vgep6tijith
1096 arn...@gm...-20080402203810-86zpxsx69q83zf3r
1097 arn...@gm...-20080402204331-so2e8n892o23pejr
1098 poy-20080402224153-225qylr2cfwhqrg7
1099 mrmikejj-20080403125112-o8polh8rkn62umyh
1100 arn...@gm...-20080403125139-8xub76j1xazhfxna
1101 po...@12...-20080403140544-13kockkjho883nb4
1102 po...@12...-20080403143012-bxghtoodiolugpbs
1103 arn...@gm...-20080403190809-bbi4bz5rfcvjnt20
1104 arn...@gm...-20080403205410-czxru1vcg1s4wcws
1105 arn...@gm...-20080403213124-54spdrwszgyimd90
1106 po...@12...-20080404002406-aj74x5tngi6mmmj1
1107 arn...@gm...-20080404122415-mjy07qzbaxyhagra
1108 po...@12...-20080404145445-84lyk5tyy3b3br14
1109 po...@12...-20080404231417-v4v8x7u3f0hm0ejc
1110 po...@12...-20080405001107-14d1ojjof8xhvcj8
1111 arn...@gm...-20080405071929-jmnrul21sxx04kky
1112 arn...@gm...-20080405080105-9qbda7be0pi7y1ai
1113 po...@12...-20080405154555-yuj2n5kyndfjlpsf
1114 po...@12...-20080405220250-8y09d0samsj8ja94
1115 po...@12...-20080406134101-4860ytb61sbu3yhg
1116 po...@12...-20080406155849-2wzxzuzs5m8zpk0g
1117 po...@12...-20080406164835-bv5dydhm3qqydsty
1118 arn...@gm...-20080406210237-c7tyfgiz2sjgv044
1119 po...@12...-20080407114423-4yajg1rffidq76bj
1120 arn...@gm...-20080407194826-c42t4bjzw4vflejn
1121 po...@12...-20080407214303-o7ul1bvcn6gvaoc9
1122 po...@12...-20080407220647-r7f3em92til5j67s
1123 po...@12...-20080408212439-54t3bqlhvw1nu4xc
1124 arn...@gm...-20080409193708-y6erfzwrcb1seet3
1125 arn...@gm...-20080409195827-ub6t2s3wdf28nfpz
1126 po...@12...-20080409215055-1zmqhhm2859878c1
1127 arn...@gm...-20080410102447-l4es4cbukkqwcnpc
1128 arn...@gm...-20080410214118-b70g50tl27cq9q29
1129 arn...@gm...-20080411074730-w1pu78qigtx87lx3
1130 arn...@gm...-20080411090724-kwdj9pg9hrv1xhwb
1131 po...@12...-20080411153057-tn7zhxqk0z7ceref
1132 arn...@gm...-20080411200946-ierqlg8v9vzj18n2
1133 arn...@gm...-20080411201718-ecshulwd7ic0wdci
1134 arn...@gm...-20080411204047-jc9vzcsf32j38dvc
1135 arn...@gm...-20080411205445-ojuz2a29yq8ww37j
1136 arn...@gm...-20080411214746-r420xmdgo35pkweb
1137 po...@12...-20080412010723-cibh8r0itlzqyt3f
1138 arn...@gm...-20080412200504-6qfeqnsghxgrk775
1139 arn...@gm...-20080413095435-2pkfb407hk8j54te
1140 arn...@gm...-20080413133927-zw2tpz8o8p3izyix
1141 arn...@gm...-20080413165025-ug342rxtq4blxck5
1142 arn...@gm...-20080413182618-6ihabn0tii6gb2m2
1143 arn...@gm...-20080413184517-9p08tedakta1h762
1144 arn...@gm...-20080413193655-kc98lx7kpzo42q43
1145 arn...@gm...-20080414132947-pguvkuzvyadukssc
1146 arn...@gm...-20080414133544-pxwxm9kcvw0k0vf3
1147 po...@12...-20080414174341-hw1im7ysymscpiq0
1148 arn...@gm...-20080414181459-5gu852lneflgf5d6
1149 po...@12...-20080414205719-d80e75fsl8zzi6je
1150 arn...@gm...-20080414211616-835ve71r1qdlbhb4
1151 arn...@gm...-20080415080409-4cid9q7opng8ijav
1152 arn...@gm...-20080415124540-roduj23x442jeefn
1153 arn...@gm...-20080415141450-cld2ym4s50uu31q7
1154 po...@12...-20080415143018-4emcs3u1fquzsu1f
1155 arn...@gm...-20080415174958-wfqu5kga5pe39xvc
1156 po...@12...-20080415182942-2ux0yn8immkrz7ch
1157 po...@12...-20080415185700-gdgpyn414bf4behz
1158 po...@12...-20080415202535-cvevdgrawpilji5b
1159 po...@12...-20080415214801-lgb1429qdm4ti6ub
1160 po...@12...-20080416123247-6dw18ea0lk4m5q8q
1161 po...@12...-20080416135834-6mtzcfy7pzxqfnq0
1162 po...@12...-20080416181626-0ex66f1lv1maf38l
1163 arn...@gm...-20080416183603-yxbj16t2nd8rdzzd
1164 arn...@gm...-20080416200700-wncbhytfixz9b15u
1165 po...@12...-20080416200941-5oigemky43sz6r87
1166 arn...@gm...-20080416204550-0dx3qhxasdkdohx1
1167 arn...@gm...-20080416211510-3ilsym0bom7u2cer
1168 tom@athlon-20080417125238-0hhhchg951y7p83w
1169 arn...@gm...-20080418203137-e6szrje3fje5dgh9
Modified: dcplusplus/trunk/dcpp/Download.cpp
===================================================================
--- dcplusplus/trunk/dcpp/Download.cpp 2008-04-24 13:25:00 UTC (rev 1193)
+++ dcplusplus/trunk/dcpp/Download.cpp 2008-04-24 13:26:29 UTC (rev 1194)
@@ -46,7 +46,7 @@
if(qi.getSize() != -1) {
if(HashManager::getInstance()->getTree(getTTH(), getTigerTree())) {
setTreeValid(true);
- setSegment(qi.getNextSegment(getTigerTree().getBlockSize(), conn.getSpeed(), conn.getChunkSize()));
+ setSegment(qi.getNextSegment(getTigerTree().getBlockSize(), conn.getChunkSize()));
} else if(supportsTrees && !qi.getSource(conn.getUser())->isSet(QueueItem::Source::FLAG_NO_TREE) && qi.getSize() > HashManager::MIN_BLOCK_SIZE) {
// Get the tree unless the file is small (for small files, we'd probably only get the root anyway)
setType(TYPE_TREE);
@@ -56,7 +56,7 @@
// Use the root as tree to get some sort of validation at least...
getTigerTree() = TigerTree(qi.getSize(), qi.getSize(), getTTH());
setTreeValid(true);
- setSegment(qi.getNextSegment(getTigerTree().getBlockSize(), 0, 0));
+ setSegment(qi.getNextSegment(getTigerTree().getBlockSize(), 0));
}
if(getType() == TYPE_FILE) {
Modified: dcplusplus/trunk/dcpp/DownloadManager.cpp
===================================================================
--- dcplusplus/trunk/dcpp/DownloadManager.cpp 2008-04-24 13:25:00 UTC (rev 1193)
+++ dcplusplus/trunk/dcpp/DownloadManager.cpp 2008-04-24 13:26:29 UTC (rev 1194)
@@ -327,9 +327,7 @@
}
aSource->setSpeed(d->getAverageSpeed());
- if(aSource->getChunkSize() < d->getSize()) {
- aSource->setChunkSize(d->getSize());
- }
+ aSource->updateChunkSize(d->getTigerTree().getBlockSize(), d->getSize(), GET_TICK() - d->getStart());
dcdebug("Download finished: %s, size " I64_FMT ", downloaded " I64_FMT "\n", d->getPath().c_str(), d->getSize(), d->getPos());
Modified: dcplusplus/trunk/dcpp/QueueItem.cpp
===================================================================
--- dcplusplus/trunk/dcpp/QueueItem.cpp 2008-04-24 13:25:00 UTC (rev 1193)
+++ dcplusplus/trunk/dcpp/QueueItem.cpp 2008-04-24 13:26:29 UTC (rev 1194)
@@ -84,10 +84,8 @@
return tempTarget;
}
-// # ms we should aim for per segment
-static const int64_t SEGMENT_TIME = 60*1000;
-Segment QueueItem::getNextSegment(int64_t blockSize, double lastSpeed, int64_t lastSize) const {
+Segment QueueItem::getNextSegment(int64_t blockSize, int64_t wantedSize) const {
if(getSize() == -1 || blockSize == 0) {
return Segment(0, -1);
}
@@ -100,22 +98,12 @@
int64_t targetSize;
if(BOOLSETTING(SEGMENTED_DL)) {
- targetSize = std::max(blockSize, lastSize);
- if(lastSpeed > 0) {
- double msecs = 1000 * targetSize / lastSpeed;
- if(msecs < SEGMENT_TIME / 4) {
- targetSize *= 2;
- } else if(msecs < SEGMENT_TIME / 1.25) {
- targetSize += blockSize;
- } else if(msecs > SEGMENT_TIME * 4) {
- targetSize = std::max(blockSize, targetSize / 2);
- } else if(msecs > SEGMENT_TIME * 1.25) {
- targetSize = std::max(blockSize, targetSize - blockSize);
- }
+ if(wantedSize > blockSize) {
+ // Round off to nearest block size
+ targetSize = ((wantedSize + (blockSize / 2)) / blockSize) * blockSize;
+ } else {
+ targetSize = blockSize;
}
-
- // Round off to nearest block size
- targetSize = ((targetSize + blockSize / 2) / blockSize) * blockSize;
} else {
targetSize = remaining;
}
Modified: dcplusplus/trunk/dcpp/QueueItem.h
===================================================================
--- dcplusplus/trunk/dcpp/QueueItem.h 2008-04-24 13:25:00 UTC (rev 1193)
+++ dcplusplus/trunk/dcpp/QueueItem.h 2008-04-24 13:26:29 UTC (rev 1194)
@@ -155,7 +155,7 @@
DownloadList& getDownloads() { return downloads; }
/** Next segment that is not done and not being downloaded, zero-sized segment returned if there is none is found */
- Segment getNextSegment(int64_t blockSize, double lastSpeed, int64_t lastSize) const;
+ Segment getNextSegment(int64_t blockSize, int64_t wantedSize) const;
void addSegment(const Segment& segment);
Modified: dcplusplus/trunk/dcpp/QueueManager.cpp
===================================================================
--- dcplusplus/trunk/dcpp/QueueManager.cpp 2008-04-24 13:25:00 UTC (rev 1193)
+++ dcplusplus/trunk/dcpp/QueueManager.cpp 2008-04-24 13:26:29 UTC (rev 1194)
@@ -192,7 +192,7 @@
}
}
-QueueItem* QueueManager::UserQueue::getNext(const UserPtr& aUser, QueueItem::Priority minPrio, double lastSpeed, int64_t lastSize) {
+QueueItem* QueueManager::UserQueue::getNext(const UserPtr& aUser, QueueItem::Priority minPrio, int64_t wantedSize) {
int p = QueueItem::LAST - 1;
do {
@@ -213,7 +213,7 @@
int64_t blockSize = HashManager::getInstance()->getBlockSize(qi->getTTH());
if(blockSize == 0)
blockSize = qi->getSize();
- if(qi->getNextSegment(blockSize, lastSpeed, lastSize).getSize() == 0) {
+ if(qi->getNextSegment(blockSize, wantedSize).getSize() == 0) {
dcdebug("No segment for %s in %s, block " I64_FMT "\n", aUser->getCID().toBase32().c_str(), qi->getTarget().c_str(), blockSize);
continue;
}
@@ -736,7 +736,7 @@
return new Download(aSource, pi->second);
}
- QueueItem* q = userQueue.getNext(aUser);
+ QueueItem* q = userQueue.getNext(aUser, QueueItem::LOWEST, aSource.getChunkSize());
if(!q) {
dcdebug("none\n");
Modified: dcplusplus/trunk/dcpp/QueueManager.h
===================================================================
--- dcplusplus/trunk/dcpp/QueueManager.h 2008-04-24 13:25:00 UTC (rev 1193)
+++ dcplusplus/trunk/dcpp/QueueManager.h 2008-04-24 13:26:29 UTC (rev 1194)
@@ -16,8 +16,8 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#if !defined(QUEUE_MANAGER_H)
-#define QUEUE_MANAGER_H
+#ifndef DCPLUSPLUS_DCPP_QUEUE_MANAGER_H
+#define DCPLUSPLUS_DCPP_QUEUE_MANAGER_H
#include "TimerManager.h"
@@ -178,7 +178,7 @@
public:
void add(QueueItem* qi);
void add(QueueItem* qi, const UserPtr& aUser);
- QueueItem* getNext(const UserPtr& aUser, QueueItem::Priority minPrio = QueueItem::LOWEST, double lastSpeed = 0, int64_t lastSize = 0);
+ QueueItem* getNext(const UserPtr& aUser, QueueItem::Priority minPrio = QueueItem::LOWEST, int64_t wantedSize = 0);
QueueItem* getRunning(const UserPtr& aUser);
void addDownload(QueueItem* qi, Download* d);
void removeDownload(QueueItem* qi, const UserPtr& d);
Modified: dcplusplus/trunk/dcpp/Transfer.cpp
===================================================================
--- dcplusplus/trunk/dcpp/Transfer.cpp 2008-04-24 13:25:00 UTC (rev 1193)
+++ dcplusplus/trunk/dcpp/Transfer.cpp 2008-04-24 13:26:29 UTC (rev 1194)
@@ -39,6 +39,8 @@
void Transfer::tick() {
Lock l(cs);
+ uint64_t t = GET_TICK();
+
if(samples.size() >= 1) {
int64_t tdiff = samples.back().first - samples.front().first;
if((tdiff / 1000) > MIN_SECS) {
@@ -46,9 +48,18 @@
samples.pop_front();
}
}
+
}
- samples.push_back(std::make_pair(GET_TICK(), pos));
+ if(samples.size() > 1) {
+ if(samples.back().second == pos) {
+ // Position hasn't changed, just update the time
+ samples.back().first = t;
+ return;
+ }
+ }
+
+ samples.push_back(std::make_pair(t, pos));
}
double Transfer::getAverageSpeed() const {
Modified: dcplusplus/trunk/dcpp/UserConnection.cpp
===================================================================
--- dcplusplus/trunk/dcpp/UserConnection.cpp 2008-04-24 13:25:00 UTC (rev 1193)
+++ dcplusplus/trunk/dcpp/UserConnection.cpp 2008-04-24 13:26:29 UTC (rev 1194)
@@ -204,4 +204,43 @@
delete this;
}
+// # ms we should aim for per segment
+static const int64_t SEGMENT_TIME = 60*1000;
+static const int64_t MIN_CHUNK_SIZE = 64*1024;
+
+void UserConnection::updateChunkSize(int64_t leafSize, int64_t lastChunk, uint64_t ticks) {
+
+ if(chunkSize == 0) {
+ chunkSize = std::max((int64_t)64*1024, std::min(lastChunk, (int64_t)1024*1024));
+ return;
+ }
+
+ if(ticks <= 10) {
+ // Can't rely on such fast transfers - double
+ chunkSize *= 2;
+ return;
+ }
+
+ double lastSpeed = (1000. * lastChunk) / ticks;
+
+ int64_t targetSize = chunkSize;
+
+ // How long current chunk size would take with the last speed...
+ double msecs = 1000 * targetSize / lastSpeed;
+
+ if(msecs < SEGMENT_TIME / 4) {
+ targetSize *= 2;
+ } else if(msecs < SEGMENT_TIME / 1.25) {
+ targetSize += leafSize;
+ } else if(msecs < SEGMENT_TIME * 1.25) {
+ // We're close to our target size - don't change it
+ } else if(msecs < SEGMENT_TIME * 4) {
+ targetSize = std::max(MIN_CHUNK_SIZE, targetSize - chunkSize);
+ } else {
+ targetSize = std::max(MIN_CHUNK_SIZE, targetSize / 2);
+ }
+
+ chunkSize = targetSize;
+}
+
} // namespace dcpp
Modified: dcplusplus/trunk/dcpp/UserConnection.h
===================================================================
--- dcplusplus/trunk/dcpp/UserConnection.h 2008-04-24 13:25:00 UTC (rev 1193)
+++ dcplusplus/trunk/dcpp/UserConnection.h 2008-04-24 13:26:29 UTC (rev 1194)
@@ -162,14 +162,17 @@
// Ignore any other ADC commands for now
template<typename T> void handle(T , const AdcCommand& ) { }
+ int64_t getChunkSize() const { return chunkSize; }
+ void updateChunkSize(int64_t leafSize, int64_t lastChunk, uint64_t ticks);
+
GETSET(string, hubUrl, HubUrl);
GETSET(string, token, Token);
GETSET(string, encoding, Encoding);
GETSET(States, state, State);
GETSET(uint64_t, lastActivity, LastActivity);
GETSET(double, speed, Speed);
- GETSET(int64_t, chunkSize, ChunkSize);
private:
+ int64_t chunkSize;
BufferedSocket* socket;
bool secure;
UserPtr user;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|