/* * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals. * Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ using System; using QuantConnect.Data; using QuantConnect.Data.UniverseSelection; namespace QuantConnect.Lean.Engine.DataFeeds { /// /// DataFeedSubscriptionManager interface will manage the subscriptions for the Data Feed /// public interface IDataFeedSubscriptionManager { /// /// Event fired when a new subscription is added /// event EventHandler SubscriptionAdded; /// /// Event fired when an existing subscription is removed /// event EventHandler SubscriptionRemoved; /// /// Gets the data feed subscription collection /// SubscriptionCollection DataFeedSubscriptions { get; } /// /// Get the universe selection instance /// UniverseSelection UniverseSelection { get; } /// /// Removes the , if it exists /// /// The of the subscription to remove /// Universe requesting to remove . /// Default value, null, will remove all universes /// True if the subscription was successfully removed, false otherwise bool RemoveSubscription(SubscriptionDataConfig configuration, Universe universe = null); /// /// Adds a new to provide data for the specified security. /// /// Defines the to be added /// True if the subscription was created and added successfully, false otherwise bool AddSubscription(SubscriptionRequest request); } }