This PR fixes the issues with not correctly loading and disposing modules.
Prior to this PR, there would be only a single instance of each module loaded, which would be configured and later disposed, meaning that the same instance would be used after being disposed, and disposed multiple times.
This mostly worked, but it could carry configuration details over between unrelated runs.
This fixes#6314
* Simplified task control by having all logic in a single class and using async control mechanism
* Fixed the tests
* Made the marking of a backup partial explicitly communicated if the enumeration process is stopped.
* Added support for pausing active transfers
* Introduced transfer token to abort operations.
* Updated the way LiveControl is emitting events.
* Retains the paused state of the server across reboots, this fixes#5760.
* Reworked the way throttle speeds are propagated through LiveControls.
* Added option to pause transfers in the UI.
* Removed throttle settings from the LiveControls class so it is exclusively handled by the ApplicationSettings.
* Removed `thread-priority` as it does not work at all when tasks are used.
* Fixed the stop dialog and API to only support stop and abort.
* Removed unused variables
This works by parsing the stdout stream, line by line, looking for lines that start with the prefixes LOG:WARN, LOG:ERROR, LOG:INFO and forwarding them to the Log/Report.
In a script that could be used with a simple echo "LOG:WARN Some warning" or even if its an executable application, if it outputs to sdtout lines with the prefix, it will of course also be captured.
Previously, any exception, including OperationAbortExceptions thrown due
to run-script-before exit codes, would result in a Fatal parsed result.
This fixes#4222.
Previously, we were declaring that the m_remoteurl field be passed by
reference to the Execute method. However, the OnStart method declared
that the remoteurl variable was to be passed by reference. As a result,
the caller (Controller.SetupCommonOptions) method never received the
updated value.
Now, the variables being passed by reference are made consistent.
This fixes#3651.
The logic is currently that the template is scanned for potential values, and those that are found are reported in the extra tag for the JSON.
A bit clumsy, but allows the user to choose specific fields to include in the reported data.
Integrated changes to support log-lines and to have a common shared module for reporters
# Conflicts:
# Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj
# Duplicati/Library/Modules/Builtin/RunScript.cs
# Duplicati/Library/Modules/Builtin/SendHttpMessage.cs
# Duplicati/Library/Modules/Builtin/SendJabberMessage.cs
# Duplicati/Library/Modules/Builtin/SendMail.cs
Change the logic for how the log data is included. It is now added as log lines _after_ the normal messages.
Added support for limiting the number of log lines sent.
Added support for setting the log levels on the modules.
Added support for setting a log filter on the modules.
Added support for sending log data as JSON from the http module.
InvariantCulture is useful when comparing / sorting human language strings in a culturely correct way. It handles things like accented letters in a way that makes sense to humans (e.g., 'a' should be sorted next to 'á', rather than after 'z').
Ordinal looks just at the raw code points of the characters. As such, it is recommended for use in cases when comparing system strings (file paths, command line parameters, config settings, etc.). Since it doesn't need to use the culture specific sorting rules, this method can often be faster.
For more information, see https://stackoverflow.com/questions/492799/difference-between-invariantculture-and-ordinal-string-comparison (and other related questions)
Still needs a work over in terms of error handling, progress reporting, warning output, refactoring etc.
Also misses the volume reuse/reclaim algorithms.
But it passes the unit tests now, with and without a local database.
git-svn-id: https://duplicati.googlecode.com/svn/sandboxes/Kenneth/ForestHash@1526 59da171f-624f-0410-aa54-27559c288bec