// Update is called once per frame void Update() { bool transmitLocal = localCollectors.Any(c => c.Collecting); bool transmitRemote = Mode == LogManagerMode.Transmit; bool holdLogs = Mode == LogManagerMode.Hold; if (transmitLocal || transmitRemote) { JsonWriter writer; while (events.Dequeue(out writer)) { try { if (transmitRemote) { var message = LogManagerMessage.Rent(writer.GetSpan(), writer.Tag); message.objectid = LogCollector.Id; message.componentid = LogCollector.ComponentId; context.Send(message); } if (transmitLocal) { foreach (var item in localCollectors) { item.Push(writer.GetSpan(), writer.Tag); } } } finally { Release(ref writer); } } } if (!holdLogs) { while (Memory > MaxMemory) // If the queued events are taking up too much space, then dump them starting from the back of the queue { JsonWriter writer; if (events.Dequeue(out writer)) { Release(ref writer); } else { break; } } } }
private void Send() { if (transforms == null || transforms.Length != flock.boids.Length) { transforms = new TransformMessage[flock.boids.Length]; } for (int i = 0; i < flock.boids.Length; i++) { transforms[i].position = flock.boids[i].transform.localPosition; transforms[i].rotation = flock.boids[i].transform.localRotation; } var transformsBytes = MemoryMarshal.AsBytes(new ReadOnlySpan <TransformMessage>(transforms)); var message = ReferenceCountedSceneGraphMessage.Rent(transformsBytes.Length); transformsBytes.CopyTo(new Span <byte>(message.bytes, message.start, message.length)); context.Send(message); }
// Update is called once per frame void Update() { if (run) { for (int i = 0; i < messagesPerFrame; i++) { if (sent >= totalMessages) { return; } int length = UnityEngine.Random.Range(hashLength + 2, maxMessageSize); var message = ReferenceCountedSceneGraphMessage.Rent(length); var datalength = length - hashLength; for (int j = 0; j < datalength; j++) { message.bytes[message.start + j] = (byte)UnityEngine.Random.Range(0, 255); } Array.Copy(sha526.ComputeHash(message.bytes, message.start, datalength), 0, message.bytes, message.start + datalength, hashLength); if (corrupt) { for (int j = 0; j < datalength; j++) { message.bytes[message.start + j] = (byte)UnityEngine.Random.Range(0, 255); } } context.Send(message); sent++; } } }
void SendMessage() { conversationBox.text += sendBox.text + "\n"; context.Send(sendBox.text); sendBox.text = ""; }