// // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // using System.Collections.Concurrent; using Microsoft.SqlTools.Hosting.Contracts; namespace Microsoft.SqlTools.Hosting.Protocol { /// /// Provides context for a received event so that handlers /// can write events back to the channel. /// public class EventContext : IEventSender { internal readonly BlockingCollection messageQueue; public EventContext(BlockingCollection outgoingMessageQueue) { // TODO: Either 1) make this constructor internal and provide a test framework for validating // or 2) extract an interface for eventcontext to allow users to mock messageQueue = outgoingMessageQueue; } public void SendEvent(EventType eventType, TParams eventParams) { messageQueue.Add(Message.CreateEvent(eventType, eventParams)); } } }