/* * 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 QuantConnect.Interfaces; using QuantConnect.Lean.Engine.DataFeeds.Transport; using QuantConnect.Packets; namespace QuantConnect.Lean.Engine.Server { /// /// NOP implementation of the ILeanManager interface /// public class LocalLeanManager : ILeanManager { private LeanEngineSystemHandlers _systemHandlers; /// /// Empty implementation of the ILeanManager interface /// /// Exposes lean engine system handlers running LEAN /// Exposes the lean algorithm handlers running lean /// The job packet representing either a live or backtest Lean instance /// The Algorithm manager public void Initialize(LeanEngineSystemHandlers systemHandlers, LeanEngineAlgorithmHandlers algorithmHandlers, AlgorithmNodePacket job, AlgorithmManager algorithmManager) { _systemHandlers = systemHandlers; } /// /// Sets the IAlgorithm instance in the ILeanManager /// /// The IAlgorithm instance being run public void SetAlgorithm(IAlgorithm algorithm) { algorithm.SetApi(_systemHandlers.Api); RemoteFileSubscriptionStreamReader.SetDownloadProvider((Api.Api)_systemHandlers.Api); } /// /// Update ILeanManager with the IAlgorithm instance /// public void Update() { // NOP } /// /// This method is called after algorithm initialization /// public void OnAlgorithmStart() { // NOP } /// /// This method is called before algorithm termination /// public void OnAlgorithmEnd() { // NOP } /// /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// public void Dispose() { // NOP } } }