public IDictionary<byte[], IList<long>> Read(BinaryReader reader, int keyWidth) { var indexWidth = reader.ReadInt64(); var buckets = new Dictionary<byte[], IList<long>>(new ByteArrayComparer()); while (reader.BaseStream.Position < reader.BaseStream.Length) { var bucket = new List<long>(); var index = reader.ReadBytes(keyWidth); for (int i = 0; i < indexWidth - keyWidth; i += sizeof (long)) { var value = reader.ReadInt64(); if (value != long.MaxValue) { bucket.Add(value); } else { reader.BaseStream.Seek(indexWidth - keyWidth - i - sizeof (long), SeekOrigin.Current); break; } } buckets[index] = bucket; } return buckets; }
public Chests(BinaryReader inStream) { Id = inStream.ReadInt32(); Flag0 = inStream.ReadBoolean(); Unknown0 = inStream.ReadInt32(); Name = inStream.ReadInt32(); AnimatedObject = inStream.ReadInt32(); Flag1 = inStream.ReadBoolean(); Flag2 = inStream.ReadBoolean(); Unknown1 = inStream.ReadInt32(); Flag3 = inStream.ReadBoolean(); Flag4 = inStream.ReadBoolean(); Unknown2 = inStream.ReadInt32(); Data0Length = inStream.ReadInt32(); Data0 = inStream.ReadInt32(); Data1Length = inStream.ReadInt32(); Data1 = inStream.ReadInt32(); ItemKey = inStream.ReadInt64(); Flag5 = inStream.ReadBoolean(); Data2Length = inStream.ReadInt32(); Data2 = inStream.ReadInt32(); Flag6 = inStream.ReadBoolean(); Data3Length = inStream.ReadInt32(); Data3 = inStream.ReadInt32(); Unknown3 = inStream.ReadInt64(); Unknown4 = inStream.ReadInt32(); Flag7 = inStream.ReadBoolean(); Data4Length = inStream.ReadInt32(); Data4 = inStream.ReadInt32(); Unknown23 = inStream.ReadInt32(); }
public override void DeserializeBody(BinaryReader br) { dc_id = br.ReadInt32(); volume_id = br.ReadInt64(); local_id = br.ReadInt32(); secret = br.ReadInt64(); }
public void Open() { if(!File.Exists(attributionFileName)) { throw new FileNotFoundException("The specified attribution file is not found"); } attributionFileStreamReader = new BinaryReader(File.Open(attributionFileName, FileMode.Open)); attributionFileStreamReader.BaseStream.Seek(0, SeekOrigin.Begin); recordsCount = attributionFileStreamReader.ReadInt32(); dataOffset = attributionFileStreamReader.ReadInt64(); for (int i = 0; i < recordsCount; i++) { if (indexOffsets == null) { indexOffsets = new Dictionary<int, long>(); } indexOffsets.Add(i, attributionFileStreamReader.ReadInt64()); } isOpened = true; }
public override void DeserializeBody(BinaryReader br) { id = br.ReadInt64(); access_hash = br.ReadInt64(); date = br.ReadInt32(); sizes = (TLVector<TLAbsPhotoSize>)ObjectUtils.DeserializeVector<TLAbsPhotoSize>(br); }
public IEnumerable<FileEntry> ListFiles(Stream strm, Callbacks callbacks) { byte[] buf = new byte[4]; BinaryReader rd = new BinaryReader(strm); int numFiles; List<FileEntry> results = new List<FileEntry>(); rd.Read(buf, 0, 4); if (Encoding.ASCII.GetString(buf, 0, 4) != "TGP0") return results; if (rd.ReadInt32() != 1) // version check return results; if (rd.ReadInt32() != 0) // should be zero return results; numFiles = rd.ReadInt32(); buf = new byte[0x60]; for (int i = 0; i < numFiles; i++) { FileEntry ent = new FileEntry(); rd.Read(buf, 0, 0x60); ent.Filename = Encoding.ASCII.GetString(buf); ent.Filename = ent.Filename.Substring(0, ent.Filename.IndexOf('\0')); ent.Offset = rd.ReadInt64(); ent.UncompressedSize = rd.ReadInt64(); results.Add(ent); } return results; }
/// <summary> /// Initializes a new instance of the <see cref="ContentArchiveNode"/> class from an archive stream. /// </summary> /// <param name="parent">The node's parent node.</param> /// <param name="reader">A <see cref="BinaryReader"/> on the stream containing the archive data.</param> private ContentArchiveNode(ContentArchiveNode parent, BinaryReader reader) { this.parent = parent; this.name = reader.ReadString(); this.path = BuildPath(parent, name); this.isFile = reader.ReadBoolean(); this.isDirectory = !this.isFile; if (this.isFile) { this.position = reader.ReadInt64(); this.sizeInBytes = reader.ReadInt64(); } else { var childList = new List<ContentArchiveNode>(); var childCount = reader.ReadInt32(); for (int i = 0; i < childCount; i++) { var node = new ContentArchiveNode(this, reader); childList.Add(node); } this.children = childList; } }
public IndexedFS(Filesystem msys) { _msys = msys; if (!msys.EnumFiles().GetEnumerator().MoveNext()) { //Create index msys.AllocSpace(0,512); Stream mstream = new ObservableStream(0, msys); BinaryWriter mwriter = new BinaryWriter(mstream); mwriter.Write(filemappings.Count); cval++; } ObservableStream fstr = new ObservableStream(0, msys); BinaryReader mreader = new BinaryReader(fstr); int count = mreader.ReadInt32(); for (int i = 0; i < count; i++) { if (mreader.ReadBoolean()) { filemappings.Add(mreader.ReadString(), mreader.ReadInt64()); } else { dirmappings.Add(mreader.ReadString(), mreader.ReadInt64()); } cval++; } }
public void TestWrite() { MemoryStream stream = new MemoryStream(); // FileIndex should support a stream starting at any point stream.Seek(10, SeekOrigin.Begin); PostingListEncoder decoder = new PostingListEncoder(); PerformWrite(stream); BinaryReader reader = new BinaryReader(stream); // Term count Assert.AreEqual(2, reader.ReadInt64()); long ptr1 = reader.ReadInt64(); long ptr2 = reader.ReadInt64(); Assert.AreEqual(stream.Position, ptr1); Assert.AreEqual("aTerm", reader.ReadString()); IList<Posting> postings = decoder.read(reader); Assert.AreEqual(2, postings.Count); Assert.AreEqual(new Posting(DocA, 1), postings[0]); Assert.AreEqual(new Posting(DocB, 1), postings[1]); Assert.AreEqual(stream.Position, ptr2); Assert.AreEqual("bTerm", reader.ReadString()); postings = decoder.read(reader); Assert.AreEqual(3, postings.Count); Assert.AreEqual(new Posting(DocA, 1), postings[0]); Assert.AreEqual(new Posting(DocZ, 1), postings[1]); Assert.AreEqual(new Posting(DocT, 1), postings[2]); }
internal Partition part; // the partition containing this cell #endregion Fields #region Constructors /// <summary> /// Load a cell from disk into memory. /// </summary> /// <param name="part">The partition where this cell belongs</param> /// <param name="fileName">The name of the file holding the persisted cell</param> /// <exception cref="FileFormatException">The cell file is malformed</exception> /// <exception cref="EndOfStreamException">The cell file is too short</exception> internal Cell(Partition part, string fileName, bool partial) { this.part = part; this.fileName = fileName; var fileLength = new FileInfo(fileName).Length; using (var br = new BinaryReader(new BufferedStream(new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)))) { this.baseUID = br.ReadInt64(); this.epoch = br.ReadInt32(); this.numUrls = br.ReadInt64(); this.supraUID = this.baseUID + this.numUrls; this.urlCell = new UrlCell(this, br); this.linkCell = new LinkCell[2]; this.linkCell[0] = new LinkCell(this, br); this.linkCell[1] = new LinkCell(this, br); long numHdrBytes = br.BaseStream.Position; this.urlCell.startPos = numHdrBytes; this.linkCell[0].startPos = this.urlCell.startPos + this.urlCell.numBytes; this.linkCell[1].startPos = this.linkCell[0].startPos + this.linkCell[0].numBytes; var expectedSize = numHdrBytes + this.urlCell.numBytes + (partial ? 0L : this.linkCell[0].numBytes + this.linkCell[1].numBytes); if (fileLength != expectedSize) { throw new FileFormatException(fileName + " is wrong size"); } } }
public void readHeader(BinaryReader reader) { this.operation = reader.ReadByte(); int blockId = reader.ReadInt32(); int threadId = IPAddress.NetworkToHostOrder(reader.ReadInt32()); byte booleans = reader.ReadByte(); if (isTrue(booleans, 1)) { timeout = IPAddress.NetworkToHostOrder(reader.ReadInt64()); } if (isTrue(booleans, 2)) { ttl = IPAddress.NetworkToHostOrder(reader.ReadInt64()); } if (isTrue(booleans, 4)) { longValue = IPAddress.NetworkToHostOrder(reader.ReadInt64()); } this.callId = IPAddress.NetworkToHostOrder(reader.ReadInt64()); this.responseType = reader.ReadByte(); int nameLength = IPAddress.NetworkToHostOrder(reader.ReadInt32()); if (nameLength > 0) { byte[] b = new byte[nameLength]; reader.Read(b, 0, nameLength); this.name = System.Text.Encoding.ASCII.GetString(b); } byte indexCount = reader.ReadByte(); int keyPartitionHash = IPAddress.NetworkToHostOrder(reader.ReadInt32()); int valuePartitionHash = IPAddress.NetworkToHostOrder(reader.ReadInt32()); }
protected override void ParseMessage(byte[] messageBody) { // Read double from the stream BinaryReader br = new BinaryReader(new MemoryStream(messageBody), Encoding.UTF8); X = BitConverter.Int64BitsToDouble(IPAddress.NetworkToHostOrder(br.ReadInt64())); Y = BitConverter.Int64BitsToDouble(IPAddress.NetworkToHostOrder(br.ReadInt64())); }
public void TestWrite() { Stream stream = new MemoryStream(); PerformWrite(stream); BinaryReader reader = new BinaryReader(stream); stream.Seek(0, SeekOrigin.Begin); Assert.AreEqual(2, reader.ReadInt64()); // term ptr, frequency reader.ReadInt64(); Assert.AreEqual(2, reader.ReadInt32()); // term ptr, frequency reader.ReadInt64(); Assert.AreEqual(3, reader.ReadInt32()); string[] strings = new string[] { "aTerm", "aDoc", "bDoc", "bTerm", "aDoc", "zDoc", "tDoc" }; foreach (string str in strings) { Assert.AreEqual(str, reader.ReadString()); } }
public override void DeserializeBody(BinaryReader br) { perm_auth_key_id = br.ReadInt64(); nonce = br.ReadInt64(); expires_at = br.ReadInt32(); encrypted_message = BytesUtil.Deserialize(br); }
public override object Read(BinaryReader reader, byte version) { if (version == 0) return new Bid(new DateTime(reader.ReadInt64()), reader.ReadByte(), reader.ReadInt32(), reader.ReadDouble(), reader.ReadInt32()); else return new Bid(new DateTime(reader.ReadInt64()), new DateTime(reader.ReadInt64()), reader.ReadByte(), reader.ReadInt32(), reader.ReadDouble(), reader.ReadInt32()); }
public ProgramHeader(BinaryReader reader, bool Is64Bit) { this.Type = (HeaderType)reader.ReadUInt32(); // 64-bit reads flags here if (Is64Bit) { this.SegmentFlags = (SegmentFlags)reader.ReadUInt32(); } this.SegmentOffset = Is64Bit ? reader.ReadInt64() : reader.ReadUInt32(); this.VirtualAddress = Is64Bit ? reader.ReadUInt64() : reader.ReadUInt32(); // Skip physical address - reserved if (Is64Bit) reader.ReadUInt64(); else reader.ReadUInt32(); this.SegmentFileSize = Is64Bit ? reader.ReadInt64() : reader.ReadUInt32(); this.SegmentLoadedSize = Is64Bit ? reader.ReadInt64() : reader.ReadUInt32(); // 32-bit reads flags here if (!Is64Bit) { this.SegmentFlags = (SegmentFlags)reader.ReadUInt32(); } this.Alignment = Is64Bit ? reader.ReadInt64() : reader.ReadUInt32(); if (this.SegmentOffset < 0 || this.SegmentFileSize < 0 || this.SegmentLoadedSize < 0 || this.Alignment < 0) { throw new BadImageFormatException("Program header values are too large to be " + "supported by this implementation"); } }
public ShrineBuffs(BinaryReader inStream) { Id = inStream.ReadInt32(); Data0Length = inStream.ReadInt32(); Data0 = inStream.ReadInt32(); Unknown3 = inStream.ReadInt64(); Unknown4 = inStream.ReadInt64(); }
public override void DeserializeBody(BinaryReader br) { id = br.ReadInt64(); access_hash = br.ReadInt64(); size = br.ReadInt32(); dc_id = br.ReadInt32(); key_fingerprint = br.ReadInt32(); }
/// <summary> /// Reads back custom data from a raw representation of the data message. /// </summary> /// <param name="reader">The binary reader used to read from the raw representation of the original data message.</param> protected override void ReadData(BinaryReader reader) { var dateTimeTicks = reader.ReadInt64(); var offsetTicks = reader.ReadInt64(); var offset = TimeSpan.FromTicks(offsetTicks); Timestamp = new DateTimeOffset(dateTimeTicks, offset); Delta = new Vector2(reader.ReadSingle(), reader.ReadSingle()); }
public override object Read(BinaryReader reader) { if (reader.ReadByte() == 0) { return new Ask(new DateTime(reader.ReadInt64()), reader.ReadByte(), reader.ReadInt32(), reader.ReadDouble(), reader.ReadInt32()); } return new Ask(new DateTime(reader.ReadInt64()), new DateTime(reader.ReadInt64()), reader.ReadByte(), reader.ReadInt32(), reader.ReadDouble(), reader.ReadInt32()); }
/// <summary> /// Load the structure from a binary reader /// </summary> /// <param name="reader"> Binary reader</param> public void LoadFromStream(System.IO.BinaryReader reader) { m_lVal1 = reader.ReadInt64(); m_lVal2 = reader.ReadInt64(); m_lVal3 = reader.ReadInt64(); m_lVal4 = reader.ReadInt64(); m_eInfo = (ChessBoard.BoardStateMaskE)reader.ReadInt32(); }
public void Read(BinaryReader reader) { Seed = reader.ReadInt32(); Name = reader.ReadLongString(); X = reader.ReadInt64(); Y = reader.ReadInt64(); Z = reader.ReadInt64(); }
public MonsterPackEntries(BinaryReader inStream) { Index0 = inStream.ReadInt32(); Unknown0 = inStream.ReadInt64(); Flag0 = inStream.ReadBoolean(); Unknown1 = inStream.ReadInt32(); Unknown2 = inStream.ReadInt64(); }
public DescentExiles(BinaryReader inStream) { Id = inStream.ReadInt32(); AreaKey = inStream.ReadInt64(); Unknown3 = inStream.ReadInt64(); VarietyKey = inStream.ReadInt64(); Unknown7 = inStream.ReadInt32(); }
public DescentStarterChest(BinaryReader inStream) { Id = inStream.ReadInt32(); Unknown1 = inStream.ReadInt64(); Unknown2 = inStream.ReadInt64(); Unknown3 = inStream.ReadInt32(); Unknown4 = inStream.ReadInt64(); }
public AccountInfo(BinaryReader reader) { Index = reader.ReadInt32(); AccountID = reader.ReadString(); Password = reader.ReadString(); UserName = reader.ReadString(); BirthDate = DateTime.FromBinary(reader.ReadInt64()); SecretQuestion = reader.ReadString(); SecretAnswer = reader.ReadString(); EMailAddress = reader.ReadString(); CreationIP = reader.ReadString(); CreationDate = DateTime.FromBinary(reader.ReadInt64()); Banned = reader.ReadBoolean(); BanReason = reader.ReadString(); ExpiryDate = DateTime.FromBinary(reader.ReadInt64()); LastIP = reader.ReadString(); LastDate = DateTime.FromBinary(reader.ReadInt64()); int count = reader.ReadInt32(); for (int i = 0; i < count; i++) { Characters.Add(new CharacterInfo(reader) { AccountInfo = this }); } Gold = reader.ReadUInt32(); if (Envir.LoadVersion >= 63) Credit = reader.ReadUInt32(); count = reader.ReadInt32(); for (int i = 0; i < count; i++) { if (!reader.ReadBoolean()) continue; UserItem item = new UserItem(reader, Envir.LoadVersion, Envir.LoadCustomVersion); if (SMain.Envir.BindItem(item) && i < Storage.Length) Storage[i] = item; } if (Envir.LoadVersion >= 10) AdminAccount = reader.ReadBoolean(); if (!AdminAccount) { for (int i = 0; i < Characters.Count; i++) { if (Characters[i] == null) continue; if (Characters[i].Deleted) continue; if ((DateTime.Now - Characters[i].LastDate).TotalDays > 13) continue; if ((Characters[i].Level >= SMain.Envir.RankBottomLevel[0]) || (Characters[i].Level >= SMain.Envir.RankBottomLevel[(byte)Characters[i].Class + 1])) { SMain.Envir.CheckRankUpdate(Characters[i]); } } } }
public BuffVisuals(BinaryReader inStream) { Id = inStream.ReadInt32(); BuffIcon = inStream.ReadInt32(); EffectA = inStream.ReadInt32(); EffectB = inStream.ReadInt32(); Unknown4 = inStream.ReadInt64(); Unknown5 = inStream.ReadInt64(); }
public QuestStaticRewards(BinaryReader inStream) { Unknown0 = inStream.ReadInt32(); Unknown1 = inStream.ReadInt32(); Unknown2 = inStream.ReadInt64(); Unknown3 = inStream.ReadInt32(); Unknown4 = inStream.ReadInt64(); Unknown5 = inStream.ReadInt64(); }
public void Read(BinaryReader br) { offsetWaveInfo = br.ReadInt64(); offsetUnknownTable = br.ReadInt64(); numBlocks = br.ReadInt32(); numUnknownTableEntries = br.ReadInt32(); headerSize = br.ReadInt32(); }
public override void DeserializeBody(BinaryReader br) { id = br.ReadInt32(); access_hash = br.ReadInt64(); date = br.ReadInt32(); admin_id = br.ReadInt32(); participant_id = br.ReadInt32(); g_a_or_b = BytesUtil.Deserialize(br); key_fingerprint = br.ReadInt64(); }
public PlainMessage(byte[] raw, string type) { using (var br = new BinaryReader(new MemoryStream(raw))) { AuthKeyId = br.ReadInt64(); MessageId = br.ReadInt64(); int length = br.ReadInt32(); Combinator = new Combinator(br.ReadBytes(length), type); } }
public Log(string directory) { LF = new IO.FileStream(directory + "log", IO.FileMode.OpenOrCreate); if (LF.Length != 0) // Read the log file, applying the changes to the specified files. { byte [] b = new byte[0x1000]; var files = new G.Dictionary <long, IO.Stream>(); LF.Position = 0; var fr = new IO.BinaryReader(LF); while (LF.Position < LF.Length) { long fileId = fr.ReadInt64(); long fileOffset = fr.ReadInt64(); int size = fr.ReadInt32(); IO.Stream f; if (!files.TryGetValue(fileId, out f)) { f = new IO.FileStream(directory + fileId, IO.FileMode.OpenOrCreate); files[fileId] = f; } if (size > 0) { if (size > b.Length) { b = new byte[size]; } LF.Read(b, 0, size); f.Position = fileOffset; f.Write(b, 0, size); } else { f.SetLength(fileOffset); } } foreach (G.KeyValuePair <long, IO.Stream> p in files) { IO.Stream f = p.Value; long length = f.Length; f.Close(); if (length == 0) { var fi = new IO.FileInfo(directory + p.Key); fi.Delete(); } } Reset(); } LFW = new IO.BinaryWriter(LF); }
internal HTTPCacheFileInfo(Uri uri, System.IO.BinaryReader reader, int version) { this.Uri = uri; this.LastAccess = DateTime.FromBinary(reader.ReadInt64()); this.BodyLength = reader.ReadInt32(); switch (version) { case 3: this.NoCache = reader.ReadBoolean(); this.StaleWhileRevalidate = reader.ReadInt64(); this.StaleIfError = reader.ReadInt64(); goto case 2; case 2: this.MappedNameIDX = reader.ReadUInt64(); goto case 1; case 1: { this.ETag = reader.ReadString(); this.LastModified = reader.ReadString(); this.Expires = DateTime.FromBinary(reader.ReadInt64()); this.Age = reader.ReadInt64(); this.MaxAge = reader.ReadInt64(); this.Date = DateTime.FromBinary(reader.ReadInt64()); this.MustRevalidate = reader.ReadBoolean(); this.Received = DateTime.FromBinary(reader.ReadInt64()); break; } } }
//充填媒体帧 public void SetBytes(Stream stream) { var br = new System.IO.BinaryReader(stream); MediaFrameVersion = br.ReadByte(); nEx = br.ReadByte(); nIsKeyFrame = br.ReadByte(); nTimetick = br.ReadInt64(); nIsAudio = br.ReadByte(); nSize = br.ReadInt32(); nOffset = br.ReadInt32(); if (MediaFrameVersion == 1) { nEncoder = br.ReadInt32(); if (nIsAudio == 0) { nSPSLen = br.ReadInt16(); nPPSLen = br.ReadInt16(); nWidth = br.ReadInt32(); nHeight = br.ReadInt32(); } else { nFrequency = br.ReadInt32(); nChannel = br.ReadInt32(); nAudioFormat = br.ReadInt16(); nSamples = br.ReadInt16(); } } Data = br.ReadBytes(nSize + nOffset); }
public override long ReadScalarValue(System.IO.BinaryReader br) { Int64 temp = br.ReadInt64(); var tmp = (temp /= 10000); return(tmp); }
private File GetFile(IO.BinaryReader br) { long size = br.ReadInt64(); DateTime created = new DateTime(br.ReadInt64()); DateTime modified = new DateTime(br.ReadInt64()); string name = ReadText(br); Dictionary <string, string> data = ReadData(br); return(new File() { Name = name, FileSize = size, CreatedDateUtc = created, ModifiedDateUtc = modified, Data = data }); }
/// <summary> /// 分析网络数据包并进行转换为信息对象 /// </summary> /// <param name="packs">接收到的封包对象</param> /// <returns></returns> /// <remarks> /// 对于分包消息,如果收到的只是片段并且尚未接收完全,则不会进行解析 /// </remarks> public static Msg ParseToMessage(params PacketNetWorkMsg[] packs) { if (packs.Length == 0 || (packs[0].PackageCount > 1 && packs.Length != packs[0].PackageCount)) { return(null); } var ms = DecompressMessagePacks(packs); if (ms == null) { //事件 OnDecompressFailed(new PackageEventArgs(packs)); return(null); } //构造读取流 System.IO.BinaryReader br = new System.IO.BinaryReader(ms, System.Text.Encoding.Unicode); //开始读出数据 Msg m = new Msg(packs[0].RemoteIP); m.PackageNo = br.ReadInt64(); //包编号 m.UserName = br.ReadString(); //用户名 m.HostName = br.ReadString(); //主机名 m.Command = (Commands)br.ReadInt64(); //命令 m.Type = (Consts)br.ReadInt64(); //数据类型 int length = br.ReadInt32(); //数据长度 m.NormalMsgBytes = new byte[length]; br.Read(m.NormalMsgBytes, 0, length); //读取内容 length = br.ReadInt32(); //附加数据长度 m.ExtendMessageBytes = new byte[length]; br.Read(m.ExtendMessageBytes, 0, length); //读取附加数据 if (m.Type == Consts.MESSAGE_TEXT) { m.NormalMsg = System.Text.Encoding.Unicode.GetString(m.NormalMsgBytes, 0, m.NormalMsgBytes.Length); //正文 m.ExtendMessage = System.Text.Encoding.Unicode.GetString(m.ExtendMessageBytes, 0, m.ExtendMessageBytes.Length); //扩展消息 m.ExtendMessageBytes = null; m.NormalMsgBytes = null; } return(m); }
//把字节流转为manifest对象 public static ManifestInfo GetManifestFromBytes(byte[] bytes) { ManifestInfo manifestInfo = null; try { //System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes.Uncompress()); System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes); System.IO.BinaryReader br = new System.IO.BinaryReader(ms); br.BaseStream.Position = 0; manifestInfo = new ManifestInfo(); manifestInfo.version = br.ReadString(); uint num = br.ReadUInt32(); AssetInfo assetInfo; while (num-- > 0) { List <string> fileNameList = new List <string>(); string subPath = br.ReadString(); long length = br.ReadInt64(); long createDate = br.ReadInt64(); string md5 = br.ReadString(); string suffix = br.ReadString(); uint fileNameNum = br.ReadUInt32(); while (fileNameNum-- > 0) { fileNameList.Add(br.ReadString()); } assetInfo = new AssetInfo(subPath, length, createDate, md5, suffix, fileNameList); manifestInfo.assetDic.Add(assetInfo.SubPath, assetInfo); } br.Close(); ms.Close(); ms.Dispose(); return(manifestInfo); } catch (Exception e) { Debugger.LogError("GetManifestFromBytes:" + e); } finally { } return(null); }
public static DDCaps Read(System.IO.BinaryReader r) { DDCaps caps = new DDCaps(); caps.caps1 = r.ReadInt32(); caps.caps2 = r.ReadInt32(); r.ReadInt64(); // reserved[2] return(caps); }
private Folder GetFolder(IO.BinaryReader br) { DateTime created = new DateTime(br.ReadInt64()); string name = ReadText(br); return(new Folder() { Name = name, CreatedDateUtc = created }); }
public static object LoadKey(this DbColumnType keyType, io.BinaryReader reader) { switch (keyType) { case DbColumnType.Char: // return(reader.ReadChar()); case DbColumnType.Byte: // return(reader.ReadByte()); case DbColumnType.Int16: // return(reader.ReadInt16()); case DbColumnType.Int32: // return(reader.ReadInt32()); case DbColumnType.Int64: // return(reader.ReadInt64()); case DbColumnType.Single: // return(reader.ReadSingle()); case DbColumnType.Double: // return(reader.ReadDouble()); case DbColumnType.Decimal: // return(reader.ReadDecimal()); case DbColumnType.String: // var length = reader.ReadByte(); var chars = reader.ReadChars(length); return(new string(chars)); default: return(null); } }
public static Queue <Tuple <int, byte[]> > GetBuffByFileLong(string file) { var r = new Queue <Tuple <int, byte[]> >(); var fs = new System.IO.FileStream(file, System.IO.FileMode.Open); var br = new System.IO.BinaryReader(fs); while (fs.Length > fs.Position + 4) { var len = br.ReadInt64(); //var buff = br.ReadBytes(len); //var t = new Tuple<int, byte[]>(len, buff); //if (len == buff.Length) // r.Enqueue(t); } fs.Close(); return(r); }
VariableReference ReadVariableReference(System.IO.BinaryReader br) { VariableReference res = null; if (br.ReadBoolean()) { res = new Debugger.VariableReference(); res.Address = br.ReadInt64(); res.Type = (VariableTypes)br.ReadByte(); res.Offset = br.ReadInt32(); res.Name = br.ReadString(); res.Parent = ReadVariableReference(br); int cnt = br.ReadInt32(); res.Parameters = new VariableReference[cnt]; for (int i = 0; i < cnt; i++) { res.Parameters[i] = ReadVariableReference(br); } } return(res); }
/// <summary> /// Deserialize from a binary stream /// </summary> /// <param name="reader">The binary reader to deserialize from</param> /// <returns>The deserialized instance (always the current object)</returns> public object Deserialize(System.IO.BinaryReader reader) { this.TimeStamp = DateTime.FromBinary(reader.ReadInt64()); this.Width = reader.ReadInt32(); this.Height = reader.ReadInt32(); this.Stride = reader.ReadInt32(); var present = reader.ReadByte(); if (present == DefinedElement) { var length = reader.ReadInt32(); this.Data = reader.ReadBytes(length); } else { this.Data = null; } return(this); }
internal override void Read(System.IO.BinaryReader reader, BinaryReadInfo readInfo) { uint length = reader.ReadUInt32(); ID = reader.ReadUInt32(); uint numSections = reader.ReadUInt32(); string componentName = null; bool canResize = false; bool canFlip = false; double minSize = ComponentHelper.GridSize; List <ComponentProperty> properties = new List <ComponentProperty>(); List <ConnectionGroup> connections = new List <ConnectionGroup>(); List <RenderDescription> renderDescriptions = new List <RenderDescription>(); List <Conditional <FlagOptions> > flagOptions = new List <Conditional <FlagOptions> >(); ComponentDescriptionMetadata descriptionMetadata = new ComponentDescriptionMetadata(); uint?iconResourceId = null; for (uint sectionCounter = 0; sectionCounter < numSections; sectionCounter++) { ushort sectionType = reader.ReadUInt16(); uint sectionLength = reader.ReadUInt32(); #region Metadata if (sectionType == (uint)BinaryConstants.ComponentSectionType.Metadata) { componentName = reader.ReadString(); canResize = reader.ReadBoolean(); canFlip = reader.ReadBoolean(); minSize = reader.ReadDouble(); descriptionMetadata.Type = String.Format("Binary r{0} (*.cdcom)", readInfo.FormatVersion); descriptionMetadata.GUID = new Guid(reader.ReadBytes(16)); descriptionMetadata.Author = reader.ReadString(); if (readInfo.IsSignatureValid && readInfo.Certificate != null && readInfo.IsCertificateTrusted) { descriptionMetadata.Author = readInfo.Certificate.GetNameInfo(X509NameType.EmailName, false); } descriptionMetadata.Version = new Version(reader.ReadUInt16(), reader.ReadUInt16()); descriptionMetadata.AdditionalInformation = reader.ReadString(); descriptionMetadata.ImplementSet = reader.ReadString(); descriptionMetadata.ImplementItem = reader.ReadString(); descriptionMetadata.Signature.IsHashValid = readInfo.IsSignatureValid; descriptionMetadata.Signature.Certificate = readInfo.Certificate; descriptionMetadata.Signature.IsCertificateTrusted = readInfo.IsCertificateTrusted; int iconResource = reader.ReadInt32(); if (iconResource != -1) { iconResourceId = (uint)iconResource; } long created = reader.ReadInt64(); } #endregion #region Flags else if (sectionType == (uint)BinaryConstants.ComponentSectionType.Flags) { uint numFlagGroups = reader.ReadUInt32(); for (uint j = 0; j < numFlagGroups; j++) { IConditionTreeItem conditions; if (readInfo.FormatVersion > 1) { conditions = reader.ReadConditionTree(); } else { conditions = reader.ReadConditionCollection(); } FlagOptions value = (FlagOptions)reader.ReadUInt32(); flagOptions.Add(new Conditional <FlagOptions>(value, conditions)); } } #endregion #region Properties else if (sectionType == (uint)BinaryConstants.ComponentSectionType.Properties) { uint numProperties = reader.ReadUInt32(); for (uint j = 0; j < numProperties; j++) { string propertyName = reader.ReadString(); string serializedName = reader.ReadString(); string displayName = reader.ReadString(); BinaryType propType; object rawDefaultValue = reader.ReadType(out propType); PropertyUnion defaultValue = propType.ToPropertyUnion(rawDefaultValue); string[] enumOptions = null; if (propType == BinaryType.Enum) { enumOptions = new string[reader.ReadInt32()]; for (int k = 0; k < enumOptions.Length; k++) { enumOptions[k] = reader.ReadString(); } } // Format rules List <ComponentPropertyFormat> formatRules = new List <ComponentPropertyFormat>(); uint numFormatRules = reader.ReadUInt32(); for (uint k = 0; k < numFormatRules; k++) { IConditionTreeItem conditions; if (readInfo.FormatVersion > 1) { conditions = reader.ReadConditionTree(); } else { conditions = reader.ReadConditionCollection(); } string formatRule = reader.ReadString(); formatRules.Add(new ComponentPropertyFormat(formatRule, conditions)); } // Other conditions uint numOtherConditions = reader.ReadUInt32(); Dictionary <PropertyOtherConditionType, IConditionTreeItem> otherConditions = new Dictionary <PropertyOtherConditionType, IConditionTreeItem>((int)numOtherConditions); for (uint k = 0; k < numOtherConditions; k++) { uint uintConditionType = reader.ReadUInt32(); IConditionTreeItem conditions; if (readInfo.FormatVersion > 1) { conditions = reader.ReadConditionTree(); } else { conditions = reader.ReadConditionCollection(); } PropertyOtherConditionType conditionType = (PropertyOtherConditionType)uintConditionType; otherConditions.Add(conditionType, conditions); } properties.Add(new ComponentProperty(propertyName, serializedName, displayName, BinaryIOExtentions.BinaryTypeToPropertyType(propType), defaultValue, formatRules.ToArray(), otherConditions, enumOptions)); } } #endregion #region Configurations else if (sectionType == (uint)BinaryConstants.ComponentSectionType.Configurations) { uint numConfigurations = reader.ReadUInt32(); for (int j = 0; j < numConfigurations; j++) { string configurationName = reader.ReadString(); string implementationName = reader.ReadString(); int numSetters = reader.ReadInt32(); var setters = new Dictionary <string, PropertyUnion>(numSetters); for (int k = 0; k < numSetters; k++) { BinaryType tempType; string name = reader.ReadString(); var setterValue = reader.ReadType(out tempType); setters.Add(name, tempType.ToPropertyUnion(setterValue)); } int iconID = reader.ReadInt32(); var configuration = new ComponentConfiguration(implementationName, configurationName, setters); descriptionMetadata.Configurations.Add(configuration); if (iconID != -1) { iconResources.Add(configuration, (uint)iconID); } } } #endregion #region Connections else if (sectionType == (uint)BinaryConstants.ComponentSectionType.Connections) { uint numConnectionGroups = reader.ReadUInt32(); List <ConnectionGroup> connectionGroups = new List <ConnectionGroup>(); for (int j = 0; j < numConnectionGroups; j++) { IConditionTreeItem conditions; if (readInfo.FormatVersion > 1) { conditions = reader.ReadConditionTree(); } else { conditions = reader.ReadConditionCollection(); } List <ConnectionDescription> tConnections = new List <ConnectionDescription>(); uint numConnections = reader.ReadUInt32(); for (uint k = 0; k < numConnections; k++) { tConnections.Add(new ConnectionDescription(reader.ReadComponentPoint(), reader.ReadComponentPoint(), (ConnectionEdge)reader.ReadInt32(), reader.ReadString())); } connections.Add(new ConnectionGroup(conditions, tConnections.ToArray())); } } #endregion #region Render else if (sectionType == (uint)BinaryConstants.ComponentSectionType.Render) { uint numRenderGroups = reader.ReadUInt32(); for (uint j = 0; j < numRenderGroups; j++) { IConditionTreeItem conditions; if (readInfo.FormatVersion > 1) { conditions = reader.ReadConditionTree(); } else { conditions = reader.ReadConditionCollection(); } int numRenderCommands = (int)reader.ReadUInt32(); List <IRenderCommand> renderCommands = new List <IRenderCommand>(numRenderCommands); for (int k = 0; k < numRenderCommands; k++) { RenderCommandType commandType = (RenderCommandType)reader.ReadUInt32(); switch (commandType) { case RenderCommandType.Line: { ComponentPoint start = reader.ReadComponentPoint(); ComponentPoint end = reader.ReadComponentPoint(); double thickness = reader.ReadDouble(); renderCommands.Add(new Line(start, end, thickness)); } continue; case RenderCommandType.Rect: { ComponentPoint location = reader.ReadComponentPoint(); double width = reader.ReadDouble(); double height = reader.ReadDouble(); double thickness = reader.ReadDouble(); bool fill = (reader.ReadUInt32() == 0 ? false : true); renderCommands.Add(new Rectangle(location, width, height, thickness, fill)); } continue; case RenderCommandType.Ellipse: { ComponentPoint centre = reader.ReadComponentPoint(); double radiusX = reader.ReadDouble(); double radiusY = reader.ReadDouble(); double thickness = reader.ReadDouble(); bool fill = (reader.ReadUInt32() == 0 ? false : true); renderCommands.Add(new Ellipse(centre, radiusX, radiusY, thickness, fill)); } continue; case RenderCommandType.Path: { ComponentPoint start = reader.ReadComponentPoint(); double thickness = reader.ReadDouble(); bool fill = (reader.ReadUInt32() == 0 ? false : true); int numCommands = reader.ReadInt32(); List <IPathCommand> pathCommands = new List <IPathCommand>(numCommands); for (int l = 0; l < numCommands; l++) { CommandType pType = (CommandType)reader.ReadInt32(); IPathCommand theCommand = null; switch (pType) { case CommandType.MoveTo: theCommand = new MoveTo(); break; case CommandType.LineTo: theCommand = new LineTo(); break; case CommandType.CurveTo: theCommand = new CurveTo(); break; case CommandType.EllipticalArcTo: theCommand = new EllipticalArcTo(); break; case CommandType.QuadraticBeizerCurveTo: theCommand = new QuadraticBeizerCurveTo(); break; case CommandType.SmoothCurveTo: theCommand = new SmoothCurveTo(); break; case CommandType.SmoothQuadraticBeizerCurveTo: theCommand = new SmoothQuadraticBeizerCurveTo(); break; default: theCommand = new ClosePath(); break; } theCommand.Read(reader); pathCommands.Add(theCommand); } renderCommands.Add(new RenderPath(start, thickness, fill, pathCommands)); } continue; case RenderCommandType.Text: { byte formattedTextVersion = reader.ReadByte(); ComponentPoint location = reader.ReadComponentPoint(); TextAlignment alignment = (TextAlignment)reader.ReadUInt32(); uint numTextRuns = reader.ReadUInt32(); List <TextRun> textRuns = new List <TextRun>((int)numTextRuns); for (uint l = 0; l < numTextRuns; l++) { TextRunFormattingType formattingType = (TextRunFormattingType)reader.ReadUInt32(); double runSize = reader.ReadDouble(); string runText = reader.ReadString(); textRuns.Add(new TextRun(runText, new TextRunFormatting(formattingType, runSize))); } renderCommands.Add(new Text(location, alignment, textRuns)); } continue; } } renderDescriptions.Add(new RenderDescription(conditions, renderCommands.ToArray())); } } #endregion #region Skip else { // Unknown type - skip reader.BaseStream.Seek(sectionLength, SeekOrigin.Current); } #endregion } ComponentDescription = new ComponentDescription(ID.ToString(), componentName, canResize, canFlip, minSize, properties.ToArray(), connections.ToArray(), renderDescriptions.ToArray(), flagOptions.ToArray(), descriptionMetadata); if (iconResourceId.HasValue) { mainIconResource = iconResourceId.Value; } }
public static SteamGameServer GetServerInfo(IPEndPoint gameServerQueryEndpoint) { byte[] startBytes = new byte[] { 0xFF, 0xFF, 0xFF, 0xFF }; byte Header = 0x54; string qryAsString = "Source Engine Query"; List <byte> qry = new List <byte>(); qry.AddRange(startBytes); qry.Add(Header); qry.AddRange(Encoding.Default.GetBytes(qryAsString)); qry.Add(0x00); ServerQueryResponse item = null; var sw = new System.Diagnostics.Stopwatch(); var buffer = new byte[2048]; using (System.Net.Sockets.UdpClient udp = new System.Net.Sockets.UdpClient()) { try { udp.Connect(gameServerQueryEndpoint); udp.AllowNatTraversal(true); udp.Client.ReceiveTimeout = 300; sw.Start(); udp.Send(qry.ToArray(), qry.Count); System.Net.Sockets.SocketError errorCode; var receivedLenght = udp.Client.Receive(buffer, 0, 2048, System.Net.Sockets.SocketFlags.None, out errorCode); sw.Stop(); if (errorCode != System.Net.Sockets.SocketError.Success) { return(null); } if (receivedLenght == buffer.Length) { throw new Exception("Buffer zu klein"); } var receivedBytes = new byte[receivedLenght]; Buffer.BlockCopy(buffer, 0, receivedBytes, 0, receivedLenght); //var receivedBytes = udp.Receive(ref endp); var enconding = System.Text.Encoding.UTF8; // System.Text.Encoding.ASCII; using (var mem = new System.IO.MemoryStream(receivedBytes)) using (var br = new System.IO.BinaryReader(mem, CharEncoding)) { br.ReadInt32(); br.ReadByte(); item = new ServerQueryResponse(); item.IpAdresse = gameServerQueryEndpoint.Address.ToString(); item.ProtocolVersion = br.ReadByte(); item.Ping = (int)sw.ElapsedMilliseconds; var count = Array.FindIndex(receivedBytes, (int)mem.Position, IsNULL) - (int)mem.Position; item.GameServerName = enconding.GetString(br.ReadBytes(count)); br.ReadByte(); // null-byte count = Array.FindIndex(receivedBytes, (int)mem.Position, IsNULL) - (int)mem.Position; item.Map = enconding.GetString(br.ReadBytes(count)); br.ReadByte(); // null-byte //item.Map = ReadStringNullTerminated(br, enconding); count = Array.FindIndex(receivedBytes, (int)mem.Position, IsNULL) - (int)mem.Position; item.Folder = enconding.GetString(br.ReadBytes(count)); br.ReadByte(); // null-byte count = Array.FindIndex(receivedBytes, (int)mem.Position, IsNULL) - (int)mem.Position; item.Game = enconding.GetString(br.ReadBytes(count)); br.ReadByte(); // null-byte item.ID = br.ReadInt16(); item.CurrentPlayerCount = br.ReadByte(); item.MaxPlayerCount = br.ReadByte(); item.CurrentBotsCount = br.ReadByte(); item.ServerType = (ServerQueryRequestType)br.ReadByte(); item.Password = br.ReadByte() == 1; item.VAC = br.ReadByte() == 1; item.Mode = br.ReadByte() == 1; count = Array.FindIndex(receivedBytes, (int)mem.Position, IsNULL) - (int)mem.Position; item.Version = enconding.GetString(br.ReadBytes(count)); br.ReadByte(); // null-byte var edfCode = br.ReadByte(); item.Data = receivedBytes; if ((edfCode & 0x80) == 0x80) { item.GamePort = br.ReadUInt16(); } if ((edfCode & 0x10) == 0x10) { item.ServerSteamId = br.ReadInt64(); } //if ((edfCode & 0x40) == 0x40) // Console.WriteLine("spectator server"); if ((edfCode & 0x20) == 0x20) { count = Array.FindIndex(receivedBytes, (int)mem.Position, IsNULL) - (int)mem.Position; item.Keywords = enconding.GetString(br.ReadBytes(count)); br.ReadByte(); // null-byte } if ((edfCode & 0x01) == 0x01) { item.GameID = br.ReadInt64(); } // https://community.bistudio.com/wiki/STEAMWORKSquery // https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol } RequestRules(item, udp); if (item.CurrentPlayerCount > 0) { udp.Client.ReceiveTimeout = Math.Max(300, Convert.ToInt32((6d * item.CurrentPlayerCount))); RequestPlayers(item, udp); } } catch { sw.Stop(); } } return(item != null ? new SteamGameServer { Host = gameServerQueryEndpoint.Address, QueryPort = gameServerQueryEndpoint.Port, Name = item.GameServerName, //Gamename = SteamGameNameFilter, Map = item.Map, Mission = item.Game, MaxPlayers = item.MaxPlayerCount, CurrentPlayerCount = item.CurrentPlayerCount, Passworded = item.Password, Port = item.GamePort, Version = item.Version, Keywords = item.Keywords, CurrentPlayers = new string[0], Ping = item.Ping, Players = item.Players?.Cast <ISteamGameServerPlayer>().ToArray(), Mods = GetValue("modNames", item.KeyValues), Modhashs = GetValue("modHashes", item.KeyValues), Signatures = GetValue("sigNames", item.KeyValues), VerifySignatures = item.Keywords.Contains(",vt,") } : null); }
/// <summary> /// DeSerialize /// </summary> /// <param name="parent"></param> /// <param name="reader"></param> public override void Unpack(IInternalPersistent parent, BinaryReader reader) { System.IO.BinaryReader binaryReader = reader; long l = binaryReader.ReadInt64(); if (l >= 0) { DiskBuffer.DataAddress = l; } long cnt = binaryReader.ReadInt64(); long saa = binaryReader.ReadInt64(); if ((Count > 0 && cnt == 0) || StartAllocatableAddress > 0 && saa == 0) { binaryReader.ReadInt64(); binaryReader.ReadInt64(); binaryReader.ReadInt64(); binaryReader.ReadInt64(); if (reader.ReadBoolean()) { var rs = new DeletedBlockInfo(); rs.Unpack(parent, reader); } return; } Count = cnt; //BinaryReader.ReadInt32(); StartAllocatableAddress = saa; // BinaryReader.ReadInt64(); EndAllocatableAddress = binaryReader.ReadInt64(); NextAllocatableAddress = binaryReader.ReadInt64(); long obh = binaryReader.ReadInt64(); long obt = binaryReader.ReadInt64(); DataBlockSize dataBlockSize; if (parent != null) { File.File f = (File.File)InternalPersistent.GetParent(parent, typeof(File.File), true); dataBlockSize = f.DataBlockSize; } else { dataBlockSize = (DataBlockSize)DiskBuffer.Length; } if (obh >= 0) { OccupiedBlocksHead = new Sop.DataBlock(dataBlockSize); OccupiedBlocksHead.DataAddress = obh; } else if (OccupiedBlocksHead != null) { OccupiedBlocksHead = null; } if (obt >= 0) { OccupiedBlocksTail = new Sop.DataBlock(dataBlockSize); OccupiedBlocksTail.DataAddress = obt; } else if (OccupiedBlocksTail != null) { OccupiedBlocksTail = null; } if (reader.ReadBoolean()) { RecycledSegment = new DeletedBlockInfo(); RecycledSegment.Unpack(parent, reader); RecycledSegmentBeforeTransaction = (DeletedBlockInfo)RecycledSegment.Clone(); } }
public override void Read(System.IO.BinaryReader br) { Int64 tmp = br.ReadInt64(); propertyValue = DateTime.FromFileTime(tmp); }
public override object[] ReadDbRecord(int offset) { var mainMask = Table.RowMask; var bytes = Table.RowMaskLength; //point to record offset reader.BaseStream.Position = offset; //read record var buffer = new byte[sizeof(UInt64)]; reader.Read(buffer, 0, bytes); var recordMask = BitConverter.ToUInt64(buffer, 0); //copy main var bitMask = mainMask; var columnCount = Table.Count; //create record according to table columns var dbRecord = new object[columnCount]; for (var i = 0; i < columnCount; i++) { var colType = Table.ColumnTypes[i]; if ((recordMask & bitMask) == 0) { //not null value object value = null; switch (colType) { case DbColumnType.Char: value = reader.ReadChar(); break; case DbColumnType.Byte: value = reader.ReadByte(); break; case DbColumnType.Int16: value = reader.ReadInt16(); break; case DbColumnType.Int32: value = reader.ReadInt32(); break; case DbColumnType.Int64: value = reader.ReadInt64(); break; case DbColumnType.Single: value = reader.ReadSingle(); break; case DbColumnType.Double: value = reader.ReadDouble(); break; case DbColumnType.Decimal: value = reader.ReadDecimal(); break; case DbColumnType.String: value = reader.ReadString(); break; default: throw new ArgumentException($"invalid column type: {colType}"); } //store value in right spot dbRecord[i] = value; } bitMask >>= 1; } // return(dbRecord); }
public long ReadLong() { return(IPAddress.NetworkToHostOrder(br.ReadInt64())); }
public long getLong() { return(reader.ReadInt64()); }
public override void Read(System.IO.BinaryReader br) { Int64 temp = br.ReadInt64(); this.propertyValue = (double)(temp /= 10000); }
public override long ReadScalarValue(System.IO.BinaryReader br) { var r = br.ReadInt64(); return(r); }
public override DateTime ReadScalarValue(System.IO.BinaryReader br) { Int64 tmp = br.ReadInt64(); return(DateTime.FromFileTime(tmp)); }