public RepoBase(RepoInfo repoInfo, IActivityListener activityListener)
{
RepoInfo = repoInfo;
LocalPath = repoInfo.TargetDirectory;
Name = repoInfo.Name;
RemoteUrl = repoInfo.Address;
this.activityListener = activityListener;
Enabled = ! repoInfo.IsSuspended;
// Folder lock.
// Disabled for now. Can be an interesting feature, but should be made opt-in, as
// most users would be surprised to see this file appear.
// folderLock = new FolderLock(LocalPath);
Watcher = new Watcher(LocalPath);
Watcher.EnableRaisingEvents = true;
// Main loop syncing every X seconds.
remote_timer.Elapsed += delegate
{
// Synchronize.
SyncInBackground();
};
remote_timer.AutoReset = true;
Logger.Info("Repo " + repoInfo.Name + " - Set poll interval to " + repoInfo.PollInterval + "ms");
remote_timer.Interval = repoInfo.PollInterval;
//Partial sync interval..
local_timer.Elapsed += delegate
{
// Run partial sync.
SyncInBackground(false);
};
local_timer.AutoReset = false;
local_timer.Interval = delay_interval;
}