SyncOptions opt;
opt.fillFromEnvironmentVariables();
opt.verifyChunkSizes();
- SyncEngine engine(account, options.source_dir, folder, &db);
+ SyncEngine engine(account, options.source_dir, opt, folder, &db);
engine.setIgnoreHiddenFiles(options.ignoreHiddenFiles);
engine.setNetworkLimits(options.uplimit, options.downlimit);
QObject::connect(&engine, &SyncEngine::finished,
_syncResult.setFolder(_definition.alias);
- _engine.reset(new SyncEngine(_accountState->account(), path(), remotePath(), &_journal));
+ _engine.reset(new SyncEngine(_accountState->account(), path(), initializeSyncOptions(), remotePath(), &_journal));
// pass the setting if hidden files are to be ignored, will be read in csync_update
_engine->setIgnoreHiddenFiles(_definition.ignoreHiddenFiles);
}
setDirtyNetworkLimits();
- setSyncOptions();
+ syncEngine().setSyncOptions(initializeSyncOptions());
static std::chrono::milliseconds fullLocalDiscoveryInterval = []() {
auto interval = ConfigFile().fullLocalDiscoveryInterval();
}
}
-void Folder::setSyncOptions()
+SyncOptions Folder::initializeSyncOptions() const
{
SyncOptions opt;
ConfigFile cfgFile;
opt.fillFromEnvironmentVariables();
opt.verifyChunkSizes();
- _engine->setSyncOptions(opt);
+ return opt;
}
void Folder::setDirtyNetworkLimits()
void checkLocalPath();
- void setSyncOptions();
+ SyncOptions initializeSyncOptions() const;
enum LogStatus {
LogStatusRemove,
}
_db = new SyncJournalDb(_tmp.fileName(), this);
- _engine = new SyncEngine(account->account(), _localPath.endsWith(QLatin1Char('/')) ? _localPath : _localPath + QLatin1Char('/'), _remotePath, _db);
+
+ SyncOptions opt;
+ opt.fillFromEnvironmentVariables();
+ opt.verifyChunkSizes();
+ _engine = new SyncEngine(account->account(), _localPath.endsWith(QLatin1Char('/')) ? _localPath : _localPath + QLatin1Char('/'), opt, _remotePath, _db);
_engine->setParent(_db);
connect(_engine, &OCC::SyncEngine::itemCompleted, this, [this](const OCC::SyncFileItemPtr item) {
// doc in header
std::chrono::milliseconds SyncEngine::minimumFileAgeForUpload(2000);
-SyncEngine::SyncEngine(AccountPtr account, const QString &localPath,
- const QString &remotePath, OCC::SyncJournalDb *journal)
+SyncEngine::SyncEngine(AccountPtr account,
+ const QString &localPath,
+ const SyncOptions &syncOptions,
+ const QString &remotePath,
+ OCC::SyncJournalDb *journal)
: _account(account)
, _needsUpdate(false)
, _syncRunning(false)
, _hasRemoveFile(false)
, _uploadLimit(0)
, _downloadLimit(0)
+ , _syncOptions(syncOptions)
, _anotherSyncNeeded(NoFollowUpSync)
{
qRegisterMetaType<SyncFileItem>("SyncFileItem");
{
Q_OBJECT
public:
- SyncEngine(AccountPtr account, const QString &localPath,
- const QString &remotePath, SyncJournalDb *journal);
+ SyncEngine(AccountPtr account,
+ const QString &localPath,
+ const SyncOptions &syncOptions,
+ const QString &remotePath,
+ SyncJournalDb *journal);
+
~SyncEngine() override;
Q_INVOKABLE void startSync();
_account->setServerVersion(QStringLiteral("10.0.0"));
_journalDb = std::make_unique<OCC::SyncJournalDb>(localPath() + QStringLiteral(".sync_test.db"));
- _syncEngine = std::make_unique<OCC::SyncEngine>(_account, localPath(), remotePath, _journalDb.get());
+ _syncEngine = std::make_unique<OCC::SyncEngine>(_account, localPath(), OCC::SyncOptions{}, remotePath, _journalDb.get());
// Ignore temporary files from the download. (This is in the default exclude list, but we don't load it)
_syncEngine->excludedFiles().addManualExclude(QStringLiteral("]*.~*"));