private ArraySegment <byte> ToByteArraySegment(TrafficWatchChangeBase change) { var json = change.ToJson(); _bufferStream.SetLength(0); using (var writer = new BlittableJsonTextWriter(_context, _bufferStream)) { _context.Write(writer, json); writer.Flush(); _bufferStream.TryGetBuffer(out var bytes); return(bytes); } }
public static void DispatchMessage(TrafficWatchChangeBase trafficWatchData) { foreach (var connection in ServerHttpTrace) { if (connection.IsAlive == false) { Disconnect(connection); continue; } if (connection.TenantSpecific != null) { if (string.Equals(connection.TenantSpecific, trafficWatchData.DatabaseName, StringComparison.OrdinalIgnoreCase) == false) { continue; } } connection.EnqueueMsg(trafficWatchData); } }
public void EnqueueMsg(TrafficWatchChangeBase msg) { _messages.Enqueue(msg); _manualResetEvent.Set(); }