Skip to content

Commit

Permalink
SyncOptions: move to its own file
Browse files Browse the repository at this point in the history
It does not really belong in the discoveryphase.h as it is used also for
propagator option.

Also use C++11 style member initializer
  • Loading branch information
ogoffart committed Dec 7, 2017
1 parent dd91f4a commit 54cc08b
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 47 deletions.
47 changes: 1 addition & 46 deletions src/libsync/discoveryphase.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <QWaitCondition>
#include <QLinkedList>
#include <deque>
#include "syncoptions.h"

namespace OCC {

Expand All @@ -35,52 +36,6 @@ class Account;
* if the files are new, or changed.
*/

struct SyncOptions
{
SyncOptions()
: _newBigFolderSizeLimit(-1)
, _confirmExternalStorage(false)
, _initialChunkSize(10 * 1000 * 1000) // 10 MB
, _minChunkSize(1 * 1000 * 1000) // 1 MB
, _maxChunkSize(100 * 1000 * 1000) // 100 MB
, _targetChunkUploadDuration(60 * 1000) // 1 minute
, _parallelNetworkJobs(true)
{
}

/** Maximum size (in Bytes) a folder can have without asking for confirmation.
* -1 means infinite */
qint64 _newBigFolderSizeLimit;

/** If a confirmation should be asked for external storages */
bool _confirmExternalStorage;

/** The initial un-adjusted chunk size in bytes for chunked uploads, both
* for old and new chunking algorithm, which classifies the item to be chunked
*
* In chunkingNG, when dynamic chunk size adjustments are done, this is the
* starting value and is then gradually adjusted within the
* minChunkSize / maxChunkSize bounds.
*/
quint64 _initialChunkSize;

/** The minimum chunk size in bytes for chunked uploads */
quint64 _minChunkSize;

/** The maximum chunk size in bytes for chunked uploads */
quint64 _maxChunkSize;

/** The target duration of chunk uploads for dynamic chunk sizing.
*
* Set to 0 it will disable dynamic chunk sizing.
*/
quint64 _targetChunkUploadDuration;

/** Whether parallel network jobs are allowed. */
bool _parallelNetworkJobs;
};


struct DiscoveryDirectoryResult
{
QString path;
Expand Down
2 changes: 1 addition & 1 deletion src/libsync/owncloudpropagator.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
#include "common/syncjournaldb.h"
#include "bandwidthmanager.h"
#include "accountfwd.h"
#include "discoveryphase.h"
#include "syncoptions.h"

namespace OCC {

Expand Down
61 changes: 61 additions & 0 deletions src/libsync/syncoptions.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* Copyright (C) by Olivier Goffart <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/

#pragma once

#include "owncloudlib.h"
#include <QString>


namespace OCC {

/**
* Value class containing the options given to the sync engine
*/
struct SyncOptions
{
/** Maximum size (in Bytes) a folder can have without asking for confirmation.
* -1 means infinite */
qint64 _newBigFolderSizeLimit = -1;

/** If a confirmation should be asked for external storages */
bool _confirmExternalStorage = false;

/** The initial un-adjusted chunk size in bytes for chunked uploads, both
* for old and new chunking algorithm, which classifies the item to be chunked
*
* In chunkingNG, when dynamic chunk size adjustments are done, this is the
* starting value and is then gradually adjusted within the
* minChunkSize / maxChunkSize bounds.
*/
quint64 _initialChunkSize = 10 * 1000 * 1000; // 10MB

/** The minimum chunk size in bytes for chunked uploads */
quint64 _minChunkSize = 1 * 1000 * 1000; // 1MB

/** The maximum chunk size in bytes for chunked uploads */
quint64 _maxChunkSize = 100 * 1000 * 1000; // 100MB

/** The target duration of chunk uploads for dynamic chunk sizing.
*
* Set to 0 it will disable dynamic chunk sizing.
*/
quint64 _targetChunkUploadDuration = 60 * 1000; // 1 minute

/** Whether parallel network jobs are allowed. */
bool _parallelNetworkJobs = true;
};


}

0 comments on commit 54cc08b

Please sign in to comment.