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);
            }
        }
Beispiel #2
0
        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();
 }