public static NetworkLog GetNetworkLog(string filename) { if (!s_initialized) Initialize(); var ext = Path.GetExtension(filename); var extFittingDumps = new List<NetworkLogWrapper>(); foreach (var info in s_logs) { if (info.FileExtension == ext) extFittingDumps.Add(info); } if (extFittingDumps.Count == 0) extFittingDumps = s_logs; else if (extFittingDumps.Count == 1) return extFittingDumps[0].Activate(NetworkLogMode.Reading); byte[] header; using (var sh = new StreamHandler(filename, FileMode.Open)) header = sh.ReadBytes(Math.Min((int)sh.Length, s_maxHeaderLength)); foreach (var wrapper in extFittingDumps) { if (wrapper.Fits(header)) return wrapper.Activate(NetworkLogMode.Reading); } return null; }
internal RemoteConnection(Stream pipeIn, Stream pipeOut, bool isClient) { this.pipeIn = pipeIn; this.pipeOut = pipeOut; this.isClient = isClient; localProcessId = Process.GetCurrentProcess().Id; callStack = new RemoteCallStack(); streamHandler = new StreamHandler(pipeIn, pipeOut); if(!isClient) { CfxRuntime.OnCfxShutdown += new Action(CfxRuntime_OnCfxShutdown); } writer = new Thread(WriteLoopEntry); reader = new Thread(ReadLoopEntry); writer.Name = "cfx_rpc_writer"; reader.Name = "cfx_rpc_reader"; writer.IsBackground = true; reader.IsBackground = true; writer.Start(); reader.Start(); }
public void Write(StreamHandler Writer) { Writer.WriteUInt32((uint)Flags); if ((Flags & ( SpellCastTargetFlags.Unit | SpellCastTargetFlags.Unk2 | SpellCastTargetFlags.Object | SpellCastTargetFlags.Corpse | SpellCastTargetFlags.PvPCorpse )) != 0) Writer.WritePackedGuid(TargetUnit); if ((Flags & (SpellCastTargetFlags.Item | SpellCastTargetFlags.TradeItem)) != 0) Writer.WritePackedGuid(TargetItem); if ((Flags & SpellCastTargetFlags.SourceLocation) != 0) { Writer.WritePackedGuid(SourceTransportGuid); Writer.WriteStruct<Vector3>(SourceLocation); } if ((Flags & SpellCastTargetFlags.DestLocation) != 0) { Writer.WritePackedGuid(DestTransportGuid); Writer.WriteStruct<Vector3>(DestLocation); } if ((Flags & SpellCastTargetFlags.String) != 0) Writer.WriteCString(StringTarget); }
protected override void ElementWrite(StreamHandler writer, int index) { if (index == -3) writer.UnalignedWriteInt(this.UnkByte, 2); else base.ElementWrite(writer, index); }
protected override void ElementRead(StreamHandler reader, int index) { if (index == -3) this.UnkByte = reader.UnalignedReadTinyInt(2); else base.ElementRead(reader, index); }
public override void Read(StreamHandler reader) { Entity = reader.ReadGuid(); Model = reader.ReadUInt32(); Race = (Races)reader.ReadByte(); Gender = (Genders)reader.ReadByte(); Class = (Classes)reader.ReadByte(); Skin = reader.ReadByte(); Face = reader.ReadByte(); Hair = reader.ReadByte(); HairColor = reader.ReadByte(); FaceFeatures = reader.ReadByte(); Guild = reader.ReadGuid(); Head = reader.ReadUInt32(); Shoulders = reader.ReadUInt32(); Body = reader.ReadUInt32(); Chest = reader.ReadUInt32(); Waist = reader.ReadUInt32(); Legs = reader.ReadUInt32(); Feet = reader.ReadUInt32(); Wrists = reader.ReadUInt32(); Hands = reader.ReadUInt32(); Back = reader.ReadUInt32(); Tabard = reader.ReadUInt32(); }
protected override void ReadElement(StreamHandler reader, MovementStatusElements element, MovementStatus status, byte[] guid, byte[] tguid) { if (element == MovementStatusElements.GenericDword2) this.NewValue = reader.ReadSingle(); else base.ReadElement(reader, element, status, guid, tguid); }
protected override void ElementRead(StreamHandler reader, int index) { if (index == -2) this.NewValue = reader.ReadUInt32(); else base.ElementRead(reader, index); }
public override void Read(StreamHandler Reader) { this.Count = Reader.ReadByte(); this.Seed = Reader.ReadUInt32(); this.ClientSeed = Reader.ReadBytes(16); this.ServerSeed = Reader.ReadBytes(16); }
protected override void ElementRead(StreamHandler reader, int index) { if (index == -1) this.ChangeCounter = reader.ReadUInt32(); else throw new InvalidOperationException("Unknown read element: " + index); }
protected override void ReadElement(StreamHandler reader, MovementStatusElements element, MovementStatus status, byte[] guid, byte[] tguid) { if (element == MovementStatusElements.GenericDword0) this.ChangeCounter = reader.ReadUInt32(); else base.ReadElement(reader, element, status, guid, tguid); }
public void Read(StreamHandler Reader) { Flags = (SpellCastTargetFlags)Reader.ReadUInt32(); if ((Flags & ( SpellCastTargetFlags.Unit | SpellCastTargetFlags.Unk2 | SpellCastTargetFlags.Object | SpellCastTargetFlags.Corpse | SpellCastTargetFlags.PvPCorpse )) != 0) TargetUnit = Reader.ReadPackedGuid(); if ((Flags & (SpellCastTargetFlags.Item | SpellCastTargetFlags.TradeItem)) != 0) TargetItem = Reader.ReadPackedGuid(); if ((Flags & SpellCastTargetFlags.SourceLocation) != 0) { SourceTransportGuid = Reader.ReadPackedGuid(); SourceLocation = Reader.ReadVector3(); } if ((Flags & SpellCastTargetFlags.DestLocation) != 0) { DestTransportGuid = Reader.ReadPackedGuid(); DestLocation = Reader.ReadVector3(); } if ((Flags & SpellCastTargetFlags.String) != 0) StringTarget = Reader.ReadCString(); }
public override void Save(StreamHandler writer) { writer.WritePackedGuid(this.Unit); foreach (var update in this.Auras) update.Save(writer); }
protected override void ElementRead(StreamHandler reader, int index) { if (index == -5) this.Unk = reader.ReadUInt32(); else this.Data[-index - 1] = reader.ReadBytes(reader.ReadInt32()); }
public ObjectBus(StreamHandler streamHandler) { if (streamHandler == null) throw new ArgumentNullException ("streamHandler"); this.streamHandler = streamHandler; streamHandler.RegisterCallback (streamHandlerCallback); }
public override void Read(StreamHandler reader) { if (this.Reader != reader) throw new ArgumentException("The provided reader in argument must be the same " + "instance of StreamHandler as the provided reader in the constructor.", "reader"); EnsureRead(); }
public override void Read(StreamHandler reader) { this.Unit = reader.ReadPackedGuid(); var count = reader.ReadInt32(); this.ThreatList = new ThreatUpdatePair[count]; for (int i = 0; i < count; ++i) this.ThreatList[i] = new ThreatUpdatePair { Unit = reader.ReadPackedGuid(), Threat = reader.ReadUInt32() }; }
private void ReadObjectValuesUpdate(StreamHandler Reader) { var guid = Reader.ReadPackedGuid(); var values = ReadValues(Reader); if (!m_valuesUpdates.ContainsKey(guid)) m_valuesUpdates.Add(guid, values); else Console.WriteLine("Error: Updated object duplicate guid {0}", guid); }
protected override void WriteElement(StreamHandler writer, RegularMovementPacket.MovementStatusElements element, MovementStatus status, byte[] guid, byte[] tguid) { if (element == MovementStatusElements.GenericDword0) { writer.FlushUnalignedBits(); writer.WriteUInt32(this.ChangeCounter); } else base.WriteElement(writer, element, status, guid, tguid); }
/// <summary> /// Overrides <see cref="XmlPacketSegment.Parse"/>, /// parsing the current FinalListPacketSegment. /// </summary> /// <param name="Reader">The packet data reader.</param> /// <param name="Container">The parent packet segment container.</param> /// <param name="parser">The Xml packet parser.</param> /// <returns>The parsed string.</returns> public override string Parse(XmlParser parser, StreamHandler Reader, IXmlPacketSegmentContainer Container) { string content = "List of " + this.SegmentName + ":" + Environment.NewLine; ulong i = 0; while (Reader.BaseStream.Position < Reader.BaseStream.Length) content += ParseList(i++, parser, Reader, this); return content; }
protected override void ElementWrite(StreamHandler writer, int index) { if (index == -1) { writer.FlushUnalignedBits(); writer.WriteUInt32(this.ChangeCounter); } else throw new InvalidOperationException("Unknown write element: " + index); }
protected override void ElementWrite(StreamHandler writer, int index) { if (index == -2) { writer.FlushUnalignedBits(); writer.WriteUInt32(this.NewValue); } else base.ElementWrite(writer, index); }
public override void Save(StreamHandler writer) { writer.WritePackedGuid(this.Unit); writer.WriteInt32(ThreatList.Length); for (int i = 0; i < ThreatList.Length; ++i) { writer.WritePackedGuid(ThreatList[i].Unit); writer.WriteUInt32(ThreatList[i].Threat); } }
protected override void WriteElement(StreamHandler writer, RegularMovementPacket.MovementStatusElements element, MovementStatus status, byte[] guid, byte[] tguid) { if (element == MovementStatusElements.GenericDword2) { writer.FlushUnalignedBits(); writer.WriteSingle(this.NewValue); } else base.WriteElement(writer, element, status, guid, tguid); }
public override void Save(StreamHandler writer) { writer.WriteInt32(Items.Length); foreach (var item in Items) writer.WriteStruct(item); writer.WriteUInt32(TotalItemCount); writer.WriteUInt32(NextSearchDelayMs); }
public override void Read(StreamHandler reader) { uint DisplayedItemCount = reader.ReadUInt32(); Items = new AuctionListItem[DisplayedItemCount]; for (uint i = 0; i < DisplayedItemCount; ++i) Items[i] = reader.ReadStruct<AuctionListItem>(); TotalItemCount = reader.ReadUInt32(); NextSearchDelayMs = reader.ReadUInt32(); }
public override void Save(StreamHandler writer) { writer.WriteByte((byte)ContainerSlot); writer.WriteByte((byte)Slot); writer.WriteByte(CastId); writer.WriteUInt32(SpellId); writer.WriteGuid(ItemGuid); writer.WriteUInt32(GlyphSlot); writer.WriteByte(UnkFlags); TargetData.Write(writer); }
public override void Read(StreamHandler reader) { ContainerSlot = (InventorySlot)reader.ReadByte(); Slot = (InventorySlot)reader.ReadByte(); CastId = reader.ReadByte(); SpellId = reader.ReadUInt32(); ItemGuid = reader.ReadGuid(); GlyphSlot = reader.ReadUInt32(); UnkFlags = reader.ReadByte(); TargetData.Read(reader); }
public ObjectBus(StreamHandler streamHandler) { #if TRACE Console.WriteLine (new System.Diagnostics.StackTrace (true).GetFrame (0)); #endif if (streamHandler == null) throw new ArgumentNullException ("streamHandler"); this.streamHandler = streamHandler; streamHandler.RegisterCallback (StreamHandlerCallback); streamHandler.RegisterDisconnectHandler (streamHandlerDisconnected); systemSession = CreateSession (Guid.Empty, SystemSessionDisconnected); RegisterType (typeof(BusReadyMessage), busReadyMessageReceived); }
protected override void ElementWrite(StreamHandler writer, int index) { if (index == -5) { writer.WriteUInt32(this.Unk); } else { index = -index - 1; writer.WriteInt32(this.Data[index].Length); writer.WriteBytes(this.Data[index]); } }
public void GetFileFailtest() { Assert.Throws <IOException>(() => StreamHandler.GetFileAsMemoryStream(_testFilename)); }
protected override void ElementWrite(StreamHandler writer, int index) { writer.WriteSingle(this.NewValue); }
protected override void PackedRead(StreamHandler reader) { this.Unit = reader.ReadGuid(); }
protected override void PackedSave(StreamHandler writer) { writer.WriteGuid(this.Unit); }
public override void Read(StreamHandler reader) { this.Unit = reader.ReadPackedGuid(); }
public override void Save(StreamHandler writer) { writer.WriteGuid(this.Unit); }
protected override void ElementRead(StreamHandler reader, int index) { this.NewValue = reader.ReadSingle(); }