コード例 #1
0
ファイル: ManagedNetTest.cs プロジェクト: tide999/RSL
        //
        // RSL State machine implementation
        //

        public override bool LoadState(ManagedRSLCheckpointStream reader)
        {
            if (reader == null)
            {
                m_score = 0;
                return(false);
            }
            int totalRead = 0;
            int read      = 0;

            while (m_size > totalRead)
            {
                try
                {
                    read = reader.Read(m_state, totalRead, (int)m_size - totalRead);
                    Debug.Assert(read >= 0);
                }
                catch (IOException ioe)
                {
                    Console.WriteLine("Error: " + ioe);
                    return(false);
                }
                totalRead += read;
            }
            m_score = BitConverter.ToInt32(m_state, sizeof(Int32));
            return(true);
        }
コード例 #2
0
 /// <summary>
 /// Saves the current state in a checkpoint file
 /// </summary>
 /// <param name="writer"></param>
 public override void SaveState(ManagedRSLCheckpointStream stream)
 {
     foreach (UInt32 i in _state)
     {
         Byte[] buffer = System.BitConverter.GetBytes(i);
         stream.Write(buffer, 0, buffer.Length);
     }
 }
コード例 #3
0
        /// <summary>
        /// This method is called by the RSL engine at startup, read the last saved checkpoint
        /// </summary>
        /// <param name="reader"></param>
        public override bool LoadState(ManagedRSLCheckpointStream stream)
        {
            if (stream != null)
            {
                Byte[] buffer = new byte[4];

                while (stream.Read(buffer, 0, 4) != 0)
                {
                    _state.Add(System.BitConverter.ToUInt32(buffer, 0));
                }
            }
            return(true);
        }
コード例 #4
0
ファイル: ManagedNetTest.cs プロジェクト: tide999/RSL
 public override void SaveState(ManagedRSLCheckpointStream writer)
 {
     byte[] score = BitConverter.GetBytes(m_score);
     for (int i = 0; i < score.Length; i++)
     {
         m_state[i] = score[i];
     }
     try
     {
         writer.Write(m_state, 0, m_size);
     }
     catch (IOException ioe)
     {
         Console.WriteLine("Error: " + ioe);
     }
 }
コード例 #5
0
        public override void SaveState(ManagedRSLCheckpointStream gc_writer)
        {
            this.Log(TestTracer.EventType.SaveStateCalled, " SaveState was called: gc_writer = {0}", gc_writer);

            if (gc_writer == null)
            {
                throw new ArgumentNullException("gc_writer");
            }

            using (BinaryWriter bw = new BinaryWriter(gc_writer, encoding, true))
            {
                foreach (Command cmd in this.commands)
                {
                    cmd.Serialize(bw);
                }
            }
        }
コード例 #6
0
ファイル: BasicRSLTestMachine.cs プロジェクト: tide999/RSL
        public override bool LoadState(ManagedRSLCheckpointStream stream)
        {
            Console.WriteLine(this.Self.MemberId + ".LoadState");
            if (stream != null)
            {
                int    length = (int)stream.Length;
                Byte[] buffer = new byte[length];

                if (stream.Read(buffer, 0, length) != (int)length)
                {
                    return(false);
                }

                this.InternalState = System.BitConverter.ToInt32(buffer, 0);

                return(true);
            }

            return(true);
        }
コード例 #7
0
        public override bool LoadState(ManagedRSLCheckpointStream gc_reader)
        {
            this.Log(TestTracer.EventType.LoadStateCalled, " LoadState was called: gc_reader = {0}", gc_reader);

            // if we are here, that is because Initialize was called.
            this.needsUnloading = true;

            if (gc_reader == null)
            {
                return(true);
            }

            try
            {
                this.commands.Clear();

                using (BinaryReader br = new BinaryReader(gc_reader, encoding, true))
                {
                    while (true)
                    {
                        Command cmd = Command.Deserialize(br);

                        if (cmd == null)
                        {
                            break;
                        }

                        bool ignore = false;
                        cmd.ExecuteInSecondary(this, ref ignore);
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
            }

            return(false);
        }
コード例 #8
0
ファイル: BasicRSLTestMachine.cs プロジェクト: tide999/RSL
 public override void SaveState(ManagedRSLCheckpointStream stream)
 {
     Console.WriteLine(this.Self.MemberId + ".SaveState");
     Byte[] buffer = System.BitConverter.GetBytes(this.InternalState);
     stream.Write(buffer, 0, buffer.Length);
 }