/// <summary> /// Parses the given packet contained in the byte buffer array and returns /// a list of packets /// </summary> /// <param name="buffer"></param> /// <param name="length"></param> /// <returns></returns> public static LinkedList <AMFDataType> getPacketVars(byte[] buffer, int length, int offset) { //the linked list of packet vars LinkedList <AMFDataType> packetVars = new LinkedList <AMFDataType>(); //read the header byte to determine size MemoryStream packetStream = new MemoryStream(buffer, offset, length); byte header = (byte)packetStream.ReadByte(); header &= 0xC0; // isolate the size information //seek into the packet packetStream.Seek(AMFHeader.getHeaderSize(header) - 1, SeekOrigin.Current); while (packetStream.Position < length) { byte type = (byte)packetStream.ReadByte(); Console.WriteLine("Looking at type: " + type); AMFDataType var = findAppropriateReader(type); var.read(packetStream); packetVars.AddLast(var); } return(packetVars); }
public void addParameter(string key, AMFDataType param) { members.Add(key, param); }