private static void WriteString(IStreamWriter writer, string data) { if (data == null) { writer.Write(NullLengthFlag); // String length } else { var sLen = data.Length; if (sLen == 0) { writer.Write(0); // String length } else { if (sLen > MaxAllowedStringLength) { throw new Exception(SerializationErrors.StringLengthExceededAllowedLimit); } var bytes = Encoding.UTF8.GetBytes(data); var bLen = bytes.Length; writer.Write(bLen); // Byte array length if (bLen > 1) { writer.Write(sLen); } writer.Write(bytes); } } }
public void LogDoorLocked(int LockID) { W.Write("Log entry: "); W.WriteLine($"{DateTime.Now.ToShortTimeString()} {DateTime.Now.ToLongDateString()}"); W.WriteLine($"Charging station locked using RFID: {LockID}"); W.WriteLine("-------------------------------------------------------"); W.Close(); }
public void Write(T value, int stride = 1) { if (FPosition >= FStreamLength) { MemoryStreamWriter.Write(value, stride); } else { FStreamWriter.Write(value, stride); } FPosition += stride; }
public void Write(IStreamWriter writer) { if (writer == null) { throw new ArgumentNullException(nameof(writer)); } writer.Write(Major.ToBytes()); writer.Write(MajorRevision.ToBytes()); writer.Write(Minor.ToBytes()); writer.Write(MinorRevision.ToBytes()); writer.Write(ProcessId.ToBytes()); }
public void WriteToRequest(IStreamWriter writer) { if (_contentLength < 0) GetLength(); _content.Position = 0; writer.Write(_content); foreach (var file in _upload.Files) { writer.Write(file.Header, 0, file.Header.Length); var stream = file.GetStream(_async); writer.Write(stream); writer.Promise.Always(() => stream.Dispose()); writer.Write(13, 10); } writer.Write(_finalBytes, 0, _finalBytes.Length); }
public void Write(IStream stream, UserMessage obj) { if (obj == null) { throw new ArgumentNullException("obj"); } var orderRequested = obj as OrderRequested; if (orderRequested != null) { _orderRequestedStreamWriter.Write(stream, orderRequested); } else { var orderAssigned = obj as OrdersAssigned; if (orderAssigned != null) { _orderAssignedStreamWriter.Write(stream, orderAssigned); } else { throw new NotSupportedException(string.Format("Unknown obj type {0}", obj.GetType())); } } }
public async Task Connect(IStreamWriter writer) { var tags = new [] { "first", "second", "third" }; await Task.Run(async() => { for (; ;) { _logger.Information( "Pushing tags '{tags}'", string.Join(", ", tags.Select(_ => _))); var dataPoints = tags.Select(_ => new TagDataPoint( (Tag)_, //Value = (Measurement<float>)_random.NextDouble() //Value = (Measurement<double>)_random.NextDouble() //Value = new Vector2 { X = (float)_random.NextDouble(), Y = (float)_random.NextDouble() } new Vector3 { X = (float)_random.NextDouble(), Y = (float)_random.NextDouble(), Z = (float)_random.NextDouble() } )); await writer.Write(dataPoints); await Task.Delay(1000); } }); }
private static void WriteBytes(IStreamWriter writer, byte[] data) { if (data == null) { writer.Write(NullLengthFlag); } else { var bLen = data.Length; writer.Write(bLen); if (bLen > 0) { writer.Write(data); } } }
private static void WriteIfBufferIsFull(IStreamWriter <T> dataWriter, T[] buffer, ref int numSlicesBuffered) { if (numSlicesBuffered == buffer.Length) { dataWriter.Write(buffer, 0, numSlicesBuffered); numSlicesBuffered = 0; } }
public void DrawFrame(Frame frame) { string str = ""; //... _writer.Write(str); }
public static void Write <T>(this IStreamWriter <T> writer, IInStream <T> inStream, T[] buffer) { using (var reader = inStream.GetReader()) { while (!reader.Eos) { int numSlicesRead = reader.Read(buffer, 0, buffer.Length); writer.Write(buffer, 0, numSlicesRead); } } }
public HashValue Sign(IUser user, HashValue previousHash, UserMessage message) { using (var stream = _streamFactory.Create()) { stream.Write("Client {0} after {1} ask for ", user, previousHash); _messageStreamWriter.Write(stream, message); var hash = _hashProvider.GetHashOfStream(stream); return(hash); } }
private void WriteRows(IStreamWriter writer, Person person) { var row = new object[1, 8]; row[0, 0] = person.FirstName; row[0, 1] = person.SecondName; row[0, 2] = person.LastName; row[0, 3] = person.Sex; row[0, 4] = person.YearOfBirth; row[0, 5] = person.Education; row[0, 6] = person.Profession; row[0, 7] = person.HasExperienceInSport; writer.Write(row); }
private void WriteHeader(IStreamWriter writer) { // Вывести заголовок var header = new object[1, 8]; header[0, 0] = "Имя"; header[0, 1] = "Отчество"; header[0, 2] = "Фамилия"; header[0, 3] = "Пол"; header[0, 4] = "Год рождения"; header[0, 5] = "Образование"; header[0, 6] = "Профессия"; header[0, 7] = "Опыт занятия спортом"; writer.Write(header); }
private void WriteData(IStreamWriter writer, TypeCode dataTypeCd, object data) { switch (dataTypeCd) { case TypeCode.Boolean: writer.Write((bool)data); break; case TypeCode.Byte: writer.Write((byte)data); break; case TypeCode.Char: writer.Write((char)data); break; case TypeCode.DateTime: writer.Write(((DateTime)data).Ticks); break; case TypeCode.DBNull: writer.Write(NullFlag); break; case TypeCode.Decimal: writer.Write((decimal)data); break; case TypeCode.Double: writer.Write((double)data); break; case TypeCode.Empty: writer.Write(NullFlag); break; case TypeCode.Int16: writer.Write((short)data); break; case TypeCode.Int32: writer.Write((int)data); break; case TypeCode.Int64: writer.Write((long)data); break; case TypeCode.SByte: writer.Write((sbyte)data); break; case TypeCode.Single: writer.Write((float)data); break; case TypeCode.String: WriteString(writer, (string)data); break; case TypeCode.UInt16: writer.Write((ushort)data); break; case TypeCode.UInt32: writer.Write((uint)data); break; case TypeCode.UInt64: writer.Write((ulong)data); break; default: { using (var dataStream = new ChunkedStream()) { GetSerializer().Serialize(data, dataStream); writer.Write((int)dataStream.Length); dataStream.Position = 0; dataStream.CopyTo(writer.BaseStream); } } break; } }
/// <summary> /// Writes a sequence of items to the current stream and advances /// the current position within this stream by the number of items written. /// Use the stride parameter to control advancing of the position after one item has been written. /// </summary> /// <param name="writer">The writer to use for writing.</param> /// <param name="segment">The array segment to copy from.</param> /// <param name="stride">The stride by which the position is advanced after writing one item.</param> /// <returns> /// The total number of items written to the stream. /// This can be less than the number of items requested if end of the stream has been reached. /// </returns> public static int Write <T>(this IStreamWriter <T> writer, ArraySegment <T> segment, int stride = 1) { return(writer.Write(segment.Array, segment.Offset, segment.Count, stride)); }
private void Flush() { FStreamWriter.Write(FBuffer, 0, FOffset); FOffset = 0; }
private static void WriteHeader(IStreamWriter writer, List<Question> questions) { // Вывести заголовок var questionCount = questions.Count; var header = new object[1, 30 + questionCount]; header[0, 0] = "Дата удара"; header[0, 1] = "Время удара"; header[0, 2] = "Игра"; header[0, 3] = "Номер удара в игре"; header[0, 4] = "Попадание"; header[0, 5] = "Баллы"; header[0, 6] = "Промах игрока, м"; header[0, 7] = "Промах игрока, с (задержка удара)"; header[0, 8] = "Задержка реакции игрока, с"; header[0, 9] = "Позиция шара, м"; header[0, 10] = "Размер шара, м"; header[0, 11] = "Позиция лунки, м"; header[0, 12] = "Размер лунки, м"; header[0, 13] = "Баллы при попадании"; header[0, 14] = "Баллы при промахе"; header[0, 15] = "Цвет цели"; header[0, 16] = "Скорость мяча, м/с"; header[0, 17] = "Задержка удара, с"; header[0, 18] = "Баллы в начале игры"; header[0, 19] = "Показывать баллы"; header[0, 20] = "Показывать ошибку"; header[0, 21] = "Звук"; header[0, 22] = "Соревнование"; header[0, 23] = "Попадание соперника"; header[0, 24] = "Баллы соперника"; header[0, 25] = "Промах соперника, м"; header[0, 26] = "Вероятность попадания при попадании игрока"; header[0, 27] = "Вероятность попадания при промахе игрока"; header[0, 28] = "Показывать баллы соперника"; header[0, 29] = "Ошибка игрока, м"; for (int i = 0; i < questionCount; i++) { header[0, 30 + i] = questions[i].Id; } writer.Write(header); }
private static void WriteRows(IStreamWriter writer, List<Tuple<Game, Users>> data, List<Question> questions) { var questionCount = questions.Count; foreach (var item in data) { var game = item.Item1; var users = item.Item2; var strikeNumber = 0; var user = users.FirstOrDefault(t => t.UserInfo.UserType == UserTypeEnum.User); if (user == null) throw new NullReferenceException("user"); var bot = users.FirstOrDefault(t => t.UserInfo.UserType == UserTypeEnum.Bot); var rows = new object[user.Strikes.Count, 30 + questionCount]; var i = 0; foreach (var userStrike in user.Strikes) { var strikeInfo = userStrike.StrikeInfo; rows[i, 0] = userStrike.DateTime.ToShortDateString(); rows[i, 1] = userStrike.DateTime.ToLongTimeString(); rows[i, 2] = game.Title; rows[i, 3] = ++strikeNumber; rows[i, 4] = userStrike.IsHit; rows[i, 5] = userStrike.GetScore(); rows[i, 6] = userStrike.MissDistance; rows[i, 7] = userStrike.MissTime; rows[i, 8] = Math.Round(userStrike.BeforeStrikeTimeSpan.TotalSeconds, 3); rows[i, 9] = userStrike.StartBallPosition.X; rows[i, 10] = strikeInfo.Ball.Size; rows[i, 11] = userStrike.StartHolePosition.X; rows[i, 12] = strikeInfo.Hole.Size; rows[i, 13] = strikeInfo.Hole.HitScore; rows[i, 14] = strikeInfo.Hole.MissScore; rows[i, 15] = strikeInfo.Hole.Color; rows[i, 16] = strikeInfo.Model.Velocity; rows[i, 17] = strikeInfo.Model.Delay; rows[i, 18] = user.UserInfo.Score; rows[i, 19] = game.ShowUserScore; rows[i, 20] = game.ShowError; rows[i, 21] = game.PlaySounds; rows[i, 22] = game.Type == GameTypeEnum.Competition; if (bot != null) { var userStrikeIndex = user.Strikes.IndexOf(userStrike); if (bot.Strikes.Count > userStrikeIndex) { var botStrike = bot.Strikes[userStrikeIndex]; rows[i, 23] = botStrike.IsHit; rows[i, 24] = botStrike.GetScore(); rows[i, 25] = botStrike.MissDistance; var uniformRandomCompetitor = strikeInfo.CompetitorModel as UniformCompetitorModel; if (uniformRandomCompetitor != null) { rows[i, 26] = uniformRandomCompetitor.BotHitProbabilityIfUserHit; rows[i, 27] = uniformRandomCompetitor.BotHitProbabilityIfUserMiss; } rows[i, 28] = game.ShowBotScore; } } rows[i, 29] = userStrike.ErrorDistance; // Запись ответов на вопросы for (int j = 0; j < questionCount; j++) { var id = questions[j].Id; var response = userStrike.Responses.FirstOrDefault(t => t.QuestionId == id); if (response != null) { rows[i, 30 + j] = response.Value; } } i++; } writer.Write(rows); } }
void DrawFrame(Scene scene, Camera camera) { var frame = _renderer.RenderFrame(scene, camera); _writer.Write(frame); }
private void Write(IStreamWriter writer, WireMessage message) { if (message is null) { writer.Write(NullFlag); return; } var dataTypeCd = Type.GetTypeCode(message.Data?.GetType()); var buffer = WireBufferCache.Acquire(); try { buffer[WireMessageBufferOffsetOf.DataTypeCd] = (byte)(NotNullFlag + dataTypeCd); buffer[WireMessageBufferOffsetOf.MessageType] = (byte)message.MessageType; buffer[WireMessageBufferOffsetOf.State] = (byte)message.State; Array.Copy((message.TimeoutMSec ?? int.MinValue).ToBytes(), 0, buffer, WireMessageBufferOffsetOf.TimeoutMSec, WireMessageFieldSizeOf.TimeoutMSec); var id = (message.Id ?? WireMessageId.Empty); Array.Copy(id.Major.ToBytes(), 0, buffer, WireMessageBufferOffsetOf.IdMajor, WireMessageFieldSizeOf.IdMajor); Array.Copy(id.MajorRevision.ToBytes(), 0, buffer, WireMessageBufferOffsetOf.IdMajorRevision, WireMessageFieldSizeOf.IdMajorRevision); Array.Copy(id.Minor.ToBytes(), 0, buffer, WireMessageBufferOffsetOf.IdMinor, WireMessageFieldSizeOf.IdMinor); Array.Copy(id.MinorRevision.ToBytes(), 0, buffer, WireMessageBufferOffsetOf.IdMinorRevision, WireMessageFieldSizeOf.IdMinorRevision); Array.Copy(id.ProcessId.ToBytes(), 0, buffer, WireMessageBufferOffsetOf.IdProcessId, WireMessageFieldSizeOf.IdProcessId); writer.Write(buffer, 0, WireMessageSizeOf.ConstantFields); } finally { WireBufferCache.Release(buffer); } WriteString(writer, message.From?.ToString()); WriteString(writer, message.To?.ToString()); var header = message.Header; if (header == null) { writer.Write(NullFlag); } else { writer.Write(NotNullFlag); writer.Write(header.Count); foreach (var kv in header) { WriteString(writer, kv.Key); WriteString(writer, kv.Value); } } if (message.Exception is null) { writer.Write(NullFlag); } else { writer.Write(NotNullFlag); using (var dataStream = new ChunkedStream()) { GetSerializer().Serialize(message.Exception, dataStream); writer.Write((int)dataStream.Length); dataStream.Position = 0; dataStream.CopyTo(writer.BaseStream); } } WriteData(writer, dataTypeCd, message.Data); }