|
From: <arn...@us...> - 2007-11-09 22:45:48
|
Revision: 897
http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=897&view=rev
Author: arnetheduck
Date: 2007-11-09 14:45:47 -0800 (Fri, 09 Nov 2007)
Log Message:
-----------
Minimum segment size
Modified Paths:
--------------
dcplusplus/trunk/dcpp/QueueItem.cpp
dcplusplus/trunk/dcpp/SettingsManager.cpp
dcplusplus/trunk/dcpp/SettingsManager.h
dcplusplus/trunk/dcpp/StringDefs.h
dcplusplus/trunk/dcpp/UserConnection.cpp
dcplusplus/trunk/dcpp/UserConnection.h
dcplusplus/trunk/win32/Advanced3Page.cpp
dcplusplus/trunk/win32/DCPlusPlus.rc
dcplusplus/trunk/win32/resource.h
Modified: dcplusplus/trunk/dcpp/QueueItem.cpp
===================================================================
--- dcplusplus/trunk/dcpp/QueueItem.cpp 2007-11-09 22:04:20 UTC (rev 896)
+++ dcplusplus/trunk/dcpp/QueueItem.cpp 2007-11-09 22:45:47 UTC (rev 897)
@@ -89,9 +89,12 @@
return Segment(0, -1);
}
int64_t start = 0;
+ int64_t maxSize = std::max(blockSize, static_cast<int64_t>(SETTING(MIN_SEGMENT_SIZE) * 1024));
+ maxSize = ((maxSize + blockSize - 1) / blockSize) * blockSize; // Make sure we're on an even block boundary
+ int64_t curSize = maxSize;
while(start < getSize()) {
- int64_t end = std::min(getSize(), start + blockSize);
+ int64_t end = std::min(getSize(), start + curSize);
Segment block(start, end - start);
bool overlaps = false;
for(SegmentIter i = done.begin(); !overlaps && i != done.end(); ++i) {
@@ -111,7 +114,12 @@
return block;
}
- start = end;
+ if(curSize > blockSize) {
+ curSize -= blockSize;
+ } else {
+ start = end;
+ curSize = maxSize;
+ }
}
return Segment(0, 0);
Modified: dcplusplus/trunk/dcpp/SettingsManager.cpp
===================================================================
--- dcplusplus/trunk/dcpp/SettingsManager.cpp 2007-11-09 22:04:20 UTC (rev 896)
+++ dcplusplus/trunk/dcpp/SettingsManager.cpp 2007-11-09 22:45:47 UTC (rev 897)
@@ -58,8 +58,7 @@
"MainWindowSizeX", "MainWindowSizeY", "MainWindowPosX", "MainWindowPosY", "AutoAway",
"SocksPort", "SocksResolve", "KeepLists", "AutoKick", "QueueFrameShowTree",
"CompressTransfers", "ShowProgressBars", "SFVCheck",
- "MaxCompression", "AntiFrag", "NoAwayMsgToBots",
- "SkipZeroByte", "AdlsBreakOnFirst",
+ "MaxCompression", "AntiFrag", "NoAwayMsgToBots", "SkipZeroByte", "AdlsBreakOnFirst",
"HubUserCommands", "AutoSearchAutoMatch", "DownloadBarColor", "UploadBarColor", "LogSystem",
"LogFilelistTransfers", "SendUnknownCommands", "MaxHashSpeed", "OpenUserCmdHelp",
"GetUserCountry", "FavShowJoins", "LogStatusMessages", "ShowStatusbar",
@@ -77,7 +76,7 @@
"OpenWaitingUsers", "BoldWaitingUsers", "OpenSystemLog", "BoldSystemLog", "AutoRefreshTime",
"UseTLS", "AutoSearchLimit", "AltSortOrder", "AutoKickNoFavs", "PromptPassword", "SpyFrameIgnoreTthSearches",
"DontDlAlreadyQueued", "MaxCommandLength", "AllowUntrustedHubs", "AllowUntrustedClients",
- "TLSPort", "FastHash", "SortFavUsersFirst", "ShowShellMenu",
+ "TLSPort", "FastHash", "SortFavUsersFirst", "ShowShellMenu", "MinSegmentSize",
"SENTRY",
// Int64
"TotalUpload", "TotalDownload",
@@ -270,6 +269,7 @@
setDefault(FAST_HASH, true);
setDefault(SORT_FAVUSERS_FIRST, false);
setDefault(SHOW_SHELL_MENU, false);
+ setDefault(MIN_SEGMENT_SIZE, 1024);
#ifdef _WIN32
setDefault(MAIN_WINDOW_STATE, SW_SHOWNORMAL);
Modified: dcplusplus/trunk/dcpp/SettingsManager.h
===================================================================
--- dcplusplus/trunk/dcpp/SettingsManager.h 2007-11-09 22:04:20 UTC (rev 896)
+++ dcplusplus/trunk/dcpp/SettingsManager.h 2007-11-09 22:45:47 UTC (rev 897)
@@ -70,8 +70,7 @@
MAIN_WINDOW_SIZE_X, MAIN_WINDOW_SIZE_Y, MAIN_WINDOW_POS_X, MAIN_WINDOW_POS_Y, AUTO_AWAY,
SOCKS_PORT, SOCKS_RESOLVE, KEEP_LISTS, AUTO_KICK, QUEUEFRAME_SHOW_TREE,
COMPRESS_TRANSFERS, SHOW_PROGRESS_BARS, SFV_CHECK,
- MAX_COMPRESSION, ANTI_FRAG, NO_AWAYMSG_TO_BOTS,
- SKIP_ZERO_BYTE, ADLS_BREAK_ON_FIRST,
+ MAX_COMPRESSION, ANTI_FRAG, NO_AWAYMSG_TO_BOTS, SKIP_ZERO_BYTE, ADLS_BREAK_ON_FIRST,
HUB_USER_COMMANDS, AUTO_SEARCH_AUTO_MATCH, UPLOAD_BAR_COLOR, DOWNLOAD_BAR_COLOR, LOG_SYSTEM,
LOG_FILELIST_TRANSFERS, SEND_UNKNOWN_COMMANDS, MAX_HASH_SPEED, OPEN_USER_CMD_HELP,
GET_USER_COUNTRY, FAV_SHOW_JOINS, LOG_STATUS_MESSAGES, SHOW_STATUSBAR,
@@ -89,7 +88,7 @@
OPEN_WAITING_USERS, BOLD_WAITING_USERS, OPEN_SYSTEM_LOG, BOLD_SYSTEM_LOG, AUTO_REFRESH_TIME,
USE_TLS, AUTO_SEARCH_LIMIT, ALT_SORT_ORDER, AUTO_KICK_NO_FAVS, PROMPT_PASSWORD, SPY_FRAME_IGNORE_TTH_SEARCHES,
DONT_DL_ALREADY_QUEUED, MAX_COMMAND_LENGTH, ALLOW_UNTRUSTED_HUBS, ALLOW_UNTRUSTED_CLIENTS,
- TLS_PORT, FAST_HASH, SORT_FAVUSERS_FIRST, SHOW_SHELL_MENU,
+ TLS_PORT, FAST_HASH, SORT_FAVUSERS_FIRST, SHOW_SHELL_MENU, MIN_SEGMENT_SIZE,
INT_LAST };
enum Int64Setting { INT64_FIRST = INT_LAST + 1,
Modified: dcplusplus/trunk/dcpp/StringDefs.h
===================================================================
--- dcplusplus/trunk/dcpp/StringDefs.h 2007-11-09 22:04:20 UTC (rev 896)
+++ dcplusplus/trunk/dcpp/StringDefs.h 2007-11-09 22:45:47 UTC (rev 897)
@@ -467,6 +467,7 @@
SETTINGS_MAX_FILELIST_SIZE, // "Max filelist size"
SETTINGS_MAX_HASH_SPEED, // "Max hash speed"
SETTINGS_MAX_TAB_ROWS, // "Max tab rows"
+ SETTINGS_MIN_SEGMENT_SIZE, // "Min segment size"
SETTINGS_MINIMIZE_TRAY, // "Minimize to tray"
SETTINGS_NAME, // "Name"
SETTINGS_NETWORK, // "Connection settings"
Modified: dcplusplus/trunk/dcpp/UserConnection.cpp
===================================================================
--- dcplusplus/trunk/dcpp/UserConnection.cpp 2007-11-09 22:04:20 UTC (rev 896)
+++ dcplusplus/trunk/dcpp/UserConnection.cpp 2007-11-09 22:45:47 UTC (rev 897)
@@ -158,6 +158,21 @@
send(c);
}
+void UserConnection::sup(const StringList& features) {
+ AdcCommand c(AdcCommand::CMD_SUP);
+ for(StringIterC i = features.begin(); i != features.end(); ++i)
+ c.addParam(*i);
+ send(c);
+}
+
+void UserConnection::supports(const StringList& feat) {
+ string x;
+ for(StringList::const_iterator i = feat.begin(); i != feat.end(); ++i) {
+ x+= *i + ' ';
+ }
+ send("$Supports " + x + '|');
+}
+
void UserConnection::on(Connected) throw() {
lastActivity = GET_TICK();
fire(UserConnectionListener::Connected(), this);
Modified: dcplusplus/trunk/dcpp/UserConnection.h
===================================================================
--- dcplusplus/trunk/dcpp/UserConnection.h 2007-11-09 22:04:20 UTC (rev 896)
+++ dcplusplus/trunk/dcpp/UserConnection.h 2007-11-09 22:45:47 UTC (rev 897)
@@ -109,27 +109,15 @@
void listLen(const string& aLength) { send("$ListLen " + aLength + '|'); }
void maxedOut() { isSet(FLAG_NMDC) ? send("$MaxedOut|") : send(AdcCommand(AdcCommand::SEV_RECOVERABLE, AdcCommand::ERROR_SLOTS_FULL, "Slots full")); }
void fileNotAvail(const std::string& msg = FILE_NOT_AVAILABLE) { isSet(FLAG_NMDC) ? send("$Error " + msg + "|") : send(AdcCommand(AdcCommand::SEV_RECOVERABLE, AdcCommand::ERROR_FILE_NOT_AVAILABLE, msg)); }
+ void supports(const StringList& feat);
// ADC Stuff
- void sup(const StringList& features) {
- AdcCommand c(AdcCommand::CMD_SUP);
- for(StringIterC i = features.begin(); i != features.end(); ++i)
- c.addParam(*i);
- send(c);
- }
+ void sup(const StringList& features);
void inf(bool withToken);
void get(const string& aType, const string& aName, const int64_t aStart, const int64_t aBytes) { send(AdcCommand(AdcCommand::CMD_GET).addParam(aType).addParam(aName).addParam(Util::toString(aStart)).addParam(Util::toString(aBytes))); }
void snd(const string& aType, const string& aName, const int64_t aStart, const int64_t aBytes) { send(AdcCommand(AdcCommand::CMD_SND).addParam(aType).addParam(aName).addParam(Util::toString(aStart)).addParam(Util::toString(aBytes))); }
-
void send(const AdcCommand& c) { send(c.toString(0, isSet(FLAG_NMDC))); }
- void supports(const StringList& feat) {
- string x;
- for(StringList::const_iterator i = feat.begin(); i != feat.end(); ++i) {
- x+= *i + ' ';
- }
- send("$Supports " + x + '|');
- }
void setDataMode(int64_t aBytes = -1) { dcassert(socket); socket->setDataMode(aBytes); }
void setLineMode(size_t rollback) { dcassert(socket); socket->setLineMode(rollback); }
Modified: dcplusplus/trunk/win32/Advanced3Page.cpp
===================================================================
--- dcplusplus/trunk/win32/Advanced3Page.cpp 2007-11-09 22:04:20 UTC (rev 896)
+++ dcplusplus/trunk/win32/Advanced3Page.cpp 2007-11-09 22:45:47 UTC (rev 897)
@@ -39,6 +39,7 @@
{ IDC_SETTINGS_MB, ResourceManager::MiB },
{ IDC_SETTINGS_AUTO_REFRESH_TIME, ResourceManager::SETTINGS_AUTO_REFRESH_TIME },
{ IDC_SETTINGS_AUTO_SEARCH_LIMIT, ResourceManager::SETTINGS_AUTO_SEARCH_LIMIT },
+ { IDC_SETTINGS_MIN_SEGMENT_SIZE, ResourceManager::SETTINGS_MIN_SEGMENT_SIZE },
{ 0, ResourceManager::SETTINGS_AUTO_AWAY }
};
@@ -55,6 +56,7 @@
{ IDC_PRIVATE_ID, SettingsManager::PRIVATE_ID, PropPage::T_STR },
{ IDC_AUTO_REFRESH_TIME, SettingsManager::AUTO_REFRESH_TIME, PropPage::T_INT },
{ IDC_AUTO_SEARCH_LIMIT, SettingsManager::AUTO_SEARCH_LIMIT, PropPage::T_INT },
+ { IDC_MIN_SEGMENT_SIZE, SettingsManager::MIN_SEGMENT_SIZE, PropPage::T_INT },
{ 0, 0, PropPage::T_END }
};
Modified: dcplusplus/trunk/win32/DCPlusPlus.rc
===================================================================
--- dcplusplus/trunk/win32/DCPlusPlus.rc 2007-11-09 22:04:20 UTC (rev 896)
+++ dcplusplus/trunk/win32/DCPlusPlus.rc 2007-11-09 22:45:47 UTC (rev 897)
@@ -399,38 +399,41 @@
BEGIN
RTEXT "Rollback",IDC_SETTINGS_ROLLBACK,7,10,57,8
EDITTEXT IDC_ROLLBACK,69,7,45,14,ES_AUTOHSCROLL | ES_NUMBER
- LTEXT "B",IDC_SETTINGS_B,117,10,8,8
- RTEXT "Max Hash Speed",IDC_SETTINGS_MAX_HASH_SPEED,7,27,57,8,0,WS_EX_RIGHT
+ LTEXT "B",IDC_SETTINGS_B,117,10,16,8
+ RTEXT "Max Hash Speed",IDC_SETTINGS_MAX_HASH_SPEED,7,27,57,8
EDITTEXT IDC_MAX_HASH_SPEED,69,24,45,14,ES_AUTOHSCROLL
- LTEXT "MiB/s",IDC_SETTINGS_MBS,117,27,20,8
+ LTEXT "MiB/s",IDC_SETTINGS_MBS,117,27,16,8
RTEXT "PM history",IDC_SETTINGS_PM_HISTORY,7,44,57,8
EDITTEXT IDC_SHOW_LAST_LINES_LOG,69,41,45,14,ES_AUTOHSCROLL
RTEXT "Mini slot size",IDC_SETTINGS_TEXT_MINISLOT,7,61,57,8
EDITTEXT IDC_SET_MINISLOT_SIZE,69,58,45,14,ES_AUTOHSCROLL
- LTEXT "KiB",IDC_SETTINGS_KB2,117,61,14,8
+ LTEXT "KiB",IDC_SETTINGS_KB2,117,61,16,8
RTEXT "Max filelist size",IDC_SETTINGS_MAX_FILELIST_SIZE,7,78,57,8
EDITTEXT IDC_MAX_FILELIST_SIZE,69,75,45,14,ES_AUTOHSCROLL
- LTEXT "MiB",IDC_SETTINGS_MB,117,78,14,8
- LTEXT "PID",IDC_STATIC,52,95,12,8
+ LTEXT "MiB",IDC_SETTINGS_MB,117,78,16,8
+ RTEXT "PID",IDC_STATIC,7,95,57,8
EDITTEXT IDC_PRIVATE_ID,69,92,45,14,ES_AUTOHSCROLL
- LTEXT "Auto refresh time",IDC_SETTINGS_AUTO_REFRESH_TIME,7,113,57,8
+ LTEXT "Auto refresh time",IDC_SETTINGS_AUTO_REFRESH_TIME,7,112,57,8
EDITTEXT IDC_AUTO_REFRESH_TIME,69,110,45,14,ES_AUTOHSCROLL
- RTEXT "File write buffer",IDC_SETTINGS_WRITE_BUFFER,139,10,65,8
+ RTEXT "File write buffer",IDC_SETTINGS_WRITE_BUFFER,134,10,70,8
EDITTEXT IDC_BUFFERSIZE,208,7,41,14,ES_AUTOHSCROLL
- LTEXT "KiB",IDC_SETTINGS_KB,252,10,10,8
- RTEXT "Search history",IDC_SETTINGS_SEARCH_HISTORY,139,44,65,8
+ LTEXT "KiB",IDC_SETTINGS_KB,252,10,16,8
+ RTEXT "Auto-search limit",IDC_SETTINGS_AUTO_SEARCH_LIMIT,134,27,70,8
+ EDITTEXT IDC_AUTO_SEARCH_LIMIT,208,24,41,14,ES_AUTOHSCROLL
+ RTEXT "Search history",IDC_SETTINGS_SEARCH_HISTORY,134,44,70,8
EDITTEXT IDC_SEARCH_HISTORY,208,41,41,14,ES_AUTOHSCROLL
CONTROL "",IDC_SEARCH_HISTORY_SPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,246,41,11,14
- RTEXT "Bind address",IDC_SETTINGS_BIND_ADDRESS,139,61,65,8
+ RTEXT "Bind address",IDC_SETTINGS_BIND_ADDRESS,134,61,70,8
EDITTEXT IDC_BIND_ADDRESS,208,58,41,14,ES_AUTOHSCROLL
- RTEXT "Socket read buffer",IDC_SETTINGS_SOCKET_IN_BUFFER,131,78,73,8
+ RTEXT "Socket read buffer",IDC_SETTINGS_SOCKET_IN_BUFFER,134,78,70,8
EDITTEXT IDC_SOCKET_IN_BUFFER,208,75,41,14,ES_AUTOHSCROLL
- LTEXT "B",IDC_STATIC,252,78,8,8
- RTEXT "Socket write buffer",IDC_SETTINGS_SOCKET_OUT_BUFFER,128,96,76,8
+ LTEXT "B",IDC_STATIC,252,78,16,8
+ RTEXT "Socket write buffer",IDC_SETTINGS_SOCKET_OUT_BUFFER,134,95,70,8
EDITTEXT IDC_SOCKET_OUT_BUFFER,208,93,41,14,ES_AUTOHSCROLL
- LTEXT "B",IDC_STATIC,252,96,8,8
- EDITTEXT IDC_AUTO_SEARCH_LIMIT,208,24,41,14,ES_AUTOHSCROLL
- LTEXT "Auto-search limit",IDC_SETTINGS_AUTO_SEARCH_LIMIT,148,26,56,13
+ LTEXT "B",IDC_STATIC,252,95,16,8
+ RTEXT "Min segment size",IDC_SETTINGS_MIN_SEGMENT_SIZE,134,112,70,8
+ EDITTEXT IDC_MIN_SEGMENT_SIZE,208,110,41,14,ES_AUTOHSCROLL
+ LTEXT "KiB",IDC_STATIC,252,112,16,8
END
IDD_NETWORKPAGE DIALOGEX 100, 0, 275, 225
Modified: dcplusplus/trunk/win32/resource.h
===================================================================
--- dcplusplus/trunk/win32/resource.h 2007-11-09 22:04:20 UTC (rev 896)
+++ dcplusplus/trunk/win32/resource.h 2007-11-09 22:45:47 UTC (rev 897)
@@ -431,5 +431,7 @@
#define IDC_WINDOWS_OPTIONS 2289
#define IDC_WINDOWS_STARTUP 2290
#define IDC_SETTINGS_PAGES 2291
+#define IDC_SETTINGS_MIN_SEGMENT_SIZE 2292
+#define IDC_MIN_SEGMENT_SIZE 2293
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|