X-Git-Url: https://code.grnet.gr/git/pithos-ms-client/blobdiff_plain/9c4346c9b84852813e335fa41a07201437f45de1..c875d683752bde605a05350e90f0d603d55958fc:/trunk/Pithos.Core/WorkflowState.cs diff --git a/trunk/Pithos.Core/WorkflowState.cs b/trunk/Pithos.Core/WorkflowState.cs index 36110a6..6462aa8 100644 --- a/trunk/Pithos.Core/WorkflowState.cs +++ b/trunk/Pithos.Core/WorkflowState.cs @@ -1,13 +1,61 @@ -using System; +#region +/* ----------------------------------------------------------------------- + * + * + * Copyright 2011-2012 GRNET S.A. All rights reserved. + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * 1. Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * + * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and + * documentation are those of the authors and should not be + * interpreted as representing official policies, either expressed + * or implied, of GRNET S.A. + * + * ----------------------------------------------------------------------- + */ +#endregion +using System; using System.Collections.Generic; +using System.Diagnostics.Contracts; using System.IO; using System.Linq; using System.Text; +using Pithos.Interfaces; +using Pithos.Network; namespace Pithos.Core { public class WorkflowState { + public bool IsCreation { get; set; } + public object Originator { get; set; } + public AccountInfo AccountInfo { get; set; } + public string Path { get; set; } public string FileName { get; set; } @@ -19,7 +67,44 @@ namespace Pithos.Core public bool Skip { get; set; } - public string Hash { get; set; } + public string Hash { get; set; } public string LastUpdateHash { get; set; } + public string ETag { get; set; } + +/* + public WorkflowState(AccountInfo accountInfo) + { + AccountInfo = accountInfo; + } +*/ + + public WorkflowState(object originator) + { + Originator = originator; + } + + public WorkflowState(AccountInfo accountInfo, FileState state) + { + if (accountInfo==null) + throw new ArgumentNullException("accountInfo"); + if (state==null) + throw new ArgumentNullException("state"); + Contract.EndContractBlock(); + + Originator = "Restart"; + AccountInfo = accountInfo; + Path = state.FilePath.ToLower(); + FileName = System.IO.Path.GetFileName(state.FilePath).ToLower(); + Hash = state.Checksum; + ETag = state.ETag; + Status = state.OverlayStatus == FileOverlayStatus.Unversioned + ? FileStatus.Created + : state.FileStatus; + TriggeringChange = + state.OverlayStatus == FileOverlayStatus.Unversioned + ? WatcherChangeTypes.Created + : WatcherChangeTypes.Changed; + } + } }