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. |