Files
sqltoolsservice/external/Microsoft.SqlTools.Hosting.v2/Protocol/EventContext.cs
Karl Burtram ccf95aed77 Move unused forked code to external directory (#1192)
* Move unused forked code to external directory

* Fix SLN build errors

* Add back resource provider core since it's referenced by main resource provider project

* Update PackageProjects step of pipeline
2021-04-16 15:33:35 -07:00

33 lines
1.1 KiB
C#

//
// 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
{
/// <summary>
/// Provides context for a received event so that handlers
/// can write events back to the channel.
/// </summary>
public class EventContext : IEventSender
{
internal readonly BlockingCollection<Message> messageQueue;
public EventContext(BlockingCollection<Message> 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<TParams>(EventType<TParams> eventType, TParams eventParams)
{
messageQueue.Add(Message.CreateEvent(eventType, eventParams));
}
}
}