private RemoteUpdateResult HandleSuccessResponse(RemoteUpdateResult lastUpdateResult, Response response, Uri replica) { if (!response.HasContent) { throw Empty200ResponseException(); } if (response.Headers.LastModified == null) { throw MissingLastModifiedHeaderException(); } var version = DateTime.Parse(response.Headers.LastModified, null, DateTimeStyles.AssumeUniversal).ToUniversalTime(); if (lastUpdateResult != null && version <= lastUpdateResult.Version) { if (version < lastUpdateResult.Version) { LogStaleVersion(version, lastUpdateResult.Version); } return(new RemoteUpdateResult(false, lastUpdateResult.Tree, lastUpdateResult.Version)); } var tree = new RemoteTree(response.Content.ToArray(), TreeSerializers.V1); LogReceivedNewZone(tree, version, replica); return(new RemoteUpdateResult(true, tree, version)); }
public MainForm() { InitializeComponent(); this.ArchiveContentsTreeView.MouseUp += this.On_TreeView_MouseUp; var remoteTree = new RemoteTree(); remoteTree.Thing(this.RemoteFileTree); }
public ClusterConfigClientState( [CanBeNull] ISettingsNode localTree, [CanBeNull] RemoteTree remoteTree, [NotNull] RecyclingBoundedCache <ClusterConfigPath, ISettingsNode> cache, long version) { LocalTree = localTree; RemoteTree = remoteTree; Cache = cache; Version = version; }
public ActionResult GetRemoteTree(string path) { try { RemoteTree tree = new RemoteTree(path); List <BaseNode> remoteTree = tree.GetTree(); return(Json(remoteTree, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(HttpNotFound(e.Message)); } }
public void TestSetup() { log = new ConsoleLog(); client = Substitute.For <IClusterClient>(); enabledUpdater = new RemoteUpdater(true, client, log, "default"); disabledUpdater = new RemoteUpdater(false, null, log, "default"); cancellation = new CancellationTokenSource(); tree1 = new RemoteTree(Guid.NewGuid().ToByteArray(), TreeSerializers.V1); tree2 = new RemoteTree(Guid.NewGuid().ToByteArray(), TreeSerializers.V1); version1 = DateTime.UtcNow; version1 = new DateTime(version1.Year, version1.Month, version1.Day, version1.Hour, version1.Minute, version1.Second, 0, version1.Kind); version2 = version1 + 1.Hours(); }
private ISettingsNode Extract(ClusterConfigPath path) { if (state == null) { RemoteTree remote; if (remoteTree == null) { remote = null; } else { var writer = new BinaryBufferWriter(64); TreeSerializers.V1.Serialize(remoteTree, writer); remote = new RemoteTree(writer.Buffer.Take(writer.Length).ToArray(), TreeSerializers.V1); } state = new ClusterConfigClientState(localTree, remote, new RecyclingBoundedCache <ClusterConfigPath, ISettingsNode>(10), Int64.MaxValue); } return(TreeExtractor.Extract(state, path, null)); }
public RemoteUpdateResult(bool changed, [CanBeNull] RemoteTree tree, DateTime version) { Changed = changed; Tree = tree; Version = version; }
private void LogReceivedNewZone(RemoteTree tree, DateTime version, Uri replica) => log.Info("Received new version of zone '{Zone}' from {Replica}. Size = {Size}. Version = {Version}.", zone, replica?.Authority, tree.Size, version.ToString("R"));