private void FixedUpdate()
    {
        if (!StateFile.IsEmpty(Path))
        {
            StateFile.Write(Path, Constants.DELIMITER);
        }

        var history = stateHistoryMB.deltaStateHistory;

        if (history.Count > 0)
        {
            var latestDeltaState = stateHistoryMB.deltaStateHistory[history.Count - 1];
            if (latestDeltaState.startStateTick != latestDeltaState.endStateTick)
            {
                var bytes = latestDeltaState.ToBytes().ToArray();
                StateFile.Write(Path, bytes);
            }
        }
    }
Ejemplo n.º 2
0
 private void FixedUpdate()
 {
     if (StateFile.HasChanged(Path))
     {
         var bytes = StateFile.ReadBytes(Path);
         deltaStateHistory.FromBytes(new ByteQueue(bytes));
         count = deltaStateHistory.Count;
     }
     if (count > 0 && isPlaying)
     {
         var deltaState = deltaStateHistory.GetDeltaState(state.tick);
         if (deltaState != null)
         {
             state = (TransformState)deltaState.GenerateEndState(state);
             StateToScene.SpawnEntities(state, clones, transform);
             StateToScene.DespawnEntities(state, clones);
             StateToScene.ApplyChangesToEntites(state, clones);
         }
         tick = state.tick;
     }
 }
    private void FixedUpdate()
    {
        time = Time.time;
        if (stateMB.state.tick > 0 && stateMB.state.tick % Constants.TICK_RATE == 0)
        {
            var deltaState = new TransformDeltaState();
            deltaState.Create(previousState, stateMB.state);
            deltaStateHistory.Add(deltaState);

            if (!StateFile.IsEmpty(Path))
            {
                StateFile.Write(Path, Constants.DELIMITER);
            }

            var bytes = deltaState.ToBytes().ToArray();
            StateFile.Write(Path, bytes);

            previousState.tick = stateMB.state.tick;
            previousState.entities.Clear();
            previousState.entities.AddRange(stateMB.state.entities.Clone());
        }
    }
    private void FixedUpdate()
    {
        time = Time.time;
        if (Time.time > 0)
        {
            currentTick += playbackSpeed;
        }

        if (currentTick >= endState.tick)
        {
            var bytes = StateFile.ReadBytes(Path);
            deltaStateHistory.FromBytes(new ByteQueue(bytes));
            if (targetTick < deltaStateHistory.Count)
            {
                var deltaState = deltaStateHistory[targetTick];
                if (deltaState != null)
                {
                    startState = endState;
                    endState   = (TransformState)deltaState.GenerateEndState(endState);
                }
                targetTick++;
            }
        }
    }
Ejemplo n.º 5
0
        private async Task ExportAsync(StateFile stateFile)
        {
            if (Path.IsPathRooted(stateFile.File))
            {
                Env.Notifier.Warning($"Cannot export '{stateFile.File}', only relative paths are allowed.");
                return;
            }
            var sourceFile = Path.Combine(Env.Config.DataDir, stateFile.File);

            if (!File.Exists(sourceFile))
            {
                Env.Notifier.Warning($"Cannot export '{sourceFile}', file not found.");
                return;
            }
            string text;

            if (stateFile.Flags.HasFlag(StateHandlerFlags.UseCipher))
            {
                text = await Env.Cipher.TryDecryptFileAsync(sourceFile);

                if (text == null)
                {
                    Env.Notifier.Warning($"Cannot export '{sourceFile}', decryption failed.");
                    return;
                }
            }
            else
            {
                text = File.ReadAllText(sourceFile);
            }
            var targetFile = Path.Combine(_directory, stateFile.File);

            Directory.CreateDirectory(Path.GetDirectoryName(targetFile));
            File.WriteAllText(targetFile, text);
            Env.Notifier.Info($"Created file '{targetFile}'.");
        }
 private void OnDisable()
 {
     StateFile.Close(Path);
 }
 private void OnEnable()
 {
     StateFile.OpenAndResetForWrite(Path);
 }
    public string Save(string sourceDir, string targetDir, Semaphore MaxSizeSemaphore)
    {
        try
        {
            //Folder naming
            DirectoryInfo          dir1  = new DirectoryInfo(sourceDir);
            IEnumerable <FileInfo> list1 = dir1.GetFiles("*.*", System.IO.SearchOption.AllDirectories);
            string dateDay    = DateTime.Now.ToString("dd");
            string dateMonth  = DateTime.Now.ToString("MM");
            string dateYear   = DateTime.Now.ToString("yyyy");
            string dateHour   = DateTime.Now.ToString("HH");
            string dateMin    = DateTime.Now.ToString("mm");
            string dateSec    = DateTime.Now.ToString("ss");
            string folderName = "\\" + dateYear + "-" + dateMonth + "-" + dateDay + "_" + dateHour + "h" + dateMin + "min" + dateSec + "-FullSave";

            string[] filesListSource = Directory.GetFiles(sourceDir, "*.*", System.IO.SearchOption.AllDirectories);
            string[] extensions      = File.ReadAllLines("ExtensionFile.txt");

            FileSort        fileSort = new FileSort();
            List <FileInfo> prioList = fileSort.PriorizeList(list1);

            TimeSpan cryptingTime;
            cryptingTime = TimeSpan.Zero;

            StateFile statefile = new StateFile();
            Save      save      = new Save();


            //If there are files to transfer
            if (filesListSource.Length != 0)
            {
                // Create the save directory
                Directory.CreateDirectory(targetDir + folderName);

                DateTime D1 = DateTime.Now;
                // Create all the Directories needed
                foreach (string dirPath in Directory.GetDirectories(sourceDir, "*", System.IO.SearchOption.AllDirectories))
                {
                    Directory.CreateDirectory(dirPath.Replace(sourceDir, targetDir + folderName));
                }


                // Copy all the files in the associated directory
                foreach (var file in prioList)
                {
                    // Remove path from the file name.
                    string fileName            = file.Name;
                    string vPath               = file.FullName.Substring(sourceDir.Length + 1);
                    bool   FileLargerParameter = false;

                    if (File.Exists("FileSizeLimit.txt"))
                    {
                        if (FileSystem.GetFileInfo($"{sourceDir}/{vPath}").Length > Convert.ToInt64(File.ReadAllText($"{Environment.CurrentDirectory}/FileSizeLimit.txt")))
                        {
                            MaxSizeSemaphore.WaitOne();
                            FileLargerParameter = true;
                        }
                    }



                    try
                    {
                        bool file2Crypt = false;
                        foreach (var ext in extensions)
                        {
                            if (ext == file.Extension)
                            {
                                file2Crypt = true;
                            }
                        }
                        if (file2Crypt == true)
                        {
                            while (Controller.EnterpriseSoftwareRunning() == true)
                            {
                            }
                            ;
                            if (file.Extension != File.ReadAllText("PriorityFiles.txt"))
                            {
                                Controller.Barrier.SignalAndWait();
                            }
                            Process processus = new Process();
                            processus.StartInfo.FileName    = Directory.GetCurrentDirectory() + "\\Cryptosoft.exe";
                            processus.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                            Console.WriteLine("\nTransfert du fichier " + fileName + "...");
                            processus.StartInfo.Arguments = "-c " + sourceDir + "\\" + vPath + " fe3a2d57c378d7dc946589e9aa8cee011cae8013 " + targetDir + folderName + "\\" + vPath;
                            processus.EnableRaisingEvents = true;
                            processus.Exited += new EventHandler(myProcess_Exited);
                            processus.Start();
                            Console.WriteLine("Cryptage du fichier" + fileName + " en cours...");
                            processus.WaitForExit();
                            cryptingTime += ((Process)processus).ExitTime - ((Process)processus).StartTime;
                        }
                        else
                        {
                            file.CopyTo(targetDir + "//" + folderName + "//" + vPath);
                        }

                        save.SaveUpdate(folderName, sourceDir, targetDir, fileName);
                        statefile.UpdateStateFile(save);
                    }

                    // Catch exception if the file was already copied.
                    catch (IOException copyError)
                    {
                        Console.WriteLine(copyError.Message);
                    }
                    if (FileLargerParameter)
                    {
                        MaxSizeSemaphore.Release();
                    }
                }
                // Calculate the transfer time
                DateTime D2           = DateTime.Now;
                TimeSpan transferTime = D2 - D1;
                Console.WriteLine("Le temps de transfert total des fichiers a été de " + transferTime);
                Console.WriteLine("Le temps de cryptage total des fichiers a été de " + cryptingTime);
                // Create and update the logs file
                LogSave logSave = new LogSave();
                logSave.CreateLog(folderName, sourceDir, targetDir, transferTime, cryptingTime);
                logSave.UpdateLogFile(logSave);
            }
            else
            {
                Console.WriteLine("No files to copy");
            }
            return(folderName);
        }
        catch (DirectoryNotFoundException dirNotFound)
        {
            Console.WriteLine(dirNotFound.Message);
            return("error");
        }
    }
 private void OnEnable()
 {
     Time.fixedDeltaTime = SimulationUpdatesPerSecond;
     StateFile.OpenAndResetForWrite(Path);
 }
Ejemplo n.º 10
0
 private static void CMLoad()
 {
     VitaNexCore.TryCatch(() => StateFile.Deserialize(State.Deserialize), CMOptions.ToConsole);
 }
Ejemplo n.º 11
0
        /// <summary>
        /// Resolves lambda code.
        /// For embedded (ZipFile) scripts, creates zipper resources for the files extracted by <see cref="LambdaFunctionImporter"/>.
        /// For S3 and container lambdas, sets the appropriate properties
        /// </summary>
        /// <param name="writer">The writer.</param>
        /// <param name="stateFile">The state file.</param>
        private void ResolveLambdaCode(TextWriter writer, StateFile stateFile)
        {
            foreach (var cloudFormationResource in this.settings.Template.Resources.Where(
                         r => r.Type == TerraformExporterConstants.AwsLambdaFunction && r.GetResourcePropertyValue("Code") != null))
            {
                var mapping =
                    this.module.ResourceMappings.FirstOrDefault(ir => ir.LogicalId == cloudFormationResource.Name);

                if (mapping == null)
                {
                    continue;
                }

                var terraformResource = stateFile.FilteredResources(this.module.Name).FirstOrDefault(
                    rd => rd.Name == mapping.LogicalId && rd.Type == mapping.TerraformType);

                if (terraformResource == null)
                {
                    continue;
                }

                // Fix up state file.
                // ReSharper disable once AssignNullToNotNullAttribute - already asserted that this has a value in foreach statement.
                var lambdaCode =
                    ((Dictionary <object, object>)cloudFormationResource.GetResourcePropertyValue("Code")).ToDictionary(
                        kv => kv.Key.ToString(),
                        kv => kv.Value);
                var attributes = terraformResource.Instances.First().Attributes;

                if (lambdaCode.ContainsKey("ZipFile"))
                {
                    var runtimeObject = cloudFormationResource.GetResourcePropertyValue("Runtime");

                    if (runtimeObject == null)
                    {
                        // No runtime specified
                        continue;
                    }

                    ResolveLambdaZipCode(
                        writer,
                        runtimeObject.ToString(),
                        cloudFormationResource,
                        attributes,
                        mapping,
                        this.module.Inputs);
                }
                else if (lambdaCode.ContainsKey("ImageUri"))
                {
                    UpdatePropertyValue(
                        "image_uri",
                        cloudFormationResource.Template,
                        attributes,
                        mapping,
                        this.module.Inputs,
                        lambdaCode["ImageUri"]);
                }
                else
                {
                    ResolveLambdaS3Code(cloudFormationResource, attributes, mapping, this.module.Inputs, lambdaCode);
                }
            }
        }
 /// <summary>
 /// Serializes the specified state file to HCL.
 /// </summary>
 /// <param name="stateFile">The state file.</param>
 public void Serialize(StateFile stateFile)
 {
     this.Serialize(stateFile, null);
 }
Ejemplo n.º 13
0
    private void FixedUpdate()
    {
        var stateBytes = stateMB.state.ToBytes().ToArray();

        StateFile.ResetAndWrite(Path, stateBytes);
    }