public static void SerializeStreamData(IStreamWriter stream, StreamDataCommand command) { ChannelIdSerializer.SerializeChannelId(stream, command.Channel); StreamOffsetSerializer.SerializeStreamOffset(stream, command.Offset); stream.WriteBool(command.IsAtEndPosition); stream.WriteLength((ushort)command.Payload.Length); stream.WriteOctets(command.Payload); }
public void SendCommand(ushort streamId, Command command) { var isAtEndPosition = true; var offset = new StreamOffset(0); var channel = new ChannelID(streamId); var commandPayload = command.Stream.Close(); var commandStream = CreateStreamInternal(); commandStream.WriteLength((ushort)(commandPayload.Length + 1)); commandStream.WriteUint8(command.CommandId); commandStream.WriteOctets(commandPayload); var wrappedCommandPayload = commandStream.Close(); var streamData = new StreamDataCommand(channel, wrappedCommandPayload, isAtEndPosition, offset); var streamDataStream = CreateStream(Commands.StreamData); StreamDataSerializer.SerializeStreamData(streamDataStream, streamData); SendPacket(streamDataStream); }