コード例 #1
0
        public void When_getting_a_sub_array_an_a_new_array()
        {
            var srcArray = new[] { 1, 2, 3, 4, 5 };

            var subArray = new SubArray <int>(srcArray, 0, 5);

            subArray.Length.ShouldBe(5);
            subArray[0].ShouldBe(1);
            subArray[1].ShouldBe(2);
            subArray[2].ShouldBe(3);
            subArray[3].ShouldBe(4);
            subArray[4].ShouldBe(5);

            var copy = subArray.ToArray();

            copy[0].ShouldBe(1);
            copy[1].ShouldBe(2);
            copy[2].ShouldBe(3);
            copy[3].ShouldBe(4);
            copy[4].ShouldBe(5);

            Array.Reverse(subArray.Segment.Array);

            subArray[4].ShouldBe(1);
            subArray[3].ShouldBe(2);
            subArray[2].ShouldBe(3);
            subArray[1].ShouldBe(4);
            subArray[0].ShouldBe(5);

            copy[0].ShouldBe(1);
            copy[1].ShouldBe(2);
            copy[2].ShouldBe(3);
            copy[3].ShouldBe(4);
            copy[4].ShouldBe(5);
        }
コード例 #2
0
        public ScoreboardInfoData(byte[] bytes)
        {
            SubArray <byte> name = new SubArray <byte>(bytes, 0, 32);

            Name = Utils.GetTextFromBytes(name.ToArray());

            SubArray <byte> ip = new SubArray <byte>(bytes, 32, 4);

            Ip = new IPAddress(ip.ToArray());

            SubArray <byte> mask = new SubArray <byte>(bytes, 36, 4);

            NetMask = new IPAddress(mask.ToArray());

            SubArray <byte> gateway = new SubArray <byte>(bytes, 40, 4);

            DefaultGateway = new IPAddress(gateway.ToArray());

            SubArray <byte> version = new SubArray <byte>(bytes, 44, 2);

            Version = BitConverter.ToInt16(bytes, version.Offset);

            SubArray <byte> date      = new SubArray <byte>(bytes, 46);
            short           timeStamp = BitConverter.ToInt16(bytes, date.Offset);

            Date = Utils.ScoreboardTimeStampToDateTime(timeStamp);
        }
コード例 #3
0
        /// <summary>
        /// 上传小文件
        /// </summary>
        /// <param name="path">文件路径</param>
        /// <param name="lastWriteTime">最后修改时间</param>
        /// <param name="data">文件数据</param>
        /// <returns>文件同步状态</returns>
        public SynchronousState UploadAll(string path, DateTime lastWriteTime, ref SubArray <byte> data)
        {
            FileInfo FileInfo = new FileInfo(System.IO.Path.Combine(Path, path));

            if (FileInfo.FullName.StartsWith(Path, StringComparison.OrdinalIgnoreCase))
            {
                File.WriteAllBytes(FileInfo.FullName, data.ToArray());
                FileInfo.LastWriteTimeUtc = lastWriteTime;
                return(SynchronousState.Success);
            }
            return(SynchronousState.Unknown);
        }
コード例 #4
0
        public AnsRnumPacket(byte[] bytes)
        {
            SubArray <byte> mac = new SubArray <byte>(bytes, 0, 6);

            _mac            = new PhysicalAddress(mac.ToArray());
            _scoreboardType = bytes[7];
            SubArray <byte> messageId = new SubArray <byte>(bytes, 8, 4);

            _messageId = BitConverter.ToUInt32(messageId.ToArray(), 0);
            SubArray <byte> data = new SubArray <byte>(bytes, 12, NumData.DataLength);

            _data = new NumData(data.ToArray());
        }
コード例 #5
0
        public AnswerSearchPacket(byte[] bytes)
        {
            SubArray <byte> mac = new SubArray <byte>(bytes, 0, 6);

            _mac            = new PhysicalAddress(mac.ToArray());
            _scoreboardType = bytes[7];
            SubArray <byte> messageId = new SubArray <byte>(bytes, 8, 4);

            _messageId = BitConverter.ToUInt32(messageId.ToArray(), 0);
            SubArray <byte> data = new SubArray <byte>(bytes, 12);

            _data = new ScoreboardInfoData(data.ToArray());
        }
コード例 #6
0
        public RstrData(byte[] rstrMessages)
        {
            SubArray <byte>      indexes        = new SubArray <byte>(rstrMessages, 0, 8);
            SubArray <byte>      stringProfiles = new SubArray <byte>(rstrMessages, 8, 8);
            SubArray <byte>      data           = new SubArray <byte>(rstrMessages, 16);
            List <StringMessage> messages       = new List <StringMessage>();

            for (int i = 0; i < indexes.Count; i++)
            {
                if (indexes[i] != 255)
                {
                    var stringBytes = new SubArray <byte>(data.ToArray(), StringLength * i, StringLength).ToArray();
                    var message     = Utils.GetTextFromBytes(stringBytes);
                    messages.Add(new StringMessage(indexes[i], (StringProfile)stringProfiles[i], message));
                }
            }
            RstrMessages = messages;
        }
コード例 #7
0
ファイル: NetData.cs プロジェクト: Dedrus/itlinescoreboard
        internal NetData(byte[] bytes)
        {
            SubArray <byte> name = new SubArray <byte>(bytes, 0, 32);

            Name = Utils.GetTextFromBytes(name.ToArray());

            SubArray <byte> ip = new SubArray <byte>(bytes, 32, 4);

            Ip = new IPAddress(ip.ToArray());

            SubArray <byte> mask = new SubArray <byte>(bytes, 36, 4);

            NetMask = new IPAddress(mask.ToArray());

            SubArray <byte> gateway = new SubArray <byte>(bytes, 40, 4);

            DefaultGateway = new IPAddress(gateway.ToArray());
        }
コード例 #8
0
 //[AutoCSer.IOS.Preserve(Conditional = true)]
 internal void subArraySerialize <valueType>(SubArray <valueType> value)
 {
     valueType[] array = value.ToArray();
     isReferenceArray = false;
     TypeSerializer <valueType[]> .DefaultSerializer(this, array);
 }