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); }
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); }
/// <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); }
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()); }
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()); }
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; }
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()); }
//[AutoCSer.IOS.Preserve(Conditional = true)] internal void subArraySerialize <valueType>(SubArray <valueType> value) { valueType[] array = value.ToArray(); isReferenceArray = false; TypeSerializer <valueType[]> .DefaultSerializer(this, array); }