mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-08-15 22:52:31 +00:00
* A seperate variable for hashing state, now properly restarts hashing
after restart. * Stop a torrent and show a message when it finishes the final hash-check and finds some chunks incomplete. This prevents full disk from causing a torrent to go into an infinit loop of re-downloading the data. * Moved various slots from core::Manager to core::DownloadList. git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@679 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
@@ -155,6 +155,16 @@ VariableObject::set(const torrent::Object& arg) {
|
||||
// New and prettified.
|
||||
//
|
||||
|
||||
const torrent::Object&
|
||||
VariableVoidSlot::get() {
|
||||
return m_cache;
|
||||
}
|
||||
|
||||
void
|
||||
VariableVoidSlot::set(const torrent::Object& arg) {
|
||||
m_slotSet();
|
||||
}
|
||||
|
||||
const torrent::Object&
|
||||
VariableValueSlot::get() {
|
||||
m_cache = m_slotGet() / m_unit;
|
||||
|
||||
@@ -102,6 +102,26 @@ private:
|
||||
// New and pretty.
|
||||
//
|
||||
|
||||
class VariableVoidSlot : public Variable {
|
||||
public:
|
||||
typedef rak::function0<void> slot_set_type;
|
||||
|
||||
VariableVoidSlot(slot_set_type::base_type* slotSet) {
|
||||
m_slotSet.set(slotSet);
|
||||
}
|
||||
|
||||
virtual const torrent::Object& get();
|
||||
virtual void set(const torrent::Object& arg);
|
||||
|
||||
private:
|
||||
slot_set_type m_slotSet;
|
||||
|
||||
// Store the cache here to avoid unnessesary copying and such. This
|
||||
// should not result in any unresonable memory usage since few
|
||||
// strings will be very large.
|
||||
torrent::Object m_cache;
|
||||
};
|
||||
|
||||
class VariableValueSlot : public Variable {
|
||||
public:
|
||||
typedef rak::function0<value_type> slot_get_type;
|
||||
@@ -160,7 +180,6 @@ private:
|
||||
torrent::Object m_cache;
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -198,15 +198,4 @@ VariableMap::process_file(const std::string& path) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
VariableMap::process_file_throw(const std::string& path) {
|
||||
if (!process_file(path))
|
||||
throw torrent::input_error("Could not open option file: " + path);
|
||||
}
|
||||
|
||||
void
|
||||
VariableMap::process_file_nothrow(const std::string& path) {
|
||||
process_file(path);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -77,8 +77,6 @@ public:
|
||||
void process_command(const std::string& command);
|
||||
void process_stream(std::istream* str);
|
||||
bool process_file(const std::string& path);
|
||||
void process_file_throw(const std::string& path);
|
||||
void process_file_nothrow(const std::string& path);
|
||||
|
||||
private:
|
||||
VariableMap(const VariableMap&);
|
||||
|
||||
Reference in New Issue
Block a user