/*
* 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 System.Collections.Generic;
using QuantConnect.Data;
namespace QuantConnect.Lean.Engine.DataFeeds
{
///
/// Transport type for algorithm update data. This is intended to provide a
/// list of base data used to perform updates against the specified target
///
/// The target type
public class UpdateData
{
///
/// Flag indicating whether contains any fill forward bar or not
///
/// This is useful for performance, it allows consumers to skip re enumerating the entire data
/// list to filter any fill forward data
public bool? ContainsFillForwardData { get; init; }
///
/// The target, such as a security or subscription data config
///
public T Target { get; init; }
///
/// The data used to update the target
///
public IReadOnlyList Data { get; init; }
///
/// The type of data in the data list
///
public Type DataType { get; init; }
///
/// True if this update data corresponds to an internal subscription
/// such as currency or security benchmark
///
public bool IsInternalConfig { get; init; }
///
/// Initializes a new instance of the class
///
/// The end consumer/user of the dat
/// The type of data in the list
/// The update data
/// True if this update data corresponds to an internal subscription
/// such as currency or security benchmark
/// True if this update data contains fill forward bars
public UpdateData(T target, Type dataType, IReadOnlyList data, bool isInternalConfig, bool? containsFillForwardData = null)
{
Target = target;
Data = data;
DataType = dataType;
IsInternalConfig = isInternalConfig;
ContainsFillForwardData = containsFillForwardData;
}
}
}