Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
781fa97b55 | ||
|
|
fd50050064 | ||
|
|
6ac43881ae | ||
|
|
4af1419748 | ||
|
|
7cfcdc3770 | ||
|
|
d03a705077 | ||
|
|
58eccad70d | ||
|
|
5f8ec04ff1 | ||
|
|
05e2107655 | ||
|
|
d41f613e32 | ||
|
|
bcbb598423 | ||
|
|
e88c44f9db | ||
|
|
93625957d1 |
No files matched your search
+4
-2
@@ -81,6 +81,8 @@ services:
|
||||
limits:
|
||||
memory: "${SPARKD__MEMORY:-4gb}"
|
||||
sparkd-multicast:
|
||||
environment:
|
||||
- TZ=America/Chicago
|
||||
volumes:
|
||||
- ${SPARKD__DATA_DIR:-sparkd_data}:/home/bts/.local/share/bts/sparkd/data
|
||||
- ${SPARKD__MD_RECORDING_DIR:-md_recording}:/md_recording
|
||||
@@ -93,7 +95,7 @@ services:
|
||||
- CONFIG_DIR=${SPARKD__CONFIG_DIR}
|
||||
- PYTHON_REQUIREMENTS=${SPARKD__PYTHON_REQUIREMENTS}
|
||||
- SPARKD_ENTRYPOINT=${SPARKD__SPARKD_ENTRYPOINT}
|
||||
shm_size: "${SPARKD__SHM_SIZE:-2048mb}"
|
||||
shm_size: "${SPARKD__SHM_SIZE:-8192mb}"
|
||||
env_file:
|
||||
- .env
|
||||
- ${SPARKD__CONFIG_DIR}/.env
|
||||
@@ -105,7 +107,7 @@ services:
|
||||
delay: 3s
|
||||
resources:
|
||||
limits:
|
||||
memory: "${SPARKD__MEMORY:-4gb}"
|
||||
memory: "${SPARKD__MEMORY:-16gb}"
|
||||
sparkd-tail:
|
||||
image: bluetradingsystems/linux_dotnet8
|
||||
volumes:
|
||||
|
||||
@@ -19,6 +19,11 @@ RUN add-apt-repository ppa:ubuntu-toolchain-r/test \
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y dotnet8
|
||||
|
||||
RUN apt-get update && apt-get install -y gdb
|
||||
RUN apt-get update && apt-get install -y fish
|
||||
RUN apt-get update && apt-get install -y vim
|
||||
RUN apt-get update && apt-get install -y less
|
||||
|
||||
RUN locale-gen en_US.UTF-8
|
||||
|
||||
ARG docker_user="bts"
|
||||
|
||||
@@ -109,7 +109,8 @@ struct ExecutionGatewayProvider::PImpl {
|
||||
return make_gw<ICEExecutionGateway>(conn, conn, *l, o);
|
||||
case api::VENUE_GLBX:
|
||||
if (conn.use_ilink3()) {
|
||||
make_gw<ilink3::GLBXiLink3ExecutionGateway>(conn, conn, *l, o);
|
||||
return make_gw<ilink3::GLBXiLink3ExecutionGateway>(
|
||||
conn, conn, *l, o);
|
||||
}
|
||||
return make_gw<GLBXExecutionGateway>(conn, conn, *l, o);
|
||||
case api::VENUE_DERIBIT:
|
||||
|
||||
@@ -254,7 +254,7 @@ namespace mbts.spark {
|
||||
add_col(
|
||||
Columns.Price,
|
||||
DefaultColumnHeaders.Price,
|
||||
r => _get_row(r).security.spec_or_default().format(r.fill.AvgPrice),
|
||||
r => _get_row(r).security.spec_or_default().format(r.fill.LastPrice),
|
||||
new DoubleMinMax<FillTuple>(r => r.fill.LastPrice),
|
||||
DataGridFilterKnownTemplates.DoubleMinMax,
|
||||
fs => fs.price,
|
||||
|
||||
@@ -8,13 +8,15 @@ using bts.api;
|
||||
using mbts.analytics;
|
||||
using mbts;
|
||||
|
||||
namespace BCG {
|
||||
namespace BCG
|
||||
{
|
||||
/// For each NMSheetSymbol in an NMSheet gets all the
|
||||
/// data together (theos, position, vol change etc)
|
||||
/// and fires a callback.
|
||||
/// This is where all the data is gathered, the rest
|
||||
/// is all access to this
|
||||
public class NMSheetSingleOptionMainDataSource : IDisposable {
|
||||
public class NMSheetSingleOptionMainDataSource : IDisposable
|
||||
{
|
||||
private ThreadedBlackboard _threaded_bb;
|
||||
private readonly ITag<NMSheetDataRequest> _in_bb_main_sheet_request_tag;
|
||||
private readonly ITag<ExchangeSecurityMap> _in_bb_secmap_tag =
|
||||
@@ -24,6 +26,7 @@ namespace BCG {
|
||||
private readonly ITag<OptionTheoInterpolationData> _in_bb_precomputed_sparse_theos_tag;
|
||||
private readonly ITag<IDictionary<NMSheetExpiration, double>> _in_bb_vol_shift_tag;
|
||||
private readonly ITag<NMSheetSettings> _in_bb_sheet_settings_tag;
|
||||
private readonly ITag<IEnumerable<ITradeLogRow>> _in_bb_trade_log_tag = SparkTags.TradeLogTag;
|
||||
private readonly ITag<VolSurfaceNonVolInput> _in_exp_param_tag = SparkTags.VolSurfaceNonVolInputTag;
|
||||
private readonly ITag<bool> _in_bb_main_sheet_visibility_tag;
|
||||
private ITag<SparkTags.Nothing> _in_bb_onefive_value_tag = SparkTags.TC2Tags.VoidTag,
|
||||
@@ -31,7 +34,6 @@ namespace BCG {
|
||||
_in_bb_symbol_theo_shift_tag = SparkTags.TC2Tags.VoidTag,
|
||||
_in_bb_rollover_data_tag = SparkTags.TC2Tags.VoidTag,
|
||||
_in_bb_presaved_aw2_theos_tag = SparkTags.TC2Tags.VoidTag,
|
||||
_in_bb_position_tag = SparkTags.TC2Tags.VoidTag,
|
||||
_in_bb_option_driver_detailed_price_tag = SparkTags.TC2Tags.VoidTag;
|
||||
private readonly NMSheetSymbol _nmsheet_symbol;
|
||||
private Action<Pair<NMSheetSymbol, NMSheetSingleOptionData>> _cb;
|
||||
@@ -40,7 +42,8 @@ namespace BCG {
|
||||
private string _electronic_equivelant_symbol;
|
||||
private NMSheetArchivedVolProvider _archived_vol_provider;
|
||||
|
||||
public NMSheetSingleOptionMainDataSource(object req_id, ThreadedBlackboard threaded_bb, NMSheetSymbol option, Action<Pair<NMSheetSymbol, NMSheetSingleOptionData>> callback) {
|
||||
public NMSheetSingleOptionMainDataSource(object req_id, ThreadedBlackboard threaded_bb, NMSheetSymbol option, Action<Pair<NMSheetSymbol, NMSheetSingleOptionData>> callback)
|
||||
{
|
||||
_threaded_bb = threaded_bb;
|
||||
_nmsheet_symbol = option;
|
||||
_electronic_equivelant_symbol = option.option_name;
|
||||
@@ -56,7 +59,8 @@ namespace BCG {
|
||||
_in_bb_sheet_settings_tag = SparkTags.TC2Tags.NMSheetSettingsTag(req_id.ToString());
|
||||
_in_bb_main_sheet_visibility_tag = SparkTags.TC2Tags.NMSheetVisibilityTag(req_id.ToString());
|
||||
_archived_vol_provider = new NMSheetArchivedVolProvider(req_id.ToString(), _threaded_bb, option,
|
||||
() => {
|
||||
() =>
|
||||
{
|
||||
_rollover_data = null;
|
||||
_compute_and_fire();
|
||||
});
|
||||
@@ -76,7 +80,7 @@ namespace BCG {
|
||||
_threaded_bb.subscribe(_in_bb_rollover_data_tag);
|
||||
_threaded_bb.subscribe(_in_bb_presaved_aw2_theos_tag);
|
||||
_threaded_bb.subscribe(_in_exp_param_tag);
|
||||
_threaded_bb.subscribe(_in_bb_position_tag);
|
||||
_threaded_bb.subscribe(_in_bb_trade_log_tag);
|
||||
_threaded_bb.subscribe(_in_bb_sheet_settings_tag);
|
||||
_threaded_bb.subscribe(_in_bb_onefive_value_tag);
|
||||
_threaded_bb.subscribe(_in_bb_qs_tag);
|
||||
@@ -84,15 +88,17 @@ namespace BCG {
|
||||
_threaded_bb.subscribe(_in_bb_option_driver_detailed_price_tag);
|
||||
}
|
||||
|
||||
private void _react_to_bb(object tag, object value) {
|
||||
private void _react_to_bb(object tag, object value)
|
||||
{
|
||||
if (_in_bb_main_sheet_request_tag.Equals(tag) || _in_bb_secmap_tag.Equals(tag) || _in_bb_live_theos_tag.Equals(tag) || /*_in_bb_live_driver_bbo_tag.Equals(tag) ||*/ _in_bb_precomputed_sparse_theos_tag.Equals(tag) ||
|
||||
_in_bb_vol_shift_tag.Equals(tag) || _in_bb_symbol_theo_shift_tag.Equals(tag) || _in_exp_param_tag.Equals(tag) || _in_bb_presaved_aw2_theos_tag.Equals(tag) ||
|
||||
_in_bb_position_tag.Equals(tag) || _in_bb_rollover_data_tag.Equals(tag) || _in_bb_sheet_settings_tag.Equals(tag) || _in_bb_qs_tag.Equals(tag) ||
|
||||
_in_bb_trade_log_tag.Equals(tag) || _in_bb_rollover_data_tag.Equals(tag) || _in_bb_sheet_settings_tag.Equals(tag) || _in_bb_qs_tag.Equals(tag) ||
|
||||
_in_bb_main_sheet_visibility_tag.Equals(tag))
|
||||
_compute_and_fire();
|
||||
}
|
||||
|
||||
private NMSheetDriverData _get_driver(DriverMD d) {
|
||||
private NMSheetDriverData _get_driver(DriverMD d)
|
||||
{
|
||||
double dr_pr = d.get_driver();
|
||||
if (d.driver_security.HasValue)
|
||||
return new NMSheetDriverData(d.driver_security.symbol_or_default(),
|
||||
@@ -102,8 +108,10 @@ namespace BCG {
|
||||
return new NMSheetDriverData(String.Empty, Venue.Unset, DateTime.MinValue, dr_pr, dr_pr, false);
|
||||
}
|
||||
|
||||
private void _compute_and_fire() {
|
||||
if (_is_main_sheet_active()) {
|
||||
private void _compute_and_fire()
|
||||
{
|
||||
if (_is_main_sheet_active())
|
||||
{
|
||||
var timer = Stopwatch.StartNew();
|
||||
NMSheetDataRequest data_request = _threaded_bb.read_state(_in_bb_main_sheet_request_tag) ?? new NMSheetDataRequest(new List<Triplet<NMSheetExpiration, bool, double>>());
|
||||
data_request = NMSheetDataRequest.restrict_for_symbol(data_request, _nmsheet_symbol);
|
||||
@@ -112,7 +120,8 @@ namespace BCG {
|
||||
NMSheetSettings sheet_settings = _threaded_bb.read_state(_in_bb_sheet_settings_tag) ?? new NMSheetSettings();
|
||||
ExpStrikeKeyedData<mbts.spark.TheoPoint> shared_live_theo_data_map = _threaded_bb.read_state(_in_bb_live_theos_tag);
|
||||
|
||||
if (data_request != null && live_driver_map != null && shared_live_theo_data_map != null) {
|
||||
if (data_request != null && live_driver_map != null && shared_live_theo_data_map != null)
|
||||
{
|
||||
ExpStrikeKeyedData<mbts.spark.TheoPoint> output_theo_data_map = _limit_to_requested_securities(shared_live_theo_data_map, data_request, sheet_settings);
|
||||
output_theo_data_map = _adjust_for_freezes(output_theo_data_map, data_request);
|
||||
_add_vol_shift(output_theo_data_map);
|
||||
@@ -138,14 +147,17 @@ namespace BCG {
|
||||
}
|
||||
}
|
||||
|
||||
private bool _is_main_sheet_active() {
|
||||
private bool _is_main_sheet_active()
|
||||
{
|
||||
return _threaded_bb.read_state(_in_bb_main_sheet_visibility_tag, true);
|
||||
}
|
||||
|
||||
private ExpStrikeKeyedData<mbts.spark.TheoPoint> _limit_to_requested_securities(ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_data, NMSheetDataRequest data_request, NMSheetSettings sheet_settings) {
|
||||
private ExpStrikeKeyedData<mbts.spark.TheoPoint> _limit_to_requested_securities(ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_data, NMSheetDataRequest data_request, NMSheetSettings sheet_settings)
|
||||
{
|
||||
HashSet<DateTime> selected_exp_map = new HashSet<DateTime>();
|
||||
HashSet<double> selected_strike_map = new HashSet<double>(sheet_settings.setting_unselected_strikes);
|
||||
foreach (Triplet<NMSheetExpiration, bool, double> t in data_request.expiration_request_list) {
|
||||
foreach (Triplet<NMSheetExpiration, bool, double> t in data_request.expiration_request_list)
|
||||
{
|
||||
NMSheetExpiration nm_exp = t.first;
|
||||
if (nm_exp != null && nm_exp.option_name == _nmsheet_symbol.option_name)
|
||||
selected_exp_map.Add(nm_exp.option_expiration);
|
||||
@@ -153,12 +165,14 @@ namespace BCG {
|
||||
return theo_data.clone_filtered_set(selected_exp_map, true, selected_strike_map, false);
|
||||
}
|
||||
|
||||
private ExpStrikeKeyedData<Triplet<mbts.spark.TheoPoint, uint, uint>> _attach_sec_keys(ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_map) {
|
||||
private ExpStrikeKeyedData<Triplet<mbts.spark.TheoPoint, uint, uint>> _attach_sec_keys(ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_map)
|
||||
{
|
||||
theo_map = theo_map ?? new ExpStrikeKeyedData<mbts.spark.TheoPoint>();
|
||||
ExchangeSecurityMap sec_map = _threaded_bb.read_state(_in_bb_secmap_tag);
|
||||
if (sec_map != null)
|
||||
return sec_map.attach_sec_keys(theo_map, _electronic_equivelant_symbol, _nmsheet_symbol.option_exchange);
|
||||
else {
|
||||
else
|
||||
{
|
||||
ExpStrikeKeyedData<Triplet<mbts.spark.TheoPoint, uint, uint>> rv = new ExpStrikeKeyedData<Triplet<mbts.spark.TheoPoint, uint, uint>>();
|
||||
foreach (Triplet<DateTime, double, mbts.spark.TheoPoint> t in theo_map.get_data_linearly())
|
||||
rv.set_data(t.first, t.second, new Triplet<mbts.spark.TheoPoint, uint, uint>(t.third, 0, 0));
|
||||
@@ -166,7 +180,8 @@ namespace BCG {
|
||||
}
|
||||
}
|
||||
|
||||
private ExpStrikeKeyedData<mbts.spark.TheoPoint> _adjust_for_freezes(ExpStrikeKeyedData<mbts.spark.TheoPoint> live_theo_map, NMSheetDataRequest data_request) {
|
||||
private ExpStrikeKeyedData<mbts.spark.TheoPoint> _adjust_for_freezes(ExpStrikeKeyedData<mbts.spark.TheoPoint> live_theo_map, NMSheetDataRequest data_request)
|
||||
{
|
||||
return live_theo_map;
|
||||
// TODO
|
||||
// ExpStrikeKeyedData<mbts.spark.TheoPoint> rv = new ExpStrikeKeyedData<mbts.spark.TheoPoint>();
|
||||
@@ -192,9 +207,11 @@ namespace BCG {
|
||||
|
||||
private Dictionary<DateTime, NMSheetDriverData> _get_option_exp_driver_data_map(NMSheetDataRequest data_request,
|
||||
ExpStrikeKeyedData<mbts.spark.TheoPoint> output_theo_data_map, ExpStrikeKeyedData<mbts.spark.TheoPoint> shared_live_theo_data_map,
|
||||
Dictionary<DateTime, Triplet<(string, Venue), DateTime, double>> live_driver_map) {
|
||||
Dictionary<DateTime, Triplet<(string, Venue), DateTime, double>> live_driver_map)
|
||||
{
|
||||
Dictionary<DateTime, NMSheetDriverData> rv = new Dictionary<DateTime, NMSheetDriverData>();
|
||||
foreach (Triplet<NMSheetExpiration, bool, double> theo_request in data_request.expiration_request_list) {
|
||||
foreach (Triplet<NMSheetExpiration, bool, double> theo_request in data_request.expiration_request_list)
|
||||
{
|
||||
DateTime option_expiration = theo_request.first.option_expiration;
|
||||
/// live driver
|
||||
var live_driver_info = live_driver_map.GetValueOrDefault(option_expiration)
|
||||
@@ -208,9 +225,11 @@ namespace BCG {
|
||||
|
||||
private Dictionary<DateTime, NMSheetDriverData>
|
||||
_get_option_exp_driver_data_map(NMSheetDataRequest data_request,
|
||||
OptionDriverPriceMap drivers) {
|
||||
OptionDriverPriceMap drivers)
|
||||
{
|
||||
var rv = new Dictionary<DateTime, NMSheetDriverData>();
|
||||
foreach (var tr in data_request.expiration_request_list) {
|
||||
foreach (var tr in data_request.expiration_request_list)
|
||||
{
|
||||
NMSheetExpiration nm_exp = tr.first;
|
||||
SecurityExpiration exp = tr.first.to_sec_exp();
|
||||
drivers.exp_price_map.TryGetValue(exp, out DriverMD dr_md);
|
||||
@@ -222,7 +241,8 @@ namespace BCG {
|
||||
return rv;
|
||||
}
|
||||
|
||||
private static double _get_driverprice_for_expiration(ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_data_map, DateTime option_expiration) {
|
||||
private static double _get_driverprice_for_expiration(ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_data_map, DateTime option_expiration)
|
||||
{
|
||||
IDictionary<double, mbts.spark.TheoPoint> exp_data = theo_data_map.get_data_for_single_exp(option_expiration);
|
||||
if (exp_data != null)
|
||||
foreach (mbts.spark.TheoPoint tp in exp_data.Values)
|
||||
@@ -230,7 +250,8 @@ namespace BCG {
|
||||
return Double.NaN;
|
||||
}
|
||||
|
||||
private IDictionary<DateTime, ATMData> _get_atm_data(ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_data) {
|
||||
private IDictionary<DateTime, ATMData> _get_atm_data(ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_data)
|
||||
{
|
||||
NMSheetSettings sheet_settings = _threaded_bb.read_state(_in_bb_sheet_settings_tag) ?? new NMSheetSettings();
|
||||
VolSurfaceNonVolInput vs_nvinp = _threaded_bb.read_state(_in_exp_param_tag);
|
||||
var option_exp_roll_data = vs_nvinp
|
||||
@@ -248,17 +269,43 @@ namespace BCG {
|
||||
}
|
||||
|
||||
OptionContractKeyedData<PNLRollOverDataUnit> _rollover_data = null;
|
||||
private OptionContractKeyedData<PNLRollOverDataUnit> _get_rollover_data() {
|
||||
private OptionContractKeyedData<PNLRollOverDataUnit> _get_rollover_data()
|
||||
{
|
||||
if (_rollover_data == null)
|
||||
_rollover_data = _archived_vol_provider.get_all_data();
|
||||
return _rollover_data;
|
||||
}
|
||||
|
||||
private ExpStrikeKeyedData<Tuple<double, double>> _get_position_map() {
|
||||
return new ExpStrikeKeyedData<Tuple<double, double>>();
|
||||
private ExpStrikeKeyedData<Tuple<double, double>> _get_position_map()
|
||||
{
|
||||
var sheet_settings = _threaded_bb.read_state(_in_bb_sheet_settings_tag);
|
||||
var risk_account_text = sheet_settings?.setting_layout?.risk_account ?? string.Empty;
|
||||
var risk_accounts = risk_account_text
|
||||
.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
|
||||
.Select(a => a.Trim())
|
||||
.Where(a => !string.IsNullOrEmpty(a))
|
||||
.ToHashSet(StringComparer.OrdinalIgnoreCase);
|
||||
var trades = _threaded_bb.read_state(_in_bb_trade_log_tag) ?? Enumerable.Empty<ITradeLogRow>();
|
||||
var option_trades = trades.Where(t =>
|
||||
t.is_active &&
|
||||
t.security_type == SecurityType.Option &&
|
||||
t.symbol == _nmsheet_symbol.option_name &&
|
||||
t.venue == _nmsheet_symbol.option_exchange &&
|
||||
(risk_accounts.Count == 0 || risk_accounts.Contains(t.account)));
|
||||
var pos_data = SecurityPositionData.from_trades(option_trades);
|
||||
var rv = new ExpStrikeKeyedData<Tuple<double, double>>();
|
||||
foreach (var (sec_exp, strike_map) in pos_data.option_pos_map)
|
||||
{
|
||||
foreach (var (strike, strike_pos) in strike_map)
|
||||
{
|
||||
rv.set_data(sec_exp.expiration, strike, Tuple.Create(strike_pos.call, strike_pos.put));
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
private double _get_onefive() {
|
||||
private double _get_onefive()
|
||||
{
|
||||
// object dp_obj = _threaded_bb.sec_thread_retrieve_from_cache(_in_bb_onefive_value_tag);
|
||||
// if (dp_obj != null) {
|
||||
// DataPacket dp = dp_obj as DataPacket;
|
||||
@@ -270,22 +317,29 @@ namespace BCG {
|
||||
|
||||
#region Vol Shift
|
||||
|
||||
private void _add_vol_shift(ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_data) {
|
||||
private void _add_vol_shift(ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_data)
|
||||
{
|
||||
var vshift_map = _threaded_bb.read_state(_in_bb_vol_shift_tag);
|
||||
if (vshift_map != null)
|
||||
add_vol_shift(_nmsheet_symbol, theo_data, vshift_map);
|
||||
}
|
||||
|
||||
internal static void add_vol_shift(NMSheetSymbol apply_to_symbol, ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_data, IDictionary<NMSheetExpiration, double> exp_shift_map) {
|
||||
foreach (KeyValuePair<NMSheetExpiration, double> p in exp_shift_map) {
|
||||
if (p.Key.nmsheet_symbol.Equals(apply_to_symbol)) {
|
||||
internal static void add_vol_shift(NMSheetSymbol apply_to_symbol, ExpStrikeKeyedData<mbts.spark.TheoPoint> theo_data, IDictionary<NMSheetExpiration, double> exp_shift_map)
|
||||
{
|
||||
foreach (KeyValuePair<NMSheetExpiration, double> p in exp_shift_map)
|
||||
{
|
||||
if (p.Key.nmsheet_symbol.Equals(apply_to_symbol))
|
||||
{
|
||||
DateTime option_expiration = p.Key.option_expiration;
|
||||
double shift = p.Value;
|
||||
if (shift != 0) {
|
||||
if (shift != 0)
|
||||
{
|
||||
IDictionary<double, mbts.spark.TheoPoint> exp_theos = theo_data.get_data_for_single_exp(option_expiration);
|
||||
if (exp_theos != null) {
|
||||
if (exp_theos != null)
|
||||
{
|
||||
Dictionary<double, mbts.spark.TheoPoint> shifted_exp_theos = new Dictionary<double, mbts.spark.TheoPoint>();
|
||||
foreach (KeyValuePair<double, mbts.spark.TheoPoint> strike_tp in exp_theos) {
|
||||
foreach (KeyValuePair<double, mbts.spark.TheoPoint> strike_tp in exp_theos)
|
||||
{
|
||||
mbts.spark.TheoPoint new_tp = (mbts.spark.TheoPoint)strike_tp.Value.Clone();
|
||||
add_vol_shift(new_tp, shift);
|
||||
shifted_exp_theos[strike_tp.Key] = new_tp;
|
||||
@@ -297,7 +351,8 @@ namespace BCG {
|
||||
}
|
||||
}
|
||||
|
||||
internal static void add_vol_shift(mbts.spark.TheoPoint v, double shift) {
|
||||
internal static void add_vol_shift(mbts.spark.TheoPoint v, double shift)
|
||||
{
|
||||
v.call += v.cvega * shift;
|
||||
v.put += v.pvega * shift;
|
||||
}
|
||||
@@ -305,7 +360,8 @@ namespace BCG {
|
||||
#endregion
|
||||
|
||||
#region IDisposable
|
||||
public void Dispose() {
|
||||
public void Dispose()
|
||||
{
|
||||
_threaded_bb.data_callback -= _react_to_bb;
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -40,7 +40,10 @@ namespace Spark.Api.Orders {
|
||||
) {
|
||||
_order_service = order_service;
|
||||
var scheduler = ThreadPoolScheduler.Instance;
|
||||
interval ??= TimeSpan.FromSeconds(0.1);
|
||||
if(interval is not null)
|
||||
logger.Information("originally OrdersClient polling interval {0}", interval);
|
||||
interval = TimeSpan.FromMilliseconds(1);
|
||||
logger.Information("OrdersClient polling interval {0}", interval);
|
||||
var bootstraps = new DisposableBuilder();
|
||||
|
||||
positions = position_service.subscribei_position_data().Table().Cache();
|
||||
|
||||
@@ -30,5 +30,6 @@ OrdermanCfg {
|
||||
poll: false
|
||||
hosted_actor: "*"
|
||||
}
|
||||
fallback_cust_order_handling_inst: "Y"
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "spark/orderman/orderman_utils/orderman_common.h"
|
||||
#include "spark/tracing/bts_trace.h"
|
||||
#include "spark/utils/TimeStamp.h"
|
||||
#include "spark/utils/bts_assert.h"
|
||||
#include "spark/utils/bts_chrono.h"
|
||||
#include "spark/utils/datetime.h"
|
||||
#include "spark/utils/thread_manager.h"
|
||||
@@ -97,7 +98,8 @@ struct CoreGateway::PImpl {
|
||||
: cfg(cfg), observer(observer), make_connection(conn_factory),
|
||||
make_store(store_factory), state(State::OFF), start_of_pause(),
|
||||
session_info(), event_queue(), timer_thread(), destroy(false),
|
||||
is_on(false), has_replayed(false), send_batch(), recv_batch(),
|
||||
is_on(false), has_replayed(false), gave_up_permanently(false),
|
||||
send_batch(), recv_batch(),
|
||||
connection_attempts(0), perf_log(l) {
|
||||
send_batch.reserve(1024);
|
||||
recv_batch.reserve(1024);
|
||||
@@ -116,6 +118,7 @@ struct CoreGateway::PImpl {
|
||||
std::atomic<bool> destroy;
|
||||
bool is_on;
|
||||
bool has_replayed;
|
||||
bool gave_up_permanently;
|
||||
std::vector<EventData> send_batch;
|
||||
std::vector<EventData> recv_batch;
|
||||
uint32_t connection_attempts;
|
||||
@@ -329,6 +332,11 @@ void CoreGateway::sync_session_ready(EventData const &) {
|
||||
case State::WSESSION_TERMINATE:
|
||||
break;
|
||||
case State::CONNECTING:
|
||||
LOG(Jetfix, Info,
|
||||
"Jetfix session {} is now READY after socket connect. attempts={} "
|
||||
"max_attempts={}",
|
||||
me->cfg.name(), me->connection_attempts,
|
||||
me->cfg.max_connection_attempts());
|
||||
transition(State::READY);
|
||||
me->observer.ready();
|
||||
break;
|
||||
@@ -346,10 +354,18 @@ void CoreGateway::sync_session_terminated(EventData const &) {
|
||||
break;
|
||||
|
||||
case State::WSESSION_TERMINATE:
|
||||
LOG(Jetfix, Warn,
|
||||
"Session terminated callback received for {} while waiting for "
|
||||
"reader disconnect. attempts_so_far={}",
|
||||
me->cfg.name(), me->connection_attempts);
|
||||
pause_or_shutdown();
|
||||
break;
|
||||
|
||||
case State::READY:
|
||||
LOG(Jetfix, Warn,
|
||||
"Session terminated for {} from READY. Closing socket and waiting "
|
||||
"for reader disconnect.",
|
||||
me->cfg.name());
|
||||
me->session_info->session.reset();
|
||||
me->session_info->connection->shutdown();
|
||||
transition(State::WREADER_DISCONNECT);
|
||||
@@ -357,6 +373,10 @@ void CoreGateway::sync_session_terminated(EventData const &) {
|
||||
break;
|
||||
|
||||
case State::CONNECTING:
|
||||
LOG(Jetfix, Warn,
|
||||
"Session terminated for {} during CONNECTING before READY. "
|
||||
"Closing socket and waiting for reader disconnect.",
|
||||
me->cfg.name());
|
||||
me->session_info->session.reset();
|
||||
me->session_info->connection->shutdown();
|
||||
transition(State::WREADER_DISCONNECT);
|
||||
@@ -376,17 +396,28 @@ void CoreGateway::sync_reader_disconnected(EventData const &) {
|
||||
break;
|
||||
|
||||
case State::READY:
|
||||
LOG(Jetfix, Warn,
|
||||
"Socket reader disconnected for {} from READY. "
|
||||
"The exchange or network closed the TCP session.",
|
||||
me->cfg.name());
|
||||
me->session_info->session.reset();
|
||||
me->observer.disconnect();
|
||||
transition(State::WSESSION_TERMINATE);
|
||||
break;
|
||||
|
||||
case State::CONNECTING:
|
||||
LOG(Jetfix, Warn,
|
||||
"Socket reader disconnected for {} during CONNECTING before READY. "
|
||||
"The TCP socket connected, but the session never completed logon.",
|
||||
me->cfg.name());
|
||||
me->session_info->session.reset();
|
||||
transition(State::WSESSION_TERMINATE);
|
||||
break;
|
||||
|
||||
case State::WREADER_DISCONNECT:
|
||||
LOG(Jetfix, Info,
|
||||
"Reader disconnect completed for {} after session shutdown.",
|
||||
me->cfg.name());
|
||||
pause_or_shutdown();
|
||||
break;
|
||||
|
||||
@@ -430,27 +461,46 @@ void CoreGateway::sync_in_msg_sequenced(EventData const &ev) {
|
||||
bts_assert(false);
|
||||
}
|
||||
}
|
||||
|
||||
void CoreGateway::sync_time(EventData const &ev) {
|
||||
switch (me->state) {
|
||||
case State::OFF:
|
||||
break;
|
||||
case State::PAUSED:
|
||||
if (me->gave_up_permanently)
|
||||
break;
|
||||
|
||||
if (datetime::is_at_least_secs_old(
|
||||
me->start_of_pause, me->cfg.seconds_to_pause())) {
|
||||
LOG(Jetfix, Info, "Pause period ended for jetfix connection {}",
|
||||
me->cfg.name());
|
||||
LOG(Jetfix, Info,
|
||||
"Pause ended for jetfix connection {}. pause_secs={} "
|
||||
"attempts_so_far={} max_attempts={} host={}:{} segment={} "
|
||||
"session_window={}-{} {}-{} replayed={}",
|
||||
me->cfg.name(), me->cfg.seconds_to_pause(),
|
||||
me->connection_attempts, me->cfg.max_connection_attempts(),
|
||||
me->cfg.socket_connect_host_ip(), me->cfg.socket_connect_port(),
|
||||
me->cfg.cme_market_segment_id(), me->cfg.start_time(),
|
||||
me->cfg.end_time(), me->cfg.start_day(), me->cfg.end_day(),
|
||||
me->has_replayed);
|
||||
me->session_info = std::make_unique<SessionInfo>();
|
||||
|
||||
me->session_info->store.reset(me->make_store(me->cfg));
|
||||
|
||||
if (me->session_info->store->session_active()) {
|
||||
auto const session_active = me->session_info->store->session_active();
|
||||
LOG(Jetfix, Info,
|
||||
"Loaded FIX store for {}. session_active={} next_attempt={} "
|
||||
"max_attempts={}",
|
||||
me->cfg.name(), session_active, me->connection_attempts + 1,
|
||||
me->cfg.max_connection_attempts());
|
||||
if (session_active) {
|
||||
me->connection_attempts++;
|
||||
|
||||
LOG(Jetfix, Info,
|
||||
"Attempting socket connect for jetfix connection {}. "
|
||||
"attempt={} max_attempts={}",
|
||||
me->cfg.name(), me->connection_attempts,
|
||||
me->cfg.max_connection_attempts());
|
||||
if (!me->has_replayed) {
|
||||
auto msgs_to_replay = me->session_info->store->replay();
|
||||
LOG(Jetfix, Warn, "Replaying {} FIX msgs",
|
||||
msgs_to_replay.size());
|
||||
LOG(Jetfix, Warn,
|
||||
"Replaying {} FIX msgs for {} before reconnect",
|
||||
msgs_to_replay.size(), me->cfg.name());
|
||||
me->observer.replay(msgs_to_replay);
|
||||
me->has_replayed = true;
|
||||
}
|
||||
@@ -458,14 +508,20 @@ void CoreGateway::sync_time(EventData const &ev) {
|
||||
if (me->connection_attempts > me->cfg.max_connection_attempts()) {
|
||||
me->session_info.reset();
|
||||
me->start_of_pause = datetime::now();
|
||||
me->gave_up_permanently = true;
|
||||
LOG(Jetfix, Error,
|
||||
"Failed to connect to exchange gateway {} too many "
|
||||
"times. Giving up permanently. You must bounce "
|
||||
"the server to recover.",
|
||||
me->cfg.name());
|
||||
"times. Giving up permanently. attempts={} "
|
||||
"max_attempts={} pause_secs={} host={}:{} segment={}. "
|
||||
"You must bounce the server to recover.",
|
||||
me->cfg.name(), me->connection_attempts,
|
||||
me->cfg.max_connection_attempts(),
|
||||
me->cfg.seconds_to_pause(),
|
||||
me->cfg.socket_connect_host_ip(),
|
||||
me->cfg.socket_connect_port(),
|
||||
me->cfg.cme_market_segment_id());
|
||||
break;
|
||||
}
|
||||
|
||||
me->session_info->connection.reset(me->make_connection(me->cfg));
|
||||
LOG(Jetfix, Warn, "Trying to connect to exchange for {} ({}/{})",
|
||||
me->cfg.name(), me->connection_attempts,
|
||||
@@ -489,11 +545,18 @@ void CoreGateway::sync_time(EventData const &ev) {
|
||||
me->session_info.reset();
|
||||
me->start_of_pause = datetime::now();
|
||||
LOG(Jetfix, Warn,
|
||||
"Failed to connect to exchange for {}. ({}/{}) ",
|
||||
"Failed to connect to exchange for {}. ({}/{}) "
|
||||
"Will retry after {} seconds.",
|
||||
me->cfg.name(), me->connection_attempts,
|
||||
me->cfg.max_connection_attempts());
|
||||
me->cfg.max_connection_attempts(),
|
||||
me->cfg.seconds_to_pause());
|
||||
}
|
||||
} else {
|
||||
LOG(Jetfix, Warn,
|
||||
"FIX store for {} is not active yet. Deferring reconnect. "
|
||||
"session_window={}-{} {}-{}",
|
||||
me->cfg.name(), me->cfg.start_time(), me->cfg.end_time(),
|
||||
me->cfg.start_day(), me->cfg.end_day());
|
||||
me->session_info.reset();
|
||||
me->start_of_pause = datetime::now();
|
||||
}
|
||||
@@ -516,6 +579,12 @@ void CoreGateway::pause_or_shutdown() {
|
||||
|
||||
if (me->is_on) {
|
||||
me->start_of_pause = datetime::now();
|
||||
LOG(Jetfix, Info,
|
||||
"Pausing jetfix gateway {}. pause_secs={} attempts_so_far={} "
|
||||
"max_attempts={} gave_up_permanently={}",
|
||||
me->cfg.name(), me->cfg.seconds_to_pause(),
|
||||
me->connection_attempts, me->cfg.max_connection_attempts(),
|
||||
me->gave_up_permanently);
|
||||
transition(State::PAUSED);
|
||||
} else
|
||||
transition(State::OFF);
|
||||
|
||||
@@ -114,6 +114,15 @@ void Session::start() {
|
||||
me->start_of_logon = me->now();
|
||||
me->last_seq_num = me->begin_of_this_session;
|
||||
me->last_seq_num_processed = me->store.last_seq_num_processed();
|
||||
LOG(Jetfix, Info,
|
||||
"Starting jetfix session {}. sender_compid={} sender_subid={} "
|
||||
"target_compid={} target_subid={} secure_logon={} raw_data_len={} "
|
||||
"user_name_present={} seq_num={} last_processed={}",
|
||||
me->cfg.name(), me->cfg.sender_compid(), me->cfg.sender_subid(),
|
||||
me->cfg.target_compid(), me->cfg.target_subid(),
|
||||
me->cfg.use_cme_secure_logon(), me->cfg.raw_data().size(),
|
||||
!me->cfg.user_name().empty(), me->last_seq_num + 1,
|
||||
me->last_seq_num_processed);
|
||||
transition(State::WLOGON);
|
||||
internal_send(make_logon(
|
||||
me->last_seq_num + 1, me->last_seq_num_processed, *me->current_time,
|
||||
|
||||
@@ -47,7 +47,7 @@ IL3GW::IL3GW(
|
||||
: _config(conf), _x_state(State::INIT), _buffer(buffer),
|
||||
_on_state_change([](auto) {}), _on_exe_report([](auto) {}),
|
||||
_on_session_change([](auto) {}), _connection(con), _session(session),
|
||||
_msg_count(0), _time(), _pool(), _exe_parser(cfg, db), _retransmit() {
|
||||
_msg_count(0), _time(), _pool("IL3GW_rprts", 1024*2, 100), _exe_parser(cfg, db), _retransmit() {
|
||||
LOG(OrderMan, Info,
|
||||
"IL3GW::IL3GW cme_session: {} uuid: {} to_cme: {} from_cme: {}",
|
||||
_config.cme_session, _session.uuid, _session.to_cme, _session.from_cme);
|
||||
@@ -179,15 +179,10 @@ uint64_t IL3GW::send_party_details(const api::orderman::RoutingRecord &route) {
|
||||
using namespace iLinkBinary;
|
||||
|
||||
auto msg = _buffer.frame<PartyDetailsDefinitionRequest518>(
|
||||
// 2 repeating group header.
|
||||
// 1 for party details and 1 for trade reg
|
||||
// This seems unsafe but the api doesn't seem to want you to know how to
|
||||
// size buffers ahead of time
|
||||
2 * PartyDetailsDefinitionRequest518::NoPartyDetails::sbeHeaderSize() +
|
||||
// N * size of each block
|
||||
3 * PartyDetailsDefinitionRequest518::NoPartyDetails::sbeBlockLength() +
|
||||
0 * PartyDetailsDefinitionRequest518::NoTrdRegPublications::
|
||||
sbeBlockLength());
|
||||
// Use the generated helper so group sizing stays in sync with the
|
||||
// active schema when CME updates the template layout.
|
||||
PartyDetailsDefinitionRequest518::computeLength(3, 0) -
|
||||
PartyDetailsDefinitionRequest518::sbeBlockLength());
|
||||
msg.partyDetailsListReqID(0);
|
||||
msg.sendingTimeEpoch(_time.now());
|
||||
msg.listUpdateAction(ListUpdAct::Add);
|
||||
@@ -637,8 +632,13 @@ void IL3GW::handle(
|
||||
handle_common(msg);
|
||||
}
|
||||
void IL3GW::handle(const iLinkBinary::BusinessReject521 &msg) {
|
||||
LOG(iLink3, Error, "Business Reject: {} '{}'.", msg.businessRejectReason(),
|
||||
string{translate_business_reject_reason(msg.businessRejectReason())});
|
||||
LOG(iLink3, Error,
|
||||
"Business Reject: reason={} '{}' ref_seq={} ref_tag={} ref_msg_type='{}' "
|
||||
"ref_id={} text='{}'",
|
||||
msg.businessRejectReason(),
|
||||
string{translate_business_reject_reason(msg.businessRejectReason())},
|
||||
msg.refSeqNum(), msg.refTagID(), msg.getRefMsgTypeAsStringView(),
|
||||
msg.businessRejectRefID(), msg.getTextAsStringView());
|
||||
handle_common(msg);
|
||||
// A business reject can de-sync the sequence number because it rejects
|
||||
// the sequence number of the rejected message. Send a sequence message
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(330);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(521);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
{
|
||||
GiveUp = static_cast<char>(71),
|
||||
SGXoffset = static_cast<char>(83),
|
||||
NULL_VALUE = static_cast<char>(0x00)
|
||||
NULL_VALUE = static_cast<char>(0)
|
||||
};
|
||||
|
||||
static CmtaGiveUpCD::Value get(const char value)
|
||||
@@ -41,7 +41,7 @@ public:
|
||||
{
|
||||
case static_cast<char>(71): return GiveUp;
|
||||
case static_cast<char>(83): return SGXoffset;
|
||||
case static_cast<char>(0x00): return NULL_VALUE;
|
||||
case static_cast<char>(0): return NULL_VALUE;
|
||||
}
|
||||
|
||||
throw std::runtime_error("unknown value for enum CmtaGiveUpCD [E103]");
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
/* Generated SBE (Simple Binary Encoding) message codec */
|
||||
#ifndef _ILINKBINARY_CROSSTYPEENUM_H_
|
||||
#define _ILINKBINARY_CROSSTYPEENUM_H_
|
||||
|
||||
#if !defined(__STDC_LIMIT_MACROS)
|
||||
# define __STDC_LIMIT_MACROS 1
|
||||
#endif
|
||||
|
||||
#include <cstdint>
|
||||
#include <iomanip>
|
||||
#include <limits>
|
||||
#include <ostream>
|
||||
#include <stdexcept>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
#define SBE_NULLVALUE_INT8 (std::numeric_limits<std::int8_t>::min)()
|
||||
#define SBE_NULLVALUE_INT16 (std::numeric_limits<std::int16_t>::min)()
|
||||
#define SBE_NULLVALUE_INT32 (std::numeric_limits<std::int32_t>::min)()
|
||||
#define SBE_NULLVALUE_INT64 (std::numeric_limits<std::int64_t>::min)()
|
||||
#define SBE_NULLVALUE_UINT8 (std::numeric_limits<std::uint8_t>::max)()
|
||||
#define SBE_NULLVALUE_UINT16 (std::numeric_limits<std::uint16_t>::max)()
|
||||
#define SBE_NULLVALUE_UINT32 (std::numeric_limits<std::uint32_t>::max)()
|
||||
#define SBE_NULLVALUE_UINT64 (std::numeric_limits<std::uint64_t>::max)()
|
||||
|
||||
namespace iLinkBinary {
|
||||
|
||||
class CrossTypeEnum
|
||||
{
|
||||
public:
|
||||
enum Value
|
||||
{
|
||||
Cross = static_cast<std::uint8_t>(3),
|
||||
RCross = static_cast<std::uint8_t>(20),
|
||||
CCross = static_cast<std::uint8_t>(21),
|
||||
NULL_VALUE = static_cast<std::uint8_t>(255)
|
||||
};
|
||||
|
||||
static CrossTypeEnum::Value get(const std::uint8_t value)
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case static_cast<std::uint8_t>(3): return Cross;
|
||||
case static_cast<std::uint8_t>(20): return RCross;
|
||||
case static_cast<std::uint8_t>(21): return CCross;
|
||||
case static_cast<std::uint8_t>(255): return NULL_VALUE;
|
||||
}
|
||||
|
||||
throw std::runtime_error("unknown value for enum CrossTypeEnum [E103]");
|
||||
}
|
||||
|
||||
static const char *c_str(const CrossTypeEnum::Value value)
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case Cross: return "Cross";
|
||||
case RCross: return "RCross";
|
||||
case CCross: return "CCross";
|
||||
case NULL_VALUE: return "NULL_VALUE";
|
||||
}
|
||||
|
||||
throw std::runtime_error("unknown value for enum CrossTypeEnum [E103]:");
|
||||
}
|
||||
|
||||
template<typename CharT, typename Traits>
|
||||
friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
std::basic_ostream<CharT, Traits> &os, CrossTypeEnum::Value m)
|
||||
{
|
||||
return os << CrossTypeEnum::c_str(m);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -36,7 +36,7 @@ public:
|
||||
AlgoEngine = static_cast<char>(72),
|
||||
DeskElectronic = static_cast<char>(87),
|
||||
ClientElectronic = static_cast<char>(89),
|
||||
NULL_VALUE = static_cast<char>(48)
|
||||
NULL_VALUE = static_cast<char>(0)
|
||||
};
|
||||
|
||||
static CustOrdHandlInst::Value get(const char value)
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
case static_cast<char>(72): return AlgoEngine;
|
||||
case static_cast<char>(87): return DeskElectronic;
|
||||
case static_cast<char>(89): return ClientElectronic;
|
||||
case static_cast<char>(48): return NULL_VALUE;
|
||||
case static_cast<char>(0): return NULL_VALUE;
|
||||
}
|
||||
|
||||
throw std::runtime_error("unknown value for enum CustOrdHandlInst [E103]");
|
||||
|
||||
@@ -194,7 +194,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *lengthMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
|
||||
@@ -38,7 +38,7 @@ public:
|
||||
CalculationDifference = static_cast<char>(70),
|
||||
NoMatchingExecutionReport = static_cast<char>(71),
|
||||
Other = static_cast<char>(90),
|
||||
NULL_VALUE = static_cast<char>(48)
|
||||
NULL_VALUE = static_cast<char>(0)
|
||||
};
|
||||
|
||||
static DKReason::Value get(const char value)
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
case static_cast<char>(70): return CalculationDifference;
|
||||
case static_cast<char>(71): return NoMatchingExecutionReport;
|
||||
case static_cast<char>(90): return Other;
|
||||
case static_cast<char>(48): return NULL_VALUE;
|
||||
case static_cast<char>(0): return NULL_VALUE;
|
||||
}
|
||||
|
||||
throw std::runtime_error("unknown value for enum DKReason [E103]");
|
||||
|
||||
@@ -194,7 +194,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *mantissaMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
|
||||
@@ -194,7 +194,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *mantissaMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
@@ -213,7 +213,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t mantissaSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 6;
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool mantissaInActingVersion() SBE_NOEXCEPT
|
||||
@@ -255,7 +255,7 @@ public:
|
||||
|
||||
SBE_NODISCARD std::int64_t mantissa() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 6)
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return INT64_C(9223372036854775807);
|
||||
}
|
||||
@@ -288,7 +288,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t exponentSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 6;
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool exponentInActingVersion() SBE_NOEXCEPT
|
||||
@@ -330,7 +330,7 @@ public:
|
||||
|
||||
SBE_NODISCARD std::int8_t exponent() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 6)
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return static_cast<std::int8_t>(127);
|
||||
}
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(132);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(503);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -165,10 +167,10 @@ private:
|
||||
}
|
||||
|
||||
public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(38);
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(39);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(504);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -222,7 +224,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeBlockLength() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(38);
|
||||
return static_cast<std::uint16_t>(39);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t sbeBlockAndHeaderLength() SBE_NOEXCEPT
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
@@ -968,6 +970,82 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *EnvironmentIndicatorMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::PRESENCE: return "optional";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t environmentIndicatorId() SBE_NOEXCEPT
|
||||
{
|
||||
return 39032;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t environmentIndicatorSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool environmentIndicatorInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= environmentIndicatorSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t environmentIndicatorEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 38;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorNullValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(255);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorMinValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(0);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorMaxValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(254);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::size_t environmentIndicatorEncodingLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::uint8_t environmentIndicator() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return static_cast<std::uint8_t>(255);
|
||||
}
|
||||
|
||||
std::uint8_t val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 38, sizeof(std::uint8_t));
|
||||
return (val);
|
||||
}
|
||||
|
||||
EstablishmentAck504 &environmentIndicator(const std::uint8_t value) SBE_NOEXCEPT
|
||||
{
|
||||
std::uint8_t val = (value);
|
||||
std::memcpy(m_buffer + m_offset + 38, &val, sizeof(std::uint8_t));
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<typename CharT, typename Traits>
|
||||
friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
std::basic_ostream<CharT, Traits> &builder, EstablishmentAck504 _writer)
|
||||
@@ -1020,6 +1098,10 @@ friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
builder << R"("SplitMsg": )";
|
||||
builder << '"' << writer.splitMsg() << '"';
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("EnvironmentIndicator": )";
|
||||
builder << +writer.environmentIndicator();
|
||||
|
||||
builder << '}';
|
||||
|
||||
return builder;
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -165,10 +167,10 @@ private:
|
||||
}
|
||||
|
||||
public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(72);
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(73);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(505);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -222,7 +224,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeBlockLength() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(72);
|
||||
return static_cast<std::uint16_t>(73);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t sbeBlockAndHeaderLength() SBE_NOEXCEPT
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
@@ -961,6 +963,82 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *EnvironmentIndicatorMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::PRESENCE: return "optional";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t environmentIndicatorId() SBE_NOEXCEPT
|
||||
{
|
||||
return 39032;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t environmentIndicatorSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool environmentIndicatorInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= environmentIndicatorSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t environmentIndicatorEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 72;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorNullValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(255);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorMinValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(0);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorMaxValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(254);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::size_t environmentIndicatorEncodingLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::uint8_t environmentIndicator() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return static_cast<std::uint8_t>(255);
|
||||
}
|
||||
|
||||
std::uint8_t val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 72, sizeof(std::uint8_t));
|
||||
return (val);
|
||||
}
|
||||
|
||||
EstablishmentReject505 &environmentIndicator(const std::uint8_t value) SBE_NOEXCEPT
|
||||
{
|
||||
std::uint8_t val = (value);
|
||||
std::memcpy(m_buffer + m_offset + 72, &val, sizeof(std::uint8_t));
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<typename CharT, typename Traits>
|
||||
friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
std::basic_ostream<CharT, Traits> &builder, EstablishmentReject505 _writer)
|
||||
@@ -1006,6 +1084,10 @@ friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
builder << R"("SplitMsg": )";
|
||||
builder << '"' << writer.splitMsg() << '"';
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("EnvironmentIndicator": )";
|
||||
builder << +writer.environmentIndicator();
|
||||
|
||||
builder << '}';
|
||||
|
||||
return builder;
|
||||
|
||||
@@ -194,7 +194,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
ExecInst &clear()
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
{
|
||||
Aggressive = static_cast<char>(65),
|
||||
Passive = static_cast<char>(80),
|
||||
NULL_VALUE = static_cast<char>(0x00)
|
||||
NULL_VALUE = static_cast<char>(0)
|
||||
};
|
||||
|
||||
static ExecMode::Value get(const char value)
|
||||
@@ -41,7 +41,7 @@ public:
|
||||
{
|
||||
case static_cast<char>(65): return Aggressive;
|
||||
case static_cast<char>(80): return Passive;
|
||||
case static_cast<char>(0x00): return NULL_VALUE;
|
||||
case static_cast<char>(0): return NULL_VALUE;
|
||||
}
|
||||
|
||||
throw std::runtime_error("unknown value for enum ExecMode [E103]");
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(101);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(539);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(247);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(534);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(219);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(524);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(226);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(531);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(226);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(522);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(219);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(564);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(196);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(565);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(483);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(523);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(513);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(532);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
+326
-8
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -165,10 +167,10 @@ private:
|
||||
}
|
||||
|
||||
public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(222);
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(266);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(548);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -222,7 +224,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeBlockLength() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(222);
|
||||
return static_cast<std::uint16_t>(266);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t sbeBlockAndHeaderLength() SBE_NOEXCEPT
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
@@ -3110,7 +3112,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
@@ -3157,7 +3159,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
@@ -3247,6 +3249,313 @@ public:
|
||||
return m_benchmarkPrice;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *MDTradeEntryIDMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t mDTradeEntryIDId() SBE_NOEXCEPT
|
||||
{
|
||||
return 37711;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t mDTradeEntryIDSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool mDTradeEntryIDInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= mDTradeEntryIDSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t mDTradeEntryIDEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 222;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint32_t mDTradeEntryIDNullValue() SBE_NOEXCEPT
|
||||
{
|
||||
return SBE_NULLVALUE_UINT32;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint32_t mDTradeEntryIDMinValue() SBE_NOEXCEPT
|
||||
{
|
||||
return UINT32_C(0x0);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint32_t mDTradeEntryIDMaxValue() SBE_NOEXCEPT
|
||||
{
|
||||
return UINT32_C(0xfffffffe);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::size_t mDTradeEntryIDEncodingLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::uint32_t mDTradeEntryID() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return UINT32_C(0xffffffff);
|
||||
}
|
||||
|
||||
std::uint32_t val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 222, sizeof(std::uint32_t));
|
||||
return SBE_LITTLE_ENDIAN_ENCODE_32(val);
|
||||
}
|
||||
|
||||
ExecutionReportTradeAddendumOutright548 &mDTradeEntryID(const std::uint32_t value) SBE_NOEXCEPT
|
||||
{
|
||||
std::uint32_t val = SBE_LITTLE_ENDIAN_ENCODE_32(value);
|
||||
std::memcpy(m_buffer + m_offset + 222, &val, sizeof(std::uint32_t));
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *ExecRefIDMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "String";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t execRefIDId() SBE_NOEXCEPT
|
||||
{
|
||||
return 19;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t execRefIDSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool execRefIDInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= execRefIDSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t execRefIDEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 226;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR char execRefIDNullValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<char>(0);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR char execRefIDMinValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<char>(32);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR char execRefIDMaxValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<char>(126);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::size_t execRefIDEncodingLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 40;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint64_t execRefIDLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 40;
|
||||
}
|
||||
|
||||
SBE_NODISCARD const char *execRefID() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return m_buffer + m_offset + 226;
|
||||
}
|
||||
|
||||
SBE_NODISCARD char *execRefID() SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return m_buffer + m_offset + 226;
|
||||
}
|
||||
|
||||
SBE_NODISCARD char execRefID(const std::uint64_t index) const
|
||||
{
|
||||
if (index >= 40)
|
||||
{
|
||||
throw std::runtime_error("index out of range for execRefID [E104]");
|
||||
}
|
||||
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return static_cast<char>(0);
|
||||
}
|
||||
|
||||
char val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 226 + (index * 1), sizeof(char));
|
||||
return (val);
|
||||
}
|
||||
|
||||
ExecutionReportTradeAddendumOutright548 &execRefID(const std::uint64_t index, const char value)
|
||||
{
|
||||
if (index >= 40)
|
||||
{
|
||||
throw std::runtime_error("index out of range for execRefID [E105]");
|
||||
}
|
||||
|
||||
char val = (value);
|
||||
std::memcpy(m_buffer + m_offset + 226 + (index * 1), &val, sizeof(char));
|
||||
return *this;
|
||||
}
|
||||
|
||||
std::uint64_t getExecRefID(char *const dst, const std::uint64_t length) const
|
||||
{
|
||||
if (length > 40)
|
||||
{
|
||||
throw std::runtime_error("length too large for getExecRefID [E106]");
|
||||
}
|
||||
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::memcpy(dst, m_buffer + m_offset + 226, sizeof(char) * static_cast<std::size_t>(length));
|
||||
return length;
|
||||
}
|
||||
|
||||
ExecutionReportTradeAddendumOutright548 &putExecRefID(const char *const src) SBE_NOEXCEPT
|
||||
{
|
||||
std::memcpy(m_buffer + m_offset + 226, src, sizeof(char) * 40);
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::string getExecRefIDAsString() const
|
||||
{
|
||||
const char *buffer = m_buffer + m_offset + 226;
|
||||
std::size_t length = 0;
|
||||
|
||||
for (; length < 40 && *(buffer + length) != '\0'; ++length);
|
||||
std::string result(buffer, length);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
std::string getExecRefIDAsJsonEscapedString()
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return std::string("");
|
||||
}
|
||||
|
||||
std::ostringstream oss;
|
||||
std::string s = getExecRefIDAsString();
|
||||
|
||||
for (const auto c : s)
|
||||
{
|
||||
switch (c)
|
||||
{
|
||||
case '"': oss << "\\\""; break;
|
||||
case '\\': oss << "\\\\"; break;
|
||||
case '\b': oss << "\\b"; break;
|
||||
case '\f': oss << "\\f"; break;
|
||||
case '\n': oss << "\\n"; break;
|
||||
case '\r': oss << "\\r"; break;
|
||||
case '\t': oss << "\\t"; break;
|
||||
|
||||
default:
|
||||
if ('\x00' <= c && c <= '\x1f')
|
||||
{
|
||||
oss << "\\u" << std::hex << std::setw(4)
|
||||
<< std::setfill('0') << (int)(c);
|
||||
}
|
||||
else
|
||||
{
|
||||
oss << c;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return oss.str();
|
||||
}
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
SBE_NODISCARD std::string_view getExecRefIDAsStringView() const SBE_NOEXCEPT
|
||||
{
|
||||
const char *buffer = m_buffer + m_offset + 226;
|
||||
std::size_t length = 0;
|
||||
|
||||
for (; length < 40 && *(buffer + length) != '\0'; ++length);
|
||||
std::string_view result(buffer, length);
|
||||
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
ExecutionReportTradeAddendumOutright548 &putExecRefID(const std::string_view str)
|
||||
{
|
||||
const std::size_t srcLength = str.length();
|
||||
if (srcLength > 40)
|
||||
{
|
||||
throw std::runtime_error("string too large for putExecRefID [E106]");
|
||||
}
|
||||
|
||||
std::memcpy(m_buffer + m_offset + 226, str.data(), srcLength);
|
||||
for (std::size_t start = srcLength; start < 40; ++start)
|
||||
{
|
||||
m_buffer[m_offset + 226 + start] = 0;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
#else
|
||||
ExecutionReportTradeAddendumOutright548 &putExecRefID(const std::string &str)
|
||||
{
|
||||
const std::size_t srcLength = str.length();
|
||||
if (srcLength > 40)
|
||||
{
|
||||
throw std::runtime_error("string too large for putExecRefID [E106]");
|
||||
}
|
||||
|
||||
std::memcpy(m_buffer + m_offset + 226, str.c_str(), srcLength);
|
||||
for (std::size_t start = srcLength; start < 40; ++start)
|
||||
{
|
||||
m_buffer[m_offset + 226 + start] = 0;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
#endif
|
||||
|
||||
class NoFills
|
||||
{
|
||||
private:
|
||||
@@ -4639,7 +4948,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
@@ -4686,7 +4995,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
@@ -5043,6 +5352,15 @@ friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
builder << "{}";
|
||||
}
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("MDTradeEntryID": )";
|
||||
builder << +writer.mDTradeEntryID();
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("ExecRefID": )";
|
||||
builder << '"' <<
|
||||
writer.getExecRefIDAsJsonEscapedString().c_str() << '"';
|
||||
|
||||
builder << ", ";
|
||||
{
|
||||
bool atLeastOne = false;
|
||||
|
||||
+242
-4
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -165,10 +167,10 @@ private:
|
||||
}
|
||||
|
||||
public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(187);
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(227);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(549);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -222,7 +224,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeBlockLength() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(187);
|
||||
return static_cast<std::uint16_t>(227);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t sbeBlockAndHeaderLength() SBE_NOEXCEPT
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
@@ -2963,6 +2965,237 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *ExecRefIDMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "String";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t execRefIDId() SBE_NOEXCEPT
|
||||
{
|
||||
return 19;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t execRefIDSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool execRefIDInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= execRefIDSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t execRefIDEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 187;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR char execRefIDNullValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<char>(0);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR char execRefIDMinValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<char>(32);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR char execRefIDMaxValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<char>(126);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::size_t execRefIDEncodingLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 40;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint64_t execRefIDLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 40;
|
||||
}
|
||||
|
||||
SBE_NODISCARD const char *execRefID() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return m_buffer + m_offset + 187;
|
||||
}
|
||||
|
||||
SBE_NODISCARD char *execRefID() SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return m_buffer + m_offset + 187;
|
||||
}
|
||||
|
||||
SBE_NODISCARD char execRefID(const std::uint64_t index) const
|
||||
{
|
||||
if (index >= 40)
|
||||
{
|
||||
throw std::runtime_error("index out of range for execRefID [E104]");
|
||||
}
|
||||
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return static_cast<char>(0);
|
||||
}
|
||||
|
||||
char val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 187 + (index * 1), sizeof(char));
|
||||
return (val);
|
||||
}
|
||||
|
||||
ExecutionReportTradeAddendumSpread549 &execRefID(const std::uint64_t index, const char value)
|
||||
{
|
||||
if (index >= 40)
|
||||
{
|
||||
throw std::runtime_error("index out of range for execRefID [E105]");
|
||||
}
|
||||
|
||||
char val = (value);
|
||||
std::memcpy(m_buffer + m_offset + 187 + (index * 1), &val, sizeof(char));
|
||||
return *this;
|
||||
}
|
||||
|
||||
std::uint64_t getExecRefID(char *const dst, const std::uint64_t length) const
|
||||
{
|
||||
if (length > 40)
|
||||
{
|
||||
throw std::runtime_error("length too large for getExecRefID [E106]");
|
||||
}
|
||||
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::memcpy(dst, m_buffer + m_offset + 187, sizeof(char) * static_cast<std::size_t>(length));
|
||||
return length;
|
||||
}
|
||||
|
||||
ExecutionReportTradeAddendumSpread549 &putExecRefID(const char *const src) SBE_NOEXCEPT
|
||||
{
|
||||
std::memcpy(m_buffer + m_offset + 187, src, sizeof(char) * 40);
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::string getExecRefIDAsString() const
|
||||
{
|
||||
const char *buffer = m_buffer + m_offset + 187;
|
||||
std::size_t length = 0;
|
||||
|
||||
for (; length < 40 && *(buffer + length) != '\0'; ++length);
|
||||
std::string result(buffer, length);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
std::string getExecRefIDAsJsonEscapedString()
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return std::string("");
|
||||
}
|
||||
|
||||
std::ostringstream oss;
|
||||
std::string s = getExecRefIDAsString();
|
||||
|
||||
for (const auto c : s)
|
||||
{
|
||||
switch (c)
|
||||
{
|
||||
case '"': oss << "\\\""; break;
|
||||
case '\\': oss << "\\\\"; break;
|
||||
case '\b': oss << "\\b"; break;
|
||||
case '\f': oss << "\\f"; break;
|
||||
case '\n': oss << "\\n"; break;
|
||||
case '\r': oss << "\\r"; break;
|
||||
case '\t': oss << "\\t"; break;
|
||||
|
||||
default:
|
||||
if ('\x00' <= c && c <= '\x1f')
|
||||
{
|
||||
oss << "\\u" << std::hex << std::setw(4)
|
||||
<< std::setfill('0') << (int)(c);
|
||||
}
|
||||
else
|
||||
{
|
||||
oss << c;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return oss.str();
|
||||
}
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
SBE_NODISCARD std::string_view getExecRefIDAsStringView() const SBE_NOEXCEPT
|
||||
{
|
||||
const char *buffer = m_buffer + m_offset + 187;
|
||||
std::size_t length = 0;
|
||||
|
||||
for (; length < 40 && *(buffer + length) != '\0'; ++length);
|
||||
std::string_view result(buffer, length);
|
||||
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
ExecutionReportTradeAddendumSpread549 &putExecRefID(const std::string_view str)
|
||||
{
|
||||
const std::size_t srcLength = str.length();
|
||||
if (srcLength > 40)
|
||||
{
|
||||
throw std::runtime_error("string too large for putExecRefID [E106]");
|
||||
}
|
||||
|
||||
std::memcpy(m_buffer + m_offset + 187, str.data(), srcLength);
|
||||
for (std::size_t start = srcLength; start < 40; ++start)
|
||||
{
|
||||
m_buffer[m_offset + 187 + start] = 0;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
#else
|
||||
ExecutionReportTradeAddendumSpread549 &putExecRefID(const std::string &str)
|
||||
{
|
||||
const std::size_t srcLength = str.length();
|
||||
if (srcLength > 40)
|
||||
{
|
||||
throw std::runtime_error("string too large for putExecRefID [E106]");
|
||||
}
|
||||
|
||||
std::memcpy(m_buffer + m_offset + 187, str.c_str(), srcLength);
|
||||
for (std::size_t start = srcLength; start < 40; ++start)
|
||||
{
|
||||
m_buffer[m_offset + 187 + start] = 0;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
#endif
|
||||
|
||||
class NoFills
|
||||
{
|
||||
private:
|
||||
@@ -5378,6 +5611,11 @@ friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
builder << R"("ShortSaleType": )";
|
||||
builder << '"' << writer.shortSaleType() << '"';
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("ExecRefID": )";
|
||||
builder << '"' <<
|
||||
writer.getExecRefIDAsJsonEscapedString().c_str() << '"';
|
||||
|
||||
builder << ", ";
|
||||
{
|
||||
bool atLeastOne = false;
|
||||
|
||||
+363
-9
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -165,10 +167,10 @@ private:
|
||||
}
|
||||
|
||||
public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(196);
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(236);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(550);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -222,7 +224,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeBlockLength() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(196);
|
||||
return static_cast<std::uint16_t>(236);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t sbeBlockAndHeaderLength() SBE_NOEXCEPT
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
@@ -2544,7 +2546,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
@@ -2591,7 +2593,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
@@ -2634,6 +2636,237 @@ public:
|
||||
return m_grossTradeAmt;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *ExecRefIDMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "String";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t execRefIDId() SBE_NOEXCEPT
|
||||
{
|
||||
return 19;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t execRefIDSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool execRefIDInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= execRefIDSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t execRefIDEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 196;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR char execRefIDNullValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<char>(0);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR char execRefIDMinValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<char>(32);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR char execRefIDMaxValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<char>(126);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::size_t execRefIDEncodingLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 40;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint64_t execRefIDLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 40;
|
||||
}
|
||||
|
||||
SBE_NODISCARD const char *execRefID() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return m_buffer + m_offset + 196;
|
||||
}
|
||||
|
||||
SBE_NODISCARD char *execRefID() SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return m_buffer + m_offset + 196;
|
||||
}
|
||||
|
||||
SBE_NODISCARD char execRefID(const std::uint64_t index) const
|
||||
{
|
||||
if (index >= 40)
|
||||
{
|
||||
throw std::runtime_error("index out of range for execRefID [E104]");
|
||||
}
|
||||
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return static_cast<char>(0);
|
||||
}
|
||||
|
||||
char val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 196 + (index * 1), sizeof(char));
|
||||
return (val);
|
||||
}
|
||||
|
||||
ExecutionReportTradeAddendumSpreadLeg550 &execRefID(const std::uint64_t index, const char value)
|
||||
{
|
||||
if (index >= 40)
|
||||
{
|
||||
throw std::runtime_error("index out of range for execRefID [E105]");
|
||||
}
|
||||
|
||||
char val = (value);
|
||||
std::memcpy(m_buffer + m_offset + 196 + (index * 1), &val, sizeof(char));
|
||||
return *this;
|
||||
}
|
||||
|
||||
std::uint64_t getExecRefID(char *const dst, const std::uint64_t length) const
|
||||
{
|
||||
if (length > 40)
|
||||
{
|
||||
throw std::runtime_error("length too large for getExecRefID [E106]");
|
||||
}
|
||||
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::memcpy(dst, m_buffer + m_offset + 196, sizeof(char) * static_cast<std::size_t>(length));
|
||||
return length;
|
||||
}
|
||||
|
||||
ExecutionReportTradeAddendumSpreadLeg550 &putExecRefID(const char *const src) SBE_NOEXCEPT
|
||||
{
|
||||
std::memcpy(m_buffer + m_offset + 196, src, sizeof(char) * 40);
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::string getExecRefIDAsString() const
|
||||
{
|
||||
const char *buffer = m_buffer + m_offset + 196;
|
||||
std::size_t length = 0;
|
||||
|
||||
for (; length < 40 && *(buffer + length) != '\0'; ++length);
|
||||
std::string result(buffer, length);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
std::string getExecRefIDAsJsonEscapedString()
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return std::string("");
|
||||
}
|
||||
|
||||
std::ostringstream oss;
|
||||
std::string s = getExecRefIDAsString();
|
||||
|
||||
for (const auto c : s)
|
||||
{
|
||||
switch (c)
|
||||
{
|
||||
case '"': oss << "\\\""; break;
|
||||
case '\\': oss << "\\\\"; break;
|
||||
case '\b': oss << "\\b"; break;
|
||||
case '\f': oss << "\\f"; break;
|
||||
case '\n': oss << "\\n"; break;
|
||||
case '\r': oss << "\\r"; break;
|
||||
case '\t': oss << "\\t"; break;
|
||||
|
||||
default:
|
||||
if ('\x00' <= c && c <= '\x1f')
|
||||
{
|
||||
oss << "\\u" << std::hex << std::setw(4)
|
||||
<< std::setfill('0') << (int)(c);
|
||||
}
|
||||
else
|
||||
{
|
||||
oss << c;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return oss.str();
|
||||
}
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
SBE_NODISCARD std::string_view getExecRefIDAsStringView() const SBE_NOEXCEPT
|
||||
{
|
||||
const char *buffer = m_buffer + m_offset + 196;
|
||||
std::size_t length = 0;
|
||||
|
||||
for (; length < 40 && *(buffer + length) != '\0'; ++length);
|
||||
std::string_view result(buffer, length);
|
||||
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
ExecutionReportTradeAddendumSpreadLeg550 &putExecRefID(const std::string_view str)
|
||||
{
|
||||
const std::size_t srcLength = str.length();
|
||||
if (srcLength > 40)
|
||||
{
|
||||
throw std::runtime_error("string too large for putExecRefID [E106]");
|
||||
}
|
||||
|
||||
std::memcpy(m_buffer + m_offset + 196, str.data(), srcLength);
|
||||
for (std::size_t start = srcLength; start < 40; ++start)
|
||||
{
|
||||
m_buffer[m_offset + 196 + start] = 0;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
#else
|
||||
ExecutionReportTradeAddendumSpreadLeg550 &putExecRefID(const std::string &str)
|
||||
{
|
||||
const std::size_t srcLength = str.length();
|
||||
if (srcLength > 40)
|
||||
{
|
||||
throw std::runtime_error("string too large for putExecRefID [E106]");
|
||||
}
|
||||
|
||||
std::memcpy(m_buffer + m_offset + 196, str.c_str(), srcLength);
|
||||
for (std::size_t start = srcLength; start < 40; ++start)
|
||||
{
|
||||
m_buffer[m_offset + 196 + start] = 0;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
#endif
|
||||
|
||||
class NoFills
|
||||
{
|
||||
private:
|
||||
@@ -3331,11 +3564,11 @@ public:
|
||||
m_buffer = buffer;
|
||||
m_bufferLength = bufferLength;
|
||||
GroupSize dimensions(buffer, *pos, bufferLength, actingVersion);
|
||||
dimensions.blockLength(static_cast<std::uint16_t>(27));
|
||||
dimensions.blockLength(static_cast<std::uint16_t>(45));
|
||||
dimensions.numInGroup(static_cast<std::uint8_t>(count));
|
||||
m_index = 0;
|
||||
m_count = count;
|
||||
m_blockLength = 27;
|
||||
m_blockLength = 45;
|
||||
m_actingVersion = actingVersion;
|
||||
m_initialPosition = *pos;
|
||||
m_positionPtr = pos;
|
||||
@@ -3349,7 +3582,7 @@ public:
|
||||
|
||||
static SBE_CONSTEXPR std::uint64_t sbeBlockLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 27;
|
||||
return 45;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::uint64_t sbePosition() const SBE_NOEXCEPT
|
||||
@@ -4022,6 +4255,100 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *ContraGrossTradeAmtMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t contraGrossTradeAmtId() SBE_NOEXCEPT
|
||||
{
|
||||
return 5542;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t contraGrossTradeAmtSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool contraGrossTradeAmtInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= contraGrossTradeAmtSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t contraGrossTradeAmtEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 27;
|
||||
}
|
||||
|
||||
private:
|
||||
Decimal64NULL m_contraGrossTradeAmt;
|
||||
|
||||
public:
|
||||
SBE_NODISCARD Decimal64NULL &contraGrossTradeAmt()
|
||||
{
|
||||
m_contraGrossTradeAmt.wrap(m_buffer, m_offset + 27, m_actingVersion, m_bufferLength);
|
||||
return m_contraGrossTradeAmt;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *ContraCalculatedCcyLastQtyMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t contraCalculatedCcyLastQtyId() SBE_NOEXCEPT
|
||||
{
|
||||
return 5971;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t contraCalculatedCcyLastQtySinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool contraCalculatedCcyLastQtyInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= contraCalculatedCcyLastQtySinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t contraCalculatedCcyLastQtyEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 36;
|
||||
}
|
||||
|
||||
private:
|
||||
Decimal64NULL m_contraCalculatedCcyLastQty;
|
||||
|
||||
public:
|
||||
SBE_NODISCARD Decimal64NULL &contraCalculatedCcyLastQty()
|
||||
{
|
||||
m_contraCalculatedCcyLastQty.wrap(m_buffer, m_offset + 36, m_actingVersion, m_bufferLength);
|
||||
return m_contraCalculatedCcyLastQty;
|
||||
}
|
||||
|
||||
template<typename CharT, typename Traits>
|
||||
friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
std::basic_ostream<CharT, Traits> &builder, NoOrderEvents writer)
|
||||
@@ -4055,6 +4382,28 @@ public:
|
||||
builder << R"("OriginalOrderEventExecID": )";
|
||||
builder << +writer.originalOrderEventExecID();
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("ContraGrossTradeAmt": )";
|
||||
if (writer.contraGrossTradeAmtInActingVersion())
|
||||
{
|
||||
builder << writer.contraGrossTradeAmt();
|
||||
}
|
||||
else
|
||||
{
|
||||
builder << "{}";
|
||||
}
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("ContraCalculatedCcyLastQty": )";
|
||||
if (writer.contraCalculatedCcyLastQtyInActingVersion())
|
||||
{
|
||||
builder << writer.contraCalculatedCcyLastQty();
|
||||
}
|
||||
else
|
||||
{
|
||||
builder << "{}";
|
||||
}
|
||||
|
||||
builder << '}';
|
||||
|
||||
return builder;
|
||||
@@ -4260,6 +4609,11 @@ friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
builder << "{}";
|
||||
}
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("ExecRefID": )";
|
||||
builder << '"' <<
|
||||
writer.getExecRefIDAsJsonEscapedString().c_str() << '"';
|
||||
|
||||
builder << ", ";
|
||||
{
|
||||
bool atLeastOne = false;
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(293);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(525);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
@@ -4094,7 +4096,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
@@ -4141,7 +4143,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
@@ -5717,7 +5719,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
@@ -5764,7 +5766,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(230);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(526);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(219);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(527);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
@@ -2760,7 +2762,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
@@ -2807,7 +2809,7 @@ public:
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
@@ -3547,11 +3549,11 @@ public:
|
||||
m_buffer = buffer;
|
||||
m_bufferLength = bufferLength;
|
||||
GroupSize dimensions(buffer, *pos, bufferLength, actingVersion);
|
||||
dimensions.blockLength(static_cast<std::uint16_t>(23));
|
||||
dimensions.blockLength(static_cast<std::uint16_t>(41));
|
||||
dimensions.numInGroup(static_cast<std::uint8_t>(count));
|
||||
m_index = 0;
|
||||
m_count = count;
|
||||
m_blockLength = 23;
|
||||
m_blockLength = 41;
|
||||
m_actingVersion = actingVersion;
|
||||
m_initialPosition = *pos;
|
||||
m_positionPtr = pos;
|
||||
@@ -3565,7 +3567,7 @@ public:
|
||||
|
||||
static SBE_CONSTEXPR std::uint64_t sbeBlockLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 23;
|
||||
return 41;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::uint64_t sbePosition() const SBE_NOEXCEPT
|
||||
@@ -4162,6 +4164,100 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *ContraGrossTradeAmtMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t contraGrossTradeAmtId() SBE_NOEXCEPT
|
||||
{
|
||||
return 5542;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t contraGrossTradeAmtSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool contraGrossTradeAmtInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= contraGrossTradeAmtSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t contraGrossTradeAmtEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 23;
|
||||
}
|
||||
|
||||
private:
|
||||
Decimal64NULL m_contraGrossTradeAmt;
|
||||
|
||||
public:
|
||||
SBE_NODISCARD Decimal64NULL &contraGrossTradeAmt()
|
||||
{
|
||||
m_contraGrossTradeAmt.wrap(m_buffer, m_offset + 23, m_actingVersion, m_bufferLength);
|
||||
return m_contraGrossTradeAmt;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *ContraCalculatedCcyLastQtyMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "Qty";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t contraCalculatedCcyLastQtyId() SBE_NOEXCEPT
|
||||
{
|
||||
return 5971;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t contraCalculatedCcyLastQtySinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool contraCalculatedCcyLastQtyInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= contraCalculatedCcyLastQtySinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t contraCalculatedCcyLastQtyEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 32;
|
||||
}
|
||||
|
||||
private:
|
||||
Decimal64NULL m_contraCalculatedCcyLastQty;
|
||||
|
||||
public:
|
||||
SBE_NODISCARD Decimal64NULL &contraCalculatedCcyLastQty()
|
||||
{
|
||||
m_contraCalculatedCcyLastQty.wrap(m_buffer, m_offset + 32, m_actingVersion, m_bufferLength);
|
||||
return m_contraCalculatedCcyLastQty;
|
||||
}
|
||||
|
||||
template<typename CharT, typename Traits>
|
||||
friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
std::basic_ostream<CharT, Traits> &builder, NoOrderEvents writer)
|
||||
@@ -4191,6 +4287,28 @@ public:
|
||||
builder << R"("OrderEventReason": )";
|
||||
builder << +writer.orderEventReason();
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("ContraGrossTradeAmt": )";
|
||||
if (writer.contraGrossTradeAmtInActingVersion())
|
||||
{
|
||||
builder << writer.contraGrossTradeAmt();
|
||||
}
|
||||
else
|
||||
{
|
||||
builder << "{}";
|
||||
}
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("ContraCalculatedCcyLastQty": )";
|
||||
if (writer.contraCalculatedCcyLastQtyInActingVersion())
|
||||
{
|
||||
builder << writer.contraCalculatedCcyLastQty();
|
||||
}
|
||||
else
|
||||
{
|
||||
builder << "{}";
|
||||
}
|
||||
|
||||
builder << '}';
|
||||
|
||||
return builder;
|
||||
|
||||
@@ -194,7 +194,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *blockLengthMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
{
|
||||
Limit = static_cast<char>(50),
|
||||
StopLimit = static_cast<char>(52),
|
||||
NULL_VALUE = static_cast<char>(48)
|
||||
NULL_VALUE = static_cast<char>(0)
|
||||
};
|
||||
|
||||
static MassActionOrdTyp::Value get(const char value)
|
||||
@@ -41,7 +41,7 @@ public:
|
||||
{
|
||||
case static_cast<char>(50): return Limit;
|
||||
case static_cast<char>(52): return StopLimit;
|
||||
case static_cast<char>(48): return NULL_VALUE;
|
||||
case static_cast<char>(0): return NULL_VALUE;
|
||||
}
|
||||
|
||||
throw std::runtime_error("unknown value for enum MassActionOrdTyp [E103]");
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(123);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(517);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -165,10 +167,10 @@ private:
|
||||
}
|
||||
|
||||
public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(351);
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(352);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(545);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -222,7 +224,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeBlockLength() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(351);
|
||||
return static_cast<std::uint16_t>(352);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t sbeBlockAndHeaderLength() SBE_NOEXCEPT
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
@@ -2344,6 +2346,79 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *QuoteEntryControlMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t quoteEntryControlId() SBE_NOEXCEPT
|
||||
{
|
||||
return 39034;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t quoteEntryControlSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool quoteEntryControlInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= quoteEntryControlSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t quoteEntryControlEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 351;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t quoteEntryControlEncodingLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::uint8_t quoteEntryControlRaw() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return static_cast<std::uint8_t>(255);
|
||||
}
|
||||
|
||||
std::uint8_t val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 351, sizeof(std::uint8_t));
|
||||
return (val);
|
||||
}
|
||||
|
||||
SBE_NODISCARD BooleanNULL::Value quoteEntryControl() const
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return BooleanNULL::NULL_VALUE;
|
||||
}
|
||||
|
||||
std::uint8_t val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 351, sizeof(std::uint8_t));
|
||||
return BooleanNULL::get((val));
|
||||
}
|
||||
|
||||
MassQuoteAck545 "eEntryControl(const BooleanNULL::Value value) SBE_NOEXCEPT
|
||||
{
|
||||
std::uint8_t val = (value);
|
||||
std::memcpy(m_buffer + m_offset + 351, &val, sizeof(std::uint8_t));
|
||||
return *this;
|
||||
}
|
||||
|
||||
class NoQuoteEntries
|
||||
{
|
||||
private:
|
||||
@@ -2970,6 +3045,10 @@ friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
builder << R"("QuoteEntryOpen": )";
|
||||
builder << '"' << writer.quoteEntryOpen() << '"';
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("QuoteEntryControl": )";
|
||||
builder << '"' << writer.quoteEntryControl() << '"';
|
||||
|
||||
builder << ", ";
|
||||
{
|
||||
bool atLeastOne = false;
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -194,7 +194,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *yearMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
|
||||
@@ -194,7 +194,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *blockLengthMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(76);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(500);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -165,10 +167,10 @@ private:
|
||||
}
|
||||
|
||||
public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(68);
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(69);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(502);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -222,7 +224,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeBlockLength() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(68);
|
||||
return static_cast<std::uint16_t>(69);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t sbeBlockAndHeaderLength() SBE_NOEXCEPT
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
@@ -890,6 +892,82 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *EnvironmentIndicatorMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::PRESENCE: return "optional";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t environmentIndicatorId() SBE_NOEXCEPT
|
||||
{
|
||||
return 39032;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t environmentIndicatorSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool environmentIndicatorInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= environmentIndicatorSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t environmentIndicatorEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 68;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorNullValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(255);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorMinValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(0);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorMaxValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(254);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::size_t environmentIndicatorEncodingLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::uint8_t environmentIndicator() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return static_cast<std::uint8_t>(255);
|
||||
}
|
||||
|
||||
std::uint8_t val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 68, sizeof(std::uint8_t));
|
||||
return (val);
|
||||
}
|
||||
|
||||
NegotiationReject502 &environmentIndicator(const std::uint8_t value) SBE_NOEXCEPT
|
||||
{
|
||||
std::uint8_t val = (value);
|
||||
std::memcpy(m_buffer + m_offset + 68, &val, sizeof(std::uint8_t));
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<typename CharT, typename Traits>
|
||||
friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
std::basic_ostream<CharT, Traits> &builder, NegotiationReject502 _writer)
|
||||
@@ -931,6 +1009,10 @@ friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
builder << R"("SplitMsg": )";
|
||||
builder << '"' << writer.splitMsg() << '"';
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("EnvironmentIndicator": )";
|
||||
builder << +writer.environmentIndicator();
|
||||
|
||||
builder << '}';
|
||||
|
||||
return builder;
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -165,10 +167,10 @@ private:
|
||||
}
|
||||
|
||||
public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(32);
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(33);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(501);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -222,7 +224,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeBlockLength() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(32);
|
||||
return static_cast<std::uint16_t>(33);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t sbeBlockAndHeaderLength() SBE_NOEXCEPT
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
@@ -951,6 +953,82 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *EnvironmentIndicatorMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::PRESENCE: return "optional";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t environmentIndicatorId() SBE_NOEXCEPT
|
||||
{
|
||||
return 39032;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t environmentIndicatorSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool environmentIndicatorInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= environmentIndicatorSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t environmentIndicatorEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 32;
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorNullValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(255);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorMinValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(0);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint8_t environmentIndicatorMaxValue() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint8_t>(254);
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::size_t environmentIndicatorEncodingLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::uint8_t environmentIndicator() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return static_cast<std::uint8_t>(255);
|
||||
}
|
||||
|
||||
std::uint8_t val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 32, sizeof(std::uint8_t));
|
||||
return (val);
|
||||
}
|
||||
|
||||
NegotiationResponse501 &environmentIndicator(const std::uint8_t value) SBE_NOEXCEPT
|
||||
{
|
||||
std::uint8_t val = (value);
|
||||
std::memcpy(m_buffer + m_offset + 32, &val, sizeof(std::uint8_t));
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *CredentialsMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
@@ -1178,6 +1256,10 @@ friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
builder << R"("PreviousUUID": )";
|
||||
builder << +writer.previousUUID();
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("EnvironmentIndicator": )";
|
||||
builder << +writer.environmentIndicator();
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("Credentials": )";
|
||||
builder << '"' <<
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(74);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(544);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(132);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(514);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(17);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(513);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(409);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(535);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(409);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(536);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(133);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(515);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(96);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(516);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(130);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(562);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(79);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(529);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(68);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(530);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(62);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(533);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -34,7 +34,7 @@ public:
|
||||
Limit = static_cast<char>(50),
|
||||
StopLimit = static_cast<char>(52),
|
||||
MarketWithLeftoverAsLimit = static_cast<char>(75),
|
||||
NULL_VALUE = static_cast<char>(48)
|
||||
NULL_VALUE = static_cast<char>(0)
|
||||
};
|
||||
|
||||
static OrderType::Value get(const char value)
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
case static_cast<char>(50): return Limit;
|
||||
case static_cast<char>(52): return StopLimit;
|
||||
case static_cast<char>(75): return MarketWithLeftoverAsLimit;
|
||||
case static_cast<char>(48): return NULL_VALUE;
|
||||
case static_cast<char>(0): return NULL_VALUE;
|
||||
}
|
||||
|
||||
throw std::runtime_error("unknown value for enum OrderType [E103]");
|
||||
|
||||
@@ -194,7 +194,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *mantissaMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
|
||||
@@ -194,7 +194,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *mantissaMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(147);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(518);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(159);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(519);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(93);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(538);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(20);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(537);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(61);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(528);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -165,10 +167,10 @@ private:
|
||||
}
|
||||
|
||||
public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(368);
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(370);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(563);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -222,7 +224,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeBlockLength() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(368);
|
||||
return static_cast<std::uint16_t>(370);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t sbeBlockAndHeaderLength() SBE_NOEXCEPT
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
@@ -2934,6 +2936,152 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *CxlLinkedSessionsMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t cxlLinkedSessionsId() SBE_NOEXCEPT
|
||||
{
|
||||
return 39033;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t cxlLinkedSessionsSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool cxlLinkedSessionsInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= cxlLinkedSessionsSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t cxlLinkedSessionsEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 368;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t cxlLinkedSessionsEncodingLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::uint8_t cxlLinkedSessionsRaw() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return static_cast<std::uint8_t>(255);
|
||||
}
|
||||
|
||||
std::uint8_t val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 368, sizeof(std::uint8_t));
|
||||
return (val);
|
||||
}
|
||||
|
||||
SBE_NODISCARD BooleanNULL::Value cxlLinkedSessions() const
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return BooleanNULL::NULL_VALUE;
|
||||
}
|
||||
|
||||
std::uint8_t val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 368, sizeof(std::uint8_t));
|
||||
return BooleanNULL::get((val));
|
||||
}
|
||||
|
||||
QuoteCancelAck563 &cxlLinkedSessions(const BooleanNULL::Value value) SBE_NOEXCEPT
|
||||
{
|
||||
std::uint8_t val = (value);
|
||||
std::memcpy(m_buffer + m_offset + 368, &val, sizeof(std::uint8_t));
|
||||
return *this;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static const char *QuoteEntryControlMetaAttribute(const MetaAttribute metaAttribute) SBE_NOEXCEPT
|
||||
{
|
||||
switch (metaAttribute)
|
||||
{
|
||||
case MetaAttribute::SEMANTIC_TYPE: return "int";
|
||||
case MetaAttribute::PRESENCE: return "required";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
static SBE_CONSTEXPR std::uint16_t quoteEntryControlId() SBE_NOEXCEPT
|
||||
{
|
||||
return 39034;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint64_t quoteEntryControlSinceVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
SBE_NODISCARD bool quoteEntryControlInActingVersion() SBE_NOEXCEPT
|
||||
{
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wtautological-compare"
|
||||
#endif
|
||||
return m_actingVersion >= quoteEntryControlSinceVersion();
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t quoteEntryControlEncodingOffset() SBE_NOEXCEPT
|
||||
{
|
||||
return 369;
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::size_t quoteEntryControlEncodingLength() SBE_NOEXCEPT
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
SBE_NODISCARD std::uint8_t quoteEntryControlRaw() const SBE_NOEXCEPT
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return static_cast<std::uint8_t>(255);
|
||||
}
|
||||
|
||||
std::uint8_t val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 369, sizeof(std::uint8_t));
|
||||
return (val);
|
||||
}
|
||||
|
||||
SBE_NODISCARD BooleanNULL::Value quoteEntryControl() const
|
||||
{
|
||||
if (m_actingVersion < 9)
|
||||
{
|
||||
return BooleanNULL::NULL_VALUE;
|
||||
}
|
||||
|
||||
std::uint8_t val;
|
||||
std::memcpy(&val, m_buffer + m_offset + 369, sizeof(std::uint8_t));
|
||||
return BooleanNULL::get((val));
|
||||
}
|
||||
|
||||
QuoteCancelAck563 "eEntryControl(const BooleanNULL::Value value) SBE_NOEXCEPT
|
||||
{
|
||||
std::uint8_t val = (value);
|
||||
std::memcpy(m_buffer + m_offset + 369, &val, sizeof(std::uint8_t));
|
||||
return *this;
|
||||
}
|
||||
|
||||
class NoQuoteEntries
|
||||
{
|
||||
private:
|
||||
@@ -3868,6 +4016,14 @@ friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
builder << R"("QuoteEntryOpen": )";
|
||||
builder << '"' << writer.quoteEntryOpen() << '"';
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("CxlLinkedSessions": )";
|
||||
builder << '"' << writer.cxlLinkedSessions() << '"';
|
||||
|
||||
builder << ", ";
|
||||
builder << R"("QuoteEntryControl": )";
|
||||
builder << '"' << writer.quoteEntryControl() << '"';
|
||||
|
||||
builder << ", ";
|
||||
{
|
||||
bool atLeastOne = false;
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -9,3 +9,6 @@ Download sbe-all-[version].jar from sbe-logic github releases.
|
||||
|
||||
docker run --rm -it -w /work -v $PWD:/work eclipse-temurin:17-jdk-jammy java -Dsbe.output.dir=/work -Dsbe.generate.ir="false" -Dsbe.target.language=cpp -jar sbe-all-1.27.0.jar ilinkbinary.xml
|
||||
|
||||
Then normalize generated charNULL enums:
|
||||
|
||||
python3 ./fix_char_null_enums.py
|
||||
File diff suppressed because it is too large.
Load diff
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(55);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(543);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(358);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(546);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(31);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(509);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(75);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(510);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(30);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(508);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
{
|
||||
CancelNewest = static_cast<char>(78),
|
||||
CancelOldest = static_cast<char>(79),
|
||||
NULL_VALUE = static_cast<char>(0x00)
|
||||
NULL_VALUE = static_cast<char>(0)
|
||||
};
|
||||
|
||||
static SMPI::Value get(const char value)
|
||||
@@ -41,7 +41,7 @@ public:
|
||||
{
|
||||
case static_cast<char>(78): return CancelNewest;
|
||||
case static_cast<char>(79): return CancelOldest;
|
||||
case static_cast<char>(0x00): return NULL_VALUE;
|
||||
case static_cast<char>(0): return NULL_VALUE;
|
||||
}
|
||||
|
||||
throw std::runtime_error("unknown value for enum SMPI [E103]");
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(72);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(560);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(430);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(561);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(14);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(506);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
/* Generated SBE (Simple Binary Encoding) message codec */
|
||||
#ifndef _ILINKBINARY_SIDE_H_
|
||||
#define _ILINKBINARY_SIDE_H_
|
||||
|
||||
#if !defined(__STDC_LIMIT_MACROS)
|
||||
# define __STDC_LIMIT_MACROS 1
|
||||
#endif
|
||||
|
||||
#include <cstdint>
|
||||
#include <iomanip>
|
||||
#include <limits>
|
||||
#include <ostream>
|
||||
#include <stdexcept>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
#define SBE_NULLVALUE_INT8 (std::numeric_limits<std::int8_t>::min)()
|
||||
#define SBE_NULLVALUE_INT16 (std::numeric_limits<std::int16_t>::min)()
|
||||
#define SBE_NULLVALUE_INT32 (std::numeric_limits<std::int32_t>::min)()
|
||||
#define SBE_NULLVALUE_INT64 (std::numeric_limits<std::int64_t>::min)()
|
||||
#define SBE_NULLVALUE_UINT8 (std::numeric_limits<std::uint8_t>::max)()
|
||||
#define SBE_NULLVALUE_UINT16 (std::numeric_limits<std::uint16_t>::max)()
|
||||
#define SBE_NULLVALUE_UINT32 (std::numeric_limits<std::uint32_t>::max)()
|
||||
#define SBE_NULLVALUE_UINT64 (std::numeric_limits<std::uint64_t>::max)()
|
||||
|
||||
namespace iLinkBinary {
|
||||
|
||||
class Side
|
||||
{
|
||||
public:
|
||||
enum Value
|
||||
{
|
||||
Buy = static_cast<std::uint8_t>(1),
|
||||
Sell = static_cast<std::uint8_t>(2),
|
||||
NULL_VALUE = static_cast<std::uint8_t>(255)
|
||||
};
|
||||
|
||||
static Side::Value get(const std::uint8_t value)
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case static_cast<std::uint8_t>(1): return Buy;
|
||||
case static_cast<std::uint8_t>(2): return Sell;
|
||||
case static_cast<std::uint8_t>(255): return NULL_VALUE;
|
||||
}
|
||||
|
||||
throw std::runtime_error("unknown value for enum Side [E103]");
|
||||
}
|
||||
|
||||
static const char *c_str(const Side::Value value)
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case Buy: return "Buy";
|
||||
case Sell: return "Sell";
|
||||
case NULL_VALUE: return "NULL_VALUE";
|
||||
}
|
||||
|
||||
throw std::runtime_error("unknown value for enum Side [E103]:");
|
||||
}
|
||||
|
||||
template<typename CharT, typename Traits>
|
||||
friend std::basic_ostream<CharT, Traits> & operator << (
|
||||
std::basic_ostream<CharT, Traits> &os, Side::Value m)
|
||||
{
|
||||
return os << Side::c_str(m);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -127,7 +127,9 @@
|
||||
#include "QuoteAckStatus.h"
|
||||
#include "ExpCycle.h"
|
||||
#include "MassCancelTIF.h"
|
||||
#include "Side.h"
|
||||
#include "OrderStatus.h"
|
||||
#include "CrossTypeEnum.h"
|
||||
#include "ShortSaleType.h"
|
||||
#include "PartyDetailRole.h"
|
||||
#include "MassActionScope.h"
|
||||
@@ -168,7 +170,7 @@ public:
|
||||
static const std::uint16_t SBE_BLOCK_LENGTH = static_cast<std::uint16_t>(67);
|
||||
static const std::uint16_t SBE_TEMPLATE_ID = static_cast<std::uint16_t>(507);
|
||||
static const std::uint16_t SBE_SCHEMA_ID = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(8);
|
||||
static const std::uint16_t SBE_SCHEMA_VERSION = static_cast<std::uint16_t>(9);
|
||||
|
||||
enum MetaAttribute
|
||||
{
|
||||
@@ -242,7 +244,7 @@ public:
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR std::uint16_t sbeSchemaVersion() SBE_NOEXCEPT
|
||||
{
|
||||
return static_cast<std::uint16_t>(8);
|
||||
return static_cast<std::uint16_t>(9);
|
||||
}
|
||||
|
||||
SBE_NODISCARD static SBE_CONSTEXPR const char *sbeSemanticType() SBE_NOEXCEPT
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
import sys
|
||||
import xml.etree.ElementTree as ET
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def char_null_enum_names(xml_path: Path) -> set[str]:
|
||||
root = ET.parse(xml_path).getroot()
|
||||
return {
|
||||
enum.attrib["name"]
|
||||
for enum in root.findall(".//enum")
|
||||
if enum.attrib.get("encodingType") == "charNULL"
|
||||
}
|
||||
|
||||
|
||||
def patch_enum_header(header_path: Path) -> bool:
|
||||
original = header_path.read_text()
|
||||
patched = original
|
||||
patched = patched.replace(
|
||||
"NULL_VALUE = static_cast<char>(48)",
|
||||
"NULL_VALUE = static_cast<char>(0)",
|
||||
)
|
||||
patched = patched.replace(
|
||||
"case static_cast<char>(48): return NULL_VALUE;",
|
||||
"case static_cast<char>(0): return NULL_VALUE;",
|
||||
)
|
||||
if patched != original:
|
||||
header_path.write_text(patched)
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def main() -> int:
|
||||
base_dir = Path(__file__).resolve().parent
|
||||
xml_path = base_dir / "ilinkbinary.xml"
|
||||
if not xml_path.exists():
|
||||
print(f"Missing schema file: {xml_path}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
changed = []
|
||||
for enum_name in sorted(char_null_enum_names(xml_path)):
|
||||
header_path = base_dir / f"{enum_name}.h"
|
||||
if not header_path.exists():
|
||||
print(f"Missing enum header: {header_path}", file=sys.stderr)
|
||||
return 1
|
||||
if patch_enum_header(header_path):
|
||||
changed.append(header_path.name)
|
||||
|
||||
if changed:
|
||||
print("Patched charNULL enum headers:")
|
||||
for name in changed:
|
||||
print(f" {name}")
|
||||
else:
|
||||
print("No charNULL enum header changes were needed.")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
@@ -1,7 +1,9 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# download xml
|
||||
# sftp cmeconfig@sftpng.cmegroup.com:MSGW/NRCert/Templates/ilinkbinary.xml
|
||||
# password: G3t(0nnect3d
|
||||
# docker run --rm -it -w /work -v $PWD:/work java java -Dsbe.output.dir=/work -Dsbe.generate.ir="false" -Dsbe.target.language=cpp -jar sbe-all-1.27.0.jar ilinkbinary.xml
|
||||
docker run --rm -it -w /work -v $PWD:/work eclipse-temurin:17-jdk-jammy java -Dsbe.output.dir=/work -Dsbe.generate.ir="false" -Dsbe.target.language=cpp -jar sbe-all-1.27.0.jar ilinkbinary.xml
|
||||
python3 ./fix_char_null_enums.py
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<ns2:messageSchema xmlns:ns2="http://www.fixprotocol.org/ns/simple/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" package="iLinkBinary" id="8" version="8" semanticVersion="FIX5.0" description="20220502" byteOrder="littleEndian" xsi:schemaLocation="http://www.fixtradingcommunity.org/pg/file/fplpo/read/1196759/simple-binary-encoding-rc2xsd SimpleBinary-RC2.xsd">
|
||||
<ns2:messageSchema xmlns:ns2="http://www.fixprotocol.org/ns/simple/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" package="iLinkBinary" id="8" version="9" semanticVersion="FIX5.0" description="20251104" byteOrder="littleEndian" xsi:schemaLocation="http://www.fixtradingcommunity.org/pg/file/fplpo/read/1196759/simple-binary-encoding-rc2xsd SimpleBinary-RC2.xsd">
|
||||
<types>
|
||||
<type name="CHAR" description="char" primitiveType="char"/>
|
||||
<type name="ClientFlowType" description="ClientFlowType" presence="constant" length="10" primitiveType="char" semanticType="String">IDEMPOTENT</type>
|
||||
@@ -35,6 +35,9 @@
|
||||
<type name="OrdStatusRej" description="Order Status Reject" presence="constant" length="1" primitiveType="char" semanticType="char">8</type>
|
||||
<type name="PartyIDSource" description="PartyIDSource" presence="constant" length="1" primitiveType="char" semanticType="char">C</type>
|
||||
<type name="PendModStatus" description="Pending Replace Status" presence="constant" length="1" primitiveType="char" sinceVersion="6" semanticType="char">E</type>
|
||||
<type name="QuoteCxTypeByGroup" description="Quote Cancel by a list of Security Groups" presence="constant" primitiveType="uint8" sinceVersion="9" semanticType="int">3</type>
|
||||
<type name="QuoteCxTypeByInstr" description="Quote Cancel Type by Instrument" presence="constant" length="1" primitiveType="uint8" sinceVersion="9" semanticType="int">1</type>
|
||||
<type name="QuoteCxTypeBySet" description="Quote Cancel Type by Set" presence="constant" primitiveType="uint8" sinceVersion="9" semanticType="int">100</type>
|
||||
<type name="SecurityIDSource" description="SecurityIDSource" presence="constant" length="1" primitiveType="char" semanticType="char">8</type>
|
||||
<type name="SecurityReqType" description="Security request type for UDS creation" presence="constant" length="1" primitiveType="char" semanticType="char">1</type>
|
||||
<type name="String10Req" description="String with length of 10 required" length="10" primitiveType="char" semanticType="String"/>
|
||||
@@ -52,6 +55,7 @@
|
||||
<type name="String48" description="String with length 48" presence="optional" length="48" primitiveType="char" semanticType="String"/>
|
||||
<type name="String5" description="Optional string with length of 5" presence="optional" length="5" primitiveType="char" semanticType="String"/>
|
||||
<type name="String5Req" description="String with length of 5 required" length="5" primitiveType="char" semanticType="String"/>
|
||||
<type name="String60" description="String with length of 60" presence="optional" length="60" primitiveType="char" sinceVersion="9" semanticType="String"/>
|
||||
<type name="String75" description="String with length of 75" presence="optional" length="75" primitiveType="char" semanticType="String"/>
|
||||
<type name="String8" description="String field length 8" presence="optional" length="8" primitiveType="char" semanticType="String"/>
|
||||
<type name="String8Req" description="String with length of 8 required" length="8" primitiveType="char" semanticType="String"/>
|
||||
@@ -129,6 +133,11 @@
|
||||
<validValue name="GiveUp" description="Give Up">G</validValue>
|
||||
<validValue name="SGXoffset" description="SGX offset">S</validValue>
|
||||
</enum>
|
||||
<enum name="CrossTypeEnum" encodingType="uInt8" sinceVersion="9">
|
||||
<validValue name="Cross" description="Default product configuration">3</validValue>
|
||||
<validValue name="RCross" description="RFQ + RFC Cross">20</validValue>
|
||||
<validValue name="CCross" description="Committed Cross">21</validValue>
|
||||
</enum>
|
||||
<enum name="CustOrdHandlInst" encodingType="charNULL">
|
||||
<validValue name="FCMprovidedscreen" description="FCM provided screen">C</validValue>
|
||||
<validValue name="Otherprovidedscreen" description="Other provided screen">D</validValue>
|
||||
@@ -341,6 +350,10 @@
|
||||
<validValue name="ShortSaleWithExemptionSSEX" description="Short Sale With Exemption SSEX">2</validValue>
|
||||
<validValue name="UndisclosedSellInformationNotAvailableUNDI" description="Undisclosed Sell Information Not Available UNDI">3</validValue>
|
||||
</enum>
|
||||
<enum name="Side" encodingType="uInt8" sinceVersion="9">
|
||||
<validValue name="Buy" description="Buy">1</validValue>
|
||||
<validValue name="Sell" description="Sell">2</validValue>
|
||||
</enum>
|
||||
<enum name="SideNULL" encodingType="enumNULL">
|
||||
<validValue name="Buy" description="Buy">1</validValue>
|
||||
<validValue name="Sell" description="Sell">2</validValue>
|
||||
@@ -395,7 +408,7 @@
|
||||
<field name="Firm" id="39007" type="String5Req" description="Firm ID" offset="71" semanticType="String"/>
|
||||
<data name="Credentials" id="39008" type="DATA" description="Not used and will be set to 0" semanticType="data"/>
|
||||
</ns2:message>
|
||||
<ns2:message name="NegotiationResponse501" id="501" description="NegotiationResponse" blockLength="32" semanticType="NegotiationResponse">
|
||||
<ns2:message name="NegotiationResponse501" id="501" description="NegotiationResponse" blockLength="33" semanticType="NegotiationResponse">
|
||||
<field name="ServerFlow" id="39009" type="ExchFlowTyp" description="Constant value representing type of flow from CME to customer" semanticType="String"/>
|
||||
<field name="UUID" id="39001" type="uInt64" description="Matches Negotiate.UUID" offset="0" semanticType="int"/>
|
||||
<field name="RequestTimestamp" id="39002" type="uInt64" description="Matches Negotiate.RequestTimestamp" offset="8" semanticType="int"/>
|
||||
@@ -404,15 +417,17 @@
|
||||
<field name="SplitMsg" id="9553" type="SplitMsg" description="Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a message was delayed as a result of TCP re-transmission (1) or if a complete message was delayed due to a previously submitted split or out of order message (2). If absent then the message was not delayed and was neither split nor received out of order" offset="19" semanticType="int"/>
|
||||
<field name="PreviousSeqNo" id="39021" type="uInt32" description="Refers to the SeqNum sent in the previous message before this one from CME" offset="20" semanticType="int"/>
|
||||
<field name="PreviousUUID" id="39015" type="uInt64" description="Refers to the UUID sent in the previous message before this one from CME" offset="24" semanticType="int"/>
|
||||
<field name="EnvironmentIndicator" id="39032" type="uInt8NULL" description="Provides customers with the information of the type of environment they are connecting to" offset="32" sinceVersion="9" semanticType="int"/>
|
||||
<data name="Credentials" id="39008" type="DATA" description="Not used and will be set to 0." semanticType="data"/>
|
||||
</ns2:message>
|
||||
<ns2:message name="NegotiationReject502" id="502" description="NegotiationReject" blockLength="68" semanticType="NegotiationReject">
|
||||
<ns2:message name="NegotiationReject502" id="502" description="NegotiationReject" blockLength="69" semanticType="NegotiationReject">
|
||||
<field name="Reason" id="39011" type="String48" description="Reject reason details" offset="0" semanticType="String"/>
|
||||
<field name="UUID" id="39001" type="uInt64" description="Matches Negotiate.UUID" offset="48" semanticType="int"/>
|
||||
<field name="RequestTimestamp" id="39002" type="uInt64" description="Matches Negotiate.RequestTimestamp" offset="56" semanticType="int"/>
|
||||
<field name="ErrorCodes" id="39012" type="uInt16" description="Error code for reject reason" offset="64" semanticType="int"/>
|
||||
<field name="FaultToleranceIndicator" id="39010" type="FTI" description="Indicates whether the connection is primary or backup" offset="66" semanticType="int"/>
|
||||
<field name="SplitMsg" id="9553" type="SplitMsg" description="Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a message was delayed as a result of TCP re-transmission (1) or if a complete message was delayed due to a previously submitted split or out of order message (2). If absent then the message was not delayed and was neither split nor received out of order" offset="67" semanticType="int"/>
|
||||
<field name="EnvironmentIndicator" id="39032" type="uInt8NULL" description="Provides customers with the information of the type of environment they are connecting to" offset="68" sinceVersion="9" semanticType="int"/>
|
||||
</ns2:message>
|
||||
<ns2:message name="Establish503" id="503" description="Establish" blockLength="132" semanticType="Establish">
|
||||
<field name="HMACVersion" id="39003" type="HMACVersion" description="Constant value representing CME HMAC version" semanticType="String"/>
|
||||
@@ -429,7 +444,7 @@
|
||||
<field name="KeepAliveInterval" id="39014" type="uInt16" description="The longest time in milliseconds the customer or CME could remain silent before sending a keep alive message" offset="130" semanticType="int"/>
|
||||
<data name="Credentials" id="39008" type="DATA" description="Not used and will be set to 0" semanticType="data"/>
|
||||
</ns2:message>
|
||||
<ns2:message name="EstablishmentAck504" id="504" description="EstablishmentAck" blockLength="38" semanticType="EstablishmentAck">
|
||||
<ns2:message name="EstablishmentAck504" id="504" description="EstablishmentAck" blockLength="39" semanticType="EstablishmentAck">
|
||||
<field name="UUID" id="39001" type="uInt64" description="Matches Establish.UUID" offset="0" semanticType="int"/>
|
||||
<field name="RequestTimestamp" id="39002" type="uInt64" description="Matches Establish.RequestTimestamp" offset="8" semanticType="int"/>
|
||||
<field name="NextSeqNo" id="39013" type="uInt32" description="Next expected message sequence number" offset="16" semanticType="int"/>
|
||||
@@ -439,8 +454,9 @@
|
||||
<field name="SecretKeySecureIDExpiration" id="39022" type="uInt16NULL" description="This indicates in how many days the HMAC secret key will expire" offset="34" semanticType="int"/>
|
||||
<field name="FaultToleranceIndicator" id="39010" type="FTI" description="Indicates whether the connection is primary or backup" offset="36" semanticType="int"/>
|
||||
<field name="SplitMsg" id="9553" type="SplitMsg" description="Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a message was delayed as a result of TCP re-transmission (1) or if a complete message was delayed due to a previously submitted split or out of order message (2). If absent then the message was not delayed and was neither split nor received out of order" offset="37" semanticType="int"/>
|
||||
<field name="EnvironmentIndicator" id="39032" type="uInt8NULL" description="Provides customers with the information of the type of environment they are connecting to" offset="38" sinceVersion="9" semanticType="int"/>
|
||||
</ns2:message>
|
||||
<ns2:message name="EstablishmentReject505" id="505" description="EstablishmentReject" blockLength="72" semanticType="EstablishmentReject">
|
||||
<ns2:message name="EstablishmentReject505" id="505" description="EstablishmentReject" blockLength="73" semanticType="EstablishmentReject">
|
||||
<field name="Reason" id="39011" type="String48" description="Reject reason details" offset="0" semanticType="String"/>
|
||||
<field name="UUID" id="39001" type="uInt64" description="Matches Establish.UUID" offset="48" semanticType="int"/>
|
||||
<field name="RequestTimestamp" id="39002" type="uInt64" description="Matches Establish.RequestTimestamp" offset="56" semanticType="int"/>
|
||||
@@ -448,6 +464,7 @@
|
||||
<field name="ErrorCodes" id="39012" type="uInt16" description="Error code for reject reason" offset="68" semanticType="int"/>
|
||||
<field name="FaultToleranceIndicator" id="39010" type="FTI" description="Indicates whether the connection is primary or backup" offset="70" semanticType="int"/>
|
||||
<field name="SplitMsg" id="9553" type="SplitMsg" description="Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a message was delayed as a result of TCP re-transmission (1) or if a complete message was delayed due to a previously submitted split or out of order message (2). If absent then the message was not delayed and was neither split nor received out of order" offset="71" semanticType="int"/>
|
||||
<field name="EnvironmentIndicator" id="39032" type="uInt8NULL" description="Provides customers with the information of the type of environment they are connecting to" offset="72" sinceVersion="9" semanticType="int"/>
|
||||
</ns2:message>
|
||||
<ns2:message name="Sequence506" id="506" description="Sequence" blockLength="14" semanticType="Sequence">
|
||||
<field name="UUID" id="39001" type="uInt64" description="Matches Establish.UUID used to establish the connection" offset="0" semanticType="int"/>
|
||||
@@ -556,7 +573,7 @@
|
||||
<field name="OrderRequestID" id="2422" type="uInt64" description="Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on the ExecutionReport representing the response" offset="61" semanticType="int"/>
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. 64-bit integer expressing the number of nano seconds since midnight January 1, 1970." offset="69" semanticType="int"/>
|
||||
<field name="Location" id="9537" type="String5Req" description="Text describing sender's location (i.e. geopraphic location and/or desk)" offset="77" semanticType="String"/>
|
||||
<field name="SecurityID" id="48" type="Int32" description="Security ID as defined by CME. For the security ID list, see the security definition messages. Falcon ignores the incoming value except when null and returns back the correct one in the outgoing execution report." offset="82" semanticType="int"/>
|
||||
<field name="SecurityID" id="48" type="Int32" description="Security ID as defined by CME. For the security ID list, see the security definition messages" offset="82" semanticType="int"/>
|
||||
<field name="Side" id="54" type="SideReq" description="Side of order." offset="86" semanticType="int"/>
|
||||
<field name="LiquidityFlag" id="9373" type="BooleanNULL" description="Field added to capture if an order was submitted for market making obligation or not. Applicable only for EU BrokerTec and EBS MiFID regulated instruments" offset="87" semanticType="int"/>
|
||||
<field name="OrigOrderUser" id="9937" type="String8" description="Represents the original sender comp for whom orders or quotes are to be cancelled" offset="88" sinceVersion="8" semanticType="String"/>
|
||||
@@ -570,7 +587,7 @@
|
||||
<field name="QuoteReqID" id="131" type="uInt64NULL" description="Unique identifier for quote request being responded to" offset="41" semanticType="int"/>
|
||||
<field name="Location" id="9537" type="String5Req" description="Text describing sender's location (i.e. geopraphic location and/or desk)" offset="49" semanticType="String"/>
|
||||
<field name="QuoteID" id="117" type="uInt32" description="Unique identifier for mass quote populated by the client system" offset="54" semanticType="int"/>
|
||||
<field name="TotNoQuoteEntries" id="304" type="uInt8" description="Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries in each message that has repeating quotes that are part of the same quote set. Required if NoQuoteEntries > 0. Since fragmentation is not supported in practice this will always be equal to the value of NoQuoteEntries" offset="58" semanticType="int"/>
|
||||
<field name="TotNoQuoteEntries" id="304" type="uInt8" description="Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries in each message that has repeating quotes that are part of the same quote set. Required if NoQuoteEntries is not 0. Since fragmentation is not supported in practice this will always be equal to the value of NoQuoteEntries" offset="58" semanticType="int"/>
|
||||
<field name="MMProtectionReset" id="9773" type="BooleanFlag" description="When market maker protection is triggered CME will not accept any new quotes from the market maker for that product group until it receives a mass quote message with the MMProtectionReset flag set to true" offset="59" semanticType="int"/>
|
||||
<field name="LiquidityFlag" id="9373" type="BooleanNULL" description="Field added to capture if an order was submitted for market making obligation or not. Applicable only for EU BrokerTec and EBS MiFID regulated instruments" offset="60" semanticType="int"/>
|
||||
<field name="ShortSaleType" id="5409" type="ShortSaleType" description="Indicates the type of short sale. Will not be used for Buy orders but Sell orders should have this tag populated for MiFID" offset="61" semanticType="int"/>
|
||||
@@ -591,7 +608,7 @@
|
||||
<ns2:message name="PartyDetailsDefinitionRequest518" id="518" description="PartyDetailsDefinitionRequest" blockLength="147" semanticType="CX">
|
||||
<field name="PartyDetailsListReqID" id="1505" type="uInt64" description="The unique identifier of the PartyDetailsDefinitionRequest(35=CX) message. For use with short messages and registering party details through iLink this ID should be unique. For use with long messages this ID should be set to FFFFFFFF" offset="0" semanticType="int"/>
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. 64-bit integer expressing the number of nano seconds since midnight January 1, 1970." offset="8" semanticType="int"/>
|
||||
<field name="ListUpdateAction" id="1324" type="ListUpdAct" description="Indicates if all of the information sent in this message with a unique new PartyDetailsListRequestID is a new addition or deletion of existing information associated with an existing PartyDetailsListRequestID. For PartyDetailsListRequestID=FFFFFFFF this should always be set to "A"" offset="16" semanticType="char"/>
|
||||
<field name="ListUpdateAction" id="1324" type="ListUpdAct" description="Indicates if all of the information sent in this message with a unique new PartyDetailsListRequestID is a new addition or deletion of existing information associated with an existing PartyDetailsListRequestID. For PartyDetailsListRequestID=FFFFFFFF this should always be set to A" offset="16" semanticType="char"/>
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="17" semanticType="int"/>
|
||||
<field name="Memo" id="5149" type="String75" description="This general purpose text field could be mapped from iLink to Clearing STP for trades. Not available for use with the short format where PartyDetailsListRequestID not equal to FFFFFFFF. Available for use only with the long format where PartyDetailsListRequestID=FFFFFFFF" offset="21" semanticType="String"/>
|
||||
<field name="AvgPxGroupID" id="1731" type="String20" description="Used by submitting firm to group trades being allocated into an average price group. The trades in average price group will be used to calculate an average price for the group" offset="96" semanticType="String"/>
|
||||
@@ -607,11 +624,11 @@
|
||||
<field name="IDMShortCode" id="36023" type="uInt64NULL" description="Represents the Investment Decision Maker Short Code. Applicable for EU fixed income markets only" offset="139" semanticType="int"/>
|
||||
<field name="NoPartyUpdates" id="1676" type="NoPtyUpd" description="Number of party updates. Constant value of 1" semanticType="int"/>
|
||||
<group name="NoPartyDetails" id="1671" description="Number of party details. More than one occurrence of the same party role is not allowed and will be rejected" blockLength="22" dimensionType="groupSize">
|
||||
<field name="PartyDetailID" id="1691" type="String20Req" description="The identification of the party. Required when NoPartyDetails(1671) > 0" offset="0" semanticType="String"/>
|
||||
<field name="PartyDetailIDSource" id="1692" type="PartyIDSource" description="Used to identify source of PartyDetailID value. Required when NoPartyDetails(1671) greater than 0. Constant value of C" semanticType="char"/>
|
||||
<field name="PartyDetailRole" id="1693" type="PartyDetailRole" description="Identifies the type of PartyDetailID. Required when NoPartyDetails(1671) > 0" offset="20" semanticType="int"/>
|
||||
<field name="PartyDetailID" id="1691" type="String20Req" description="The identification of the party. Required when NoPartyDetails, tag 1671 is not 0" offset="0" semanticType="String"/>
|
||||
<field name="PartyDetailIDSource" id="1692" type="PartyIDSource" description="Used to identify source of PartyDetailID value. Required when NoPartyDetails 1671 is greater than 0. Constant value of C" semanticType="char"/>
|
||||
<field name="PartyDetailRole" id="1693" type="PartyDetailRole" description="Identifies the type of PartyDetailID. Required when NoPartyDetails is not 0" offset="20" semanticType="int"/>
|
||||
</group>
|
||||
<group name="NoTrdRegPublications" id="2668" description="Number of regulatory publication rules in repeating group. Should always be "1" if being used otherwise set to 0" blockLength="2" sinceVersion="2" dimensionType="groupSize">
|
||||
<group name="NoTrdRegPublications" id="2668" description="Number of regulatory publication rules in repeating group. Should always be set to 1 if being used otherwise set to 0" blockLength="2" sinceVersion="2" dimensionType="groupSize">
|
||||
<field name="TrdRegPublicationType" id="2669" type="uInt8" description="Specifies the type of regulatory trade publication. Additional reasons for the publication type will be specified in TrdRegPublicationReason (2670). 2=Exempt from Publication. There are allowable exemptions for the post-trade publication of trade transactions" offset="0" semanticType="int"/>
|
||||
<field name="TrdRegPublicationReason" id="2670" type="uInt8" description="Additional reason for trade publication type specified in TrdRegPublicationType (2669). Reasons may be specific to regulatory trade publication rules. 12=Exempted due to European System of Central Banks (ESCB) policy transaction" offset="1" semanticType="int"/>
|
||||
</group>
|
||||
@@ -623,7 +640,7 @@
|
||||
<field name="AvgPxGroupID" id="1731" type="String20" description="Used by submitting firm to group trades being allocated into an average price group. The trades in average price group will be used to calculate an average price for the group" offset="87" semanticType="String"/>
|
||||
<field name="PartyDetailsListReqID" id="1505" type="uInt64" description="The unique identifier of the PartyDetailsDefinitionRequest(35=CX) message. For use with short messages and registering party details through iLink this ID should be unique. For use with long messages this ID should be set to FFFFFFFF" offset="107" semanticType="int"/>
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. 64-bit integer expressing the number of nano seconds since midnight January 1, 1970." offset="115" semanticType="int"/>
|
||||
<field name="SelfMatchPreventionID" id="2362" type="uInt64NULL" description="Used by the Falcon engine to prevent orders from the same firm matching with each other. Each message sent with this tag and the same matching value will be eligible for Self-Match Prevention." offset="123" semanticType="int"/>
|
||||
<field name="SelfMatchPreventionID" id="2362" type="uInt64NULL" description="Used to prevent orders from the same firm matching with each other. Each message sent with this tag and the same matching value will be eligible for Self-Match Prevention." offset="123" semanticType="int"/>
|
||||
<field name="PartyDetailRequestStatus" id="1878" type="uInt8" description="Status of party details definition request" offset="131" semanticType="int"/>
|
||||
<field name="CustOrderCapacity" id="582" type="CustOrderCapacity" description="Capacity of customer placing the order. Used by futures exchanges to indicate the CTICode (customer type indicator) as required by the US CFTC (Commodity Futures Trading Commission)" offset="132" semanticType="int"/>
|
||||
<field name="ClearingAccountType" id="1816" type="ClearingAcctType" description="Designates the account type to be used for the order when submitted to clearing" offset="133" semanticType="int"/>
|
||||
@@ -633,18 +650,18 @@
|
||||
<field name="CmtaGiveupCD" id="9708" type="CmtaGiveUpCD" description="Indicates if the order is a give-up or SGX offset" offset="137" semanticType="char"/>
|
||||
<field name="CustOrderHandlingInst" id="1031" type="CustOrdHandlInst" description="Codes that apply special information that the Broker / Dealer needs to report, as specified by the customer. Defines source of the order " offset="138" semanticType="char"/>
|
||||
<field name="NoPartyUpdates" id="1676" type="NoPtyUpd" description="Number of party updates. Constant value of 1" semanticType="int"/>
|
||||
<field name="ListUpdateAction" id="1324" type="ListUpdAct" description="Indicates if all of the information sent in this message with a unique new PartyDetailsListRequestID is a new addition or deletion of existing information (TBD) associated with an existing PartyDetailsListRequestID. For PartyDetailsListRequestID=FFFFFFFF this should always be set to "A"" offset="139" semanticType="char"/>
|
||||
<field name="ListUpdateAction" id="1324" type="ListUpdAct" description="Indicates if all of the information sent in this message with a unique new PartyDetailsListRequestID is a new addition or deletion of existing information (TBD) associated with an existing PartyDetailsListRequestID. For PartyDetailsListRequestID=FFFFFFFF this should always be set to A" offset="139" semanticType="char"/>
|
||||
<field name="PartyDetailDefinitionStatus" id="1879" type="uInt8" description="Status of party detail definition for one party" offset="140" semanticType="int"/>
|
||||
<field name="Executor" id="5290" type="uInt64NULL" description="Will be populated with a short code for the person or algo identified in FIX tag 5392 which will be mapped to National ID or Algo at reporting time" offset="141" semanticType="int"/>
|
||||
<field name="IDMShortCode" id="36023" type="uInt64NULL" description="Represents the Investment Decision Maker Short Code" offset="149" semanticType="int"/>
|
||||
<field name="PossRetransFlag" id="9765" type="BooleanFlag" description="Flags message as possible retransmission. This will convey whether a message is an original transmission or duplicate in response to RetransmissionRequest. This will become pertinent when original messages get interleaved with Retransmission responses" offset="157" semanticType="int"/>
|
||||
<field name="SplitMsg" id="9553" type="SplitMsg" description="Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a message was delayed as a result of TCP re-transmission (1) or if a complete message was delayed due to a previously submitted split or out of order message (2). If absent then the message was not delayed and was neither split nor received out of order" offset="158" semanticType="int"/>
|
||||
<group name="NoPartyDetails" id="1671" description="Number of party details. More than one occurrence of the same party role is not allowed and will be rejected" blockLength="22" dimensionType="groupSize">
|
||||
<field name="PartyDetailID" id="1691" type="String20Req" description="The identification of the party. Required when NoPartyDetails(1671) > 0" offset="0" semanticType="String"/>
|
||||
<field name="PartyDetailIDSource" id="1692" type="PartyIDSource" description="Used to identify source of PartyDetailID value. Required when NoPartyDetails(1671) > 0. Constant value of "C"." semanticType="char"/>
|
||||
<field name="PartyDetailRole" id="1693" type="PartyDetailRole" description="Identifies the type of PartyDetailID. Required when NoPartyDetails(1671) > 0" offset="20" semanticType="int"/>
|
||||
<field name="PartyDetailID" id="1691" type="String20Req" description="The identification of the party. Required when NoPartyDetails(1671) is not set to 0" offset="0" semanticType="String"/>
|
||||
<field name="PartyDetailIDSource" id="1692" type="PartyIDSource" description="Used to identify source of PartyDetailID value. Required when NoPartyDetails(1671) is not 0. Constant value of C." semanticType="char"/>
|
||||
<field name="PartyDetailRole" id="1693" type="PartyDetailRole" description="Identifies the type of PartyDetailID. Required when NoPartyDetails(1671) is not 0" offset="20" semanticType="int"/>
|
||||
</group>
|
||||
<group name="NoTrdRegPublications" id="2668" description="Number of regulatory publication rules in repeating group. Should always be "1" if being used otherwise set to 0" blockLength="2" sinceVersion="2" dimensionType="groupSize">
|
||||
<group name="NoTrdRegPublications" id="2668" description="Number of regulatory publication rules in repeating group. Should always be 1 if being used otherwise set to 0" blockLength="2" sinceVersion="2" dimensionType="groupSize">
|
||||
<field name="TrdRegPublicationType" id="2669" type="uInt8" description="Specifies the type of regulatory trade publication. Additional reasons for the publication type will be specified in TrdRegPublicationReason (2670). 2=Exempt from Publication. There are allowable exemptions for the post-trade publication of trade transactions" offset="0" semanticType="int"/>
|
||||
<field name="TrdRegPublicationReason" id="2670" type="uInt8" description="Additional reason for trade publication type specified in TrdRegPublicationType (2669). Reasons may be specific to regulatory trade publication rules. 12=Exempted due to European System of Central Banks (ESCB) policy transaction" offset="1" semanticType="int"/>
|
||||
</group>
|
||||
@@ -836,16 +853,16 @@
|
||||
<field name="ExecRestatementReason" id="378" type="ExecReason" description="Will be present when trade at fixing is assigned fixing price" offset="245" sinceVersion="6" semanticType="int"/>
|
||||
<field name="SettlDate" id="64" type="LocalMktDate" description="Specific date of trade settlement" offset="246" sinceVersion="6" semanticType="LocalMktDate"/>
|
||||
<field name="MaturityDate" id="541" type="LocalMktDate" description="Date of maturity" offset="248" sinceVersion="6" semanticType="LocalMktDate"/>
|
||||
<field name="CalculatedCcyLastQty" id="1056" type="Decimal64NULL" description="Total amount traded (in notional) in counter currency for the Spot" offset="250" sinceVersion="6" semanticType="int"/>
|
||||
<field name="GrossTradeAmt" id="381" type="Decimal64NULL" description="Total amount traded (in notional) in base currency for the Spot" offset="259" sinceVersion="6" semanticType="int"/>
|
||||
<field name="CalculatedCcyLastQty" id="1056" type="Decimal64NULL" description="Total amount traded (in notional) in counter currency for the Spot" offset="250" sinceVersion="6" semanticType="Qty"/>
|
||||
<field name="GrossTradeAmt" id="381" type="Decimal64NULL" description="Total amount traded (in notional) in base currency for the Spot" offset="259" sinceVersion="6" semanticType="Qty"/>
|
||||
<field name="BenchmarkPrice" id="6262" type="PRICENULL9" description="The price assigned to an eFIX matched trade which is determined by an automated set market mid-price from a third party market data feed. The Fixing Price will be distributed as soon as practicable after the Fixing Time" offset="268" sinceVersion="6" semanticType="Price"/>
|
||||
<field name="ReservationPrice" id="9562" type="PRICENULL9" description="This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trade. This price must be better than the limit price and should be multiple of reservation price tick" offset="276" sinceVersion="8" semanticType="Price"/>
|
||||
<field name="PriorityIndicator" id="638" type="uInt8NULL" description="This field is being added to report whether incoming new order/cancel replace entered the book or subsequently rests on the book with either large or standard order size priority" offset="284" sinceVersion="8" semanticType="int"/>
|
||||
<field name="DisplayLimitPrice" id="9264" type="PRICENULL9" description="The price at which opposite side orders are listed on the market. Sent only in fill messages for reservation price orders" offset="285" sinceVersion="8" semanticType="Price"/>
|
||||
<group name="NoFills" id="1362" description="Specifies the number of fill reasons included in this Execution Report" blockLength="15" dimensionType="groupSize">
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills(1362) > 0. Same as LastPx(31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillQty" id="1365" type="uInt32" description="Quantity bought/sold for this fill reason" offset="8" semanticType="int"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills(1362) > 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills (1362) is not 0. Same as LastPx (31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillQty" id="1365" type="uInt32" description="Quantity bought or sold for this fill reason" offset="8" semanticType="int"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills (1362) is greater than 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillYieldType" id="1622" type="uInt8" description="Enumeration of the Fill Reason field using Integer. This identifies the type of match algorithm" offset="14" semanticType="int"/>
|
||||
</group>
|
||||
<group name="NoOrderEvents" id="1795" description="Number of fills which comprise fill quantity" blockLength="41" dimensionType="groupSize">
|
||||
@@ -855,8 +872,8 @@
|
||||
<field name="OrderEventQty" id="1800" type="uInt32" description="Refers to the specific fill quantity between this order and the opposite order " offset="17" semanticType="int"/>
|
||||
<field name="OrderEventType" id="1796" type="OrderEventType" description="The type of event affecting an order" offset="21" semanticType="int"/>
|
||||
<field name="OrderEventReason" id="1798" type="uInt8" description="Action that caused the event to ocurr. 100=Binary Trade Reporting" offset="22" semanticType="int"/>
|
||||
<field name="ContraGrossTradeAmt" id="5542" type="Decimal64NULL" description="Amount traded (in notional) in base currency for the Spot with this counterparty" offset="23" sinceVersion="6" semanticType="int"/>
|
||||
<field name="ContraCalculatedCcyLastQty" id="5971" type="Decimal64NULL" description="Amount traded (in notional) in counter currency for the Spot with this counterparty" offset="32" sinceVersion="6" semanticType="int"/>
|
||||
<field name="ContraGrossTradeAmt" id="5542" type="Decimal64NULL" description="Amount traded in notional base currency for the Spot with this counterparty" offset="23" sinceVersion="6" semanticType="Qty"/>
|
||||
<field name="ContraCalculatedCcyLastQty" id="5971" type="Decimal64NULL" description="Amount traded in notional counter currency for the Spot with this counterparty" offset="32" sinceVersion="6" semanticType="Qty"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="ExecutionReportTradeSpread526" id="526" description="ExecutionReportTradeSpread" blockLength="230" semanticType="8">
|
||||
@@ -901,9 +918,9 @@
|
||||
<field name="LiquidityFlag" id="9373" type="BooleanNULL" description="Field added to capture if an order was submitted for market making obligation or not. Applicable only for EU BrokerTec and EBS MiFID regulated instruments" offset="228" semanticType="int"/>
|
||||
<field name="ShortSaleType" id="5409" type="ShortSaleType" description="Indicates the type of short sale. Will not be used for Buy orders but Sell orders should have this tag populated for MiFID" offset="229" semanticType="int"/>
|
||||
<group name="NoFills" id="1362" description="Specifies the number of fill reasons included in this Execution Report" blockLength="15" dimensionType="groupSize">
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills(1362) > 0. Same as LastPx(31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills (1362) is greater than 0. Same as LastPx(31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillQty" id="1365" type="uInt32" description="Quantity bought/sold for this fill reason" offset="8" semanticType="int"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills(1362) > 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills(1362) is greater than 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillYieldType" id="1622" type="uInt8" description="Enumeration of the Fill Reason field using Integer. This identifies the type of match algorithm" offset="14" semanticType="int"/>
|
||||
</group>
|
||||
<group name="NoLegs" id="555" description="Number of Leg executions; Will currently be set to 0 and in future will contain the leg fills for the spread when spread leg fills are consolidated with the spread fill as a single message" blockLength="29" dimensionType="groupSize">
|
||||
@@ -952,21 +969,23 @@
|
||||
<field name="Side" id="54" type="SideReq" description="Order side" offset="197" semanticType="int"/>
|
||||
<field name="PossRetransFlag" id="9765" type="BooleanFlag" description="Flags message as possible retransmission. This will convey whether a message is an original transmission or duplicate in response to RetransmissionRequest. This will become pertinent when original messages get interleaved with Retransmission responses" offset="198" semanticType="int"/>
|
||||
<field name="SettlDate" id="64" type="LocalMktDate" description="Specific date of trade settlement for the Spot leg" offset="199" sinceVersion="6" semanticType="LocalMktDate"/>
|
||||
<field name="CalculatedCcyLastQty" id="1056" type="Decimal64NULL" description="Total amount traded (in notional) in counter currency for the Spot leg" offset="201" sinceVersion="6" semanticType="int"/>
|
||||
<field name="GrossTradeAmt" id="381" type="Decimal64NULL" description="Total amount traded (in notional) in base currency for the Spot leg" offset="210" sinceVersion="6" semanticType="int"/>
|
||||
<field name="CalculatedCcyLastQty" id="1056" type="Decimal64NULL" description="Total amount traded (in notional) in counter currency for the Spot leg" offset="201" sinceVersion="6" semanticType="Qty"/>
|
||||
<field name="GrossTradeAmt" id="381" type="Decimal64NULL" description="Total amount traded (in notional) in base currency for the Spot leg" offset="210" sinceVersion="6" semanticType="Qty"/>
|
||||
<group name="NoFills" id="1362" description="Specifies the number of fill reasons included in this Execution Report" blockLength="15" dimensionType="groupSize">
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills(1362) > 0. Same as LastPx(31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills (1362) is greater than 0. Same as LastPx(31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillQty" id="1365" type="uInt32" description="Quantity bought/sold for this fill reason" offset="8" semanticType="int"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills(1362) > 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills(1362) is greater than 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillYieldType" id="1622" type="uInt8" description="Enumeration of the Fill Reason field using Integer. This identifies the type of match algorithm" offset="14" semanticType="int"/>
|
||||
</group>
|
||||
<group name="NoOrderEvents" id="1795" description="Number of fills which comprise fill quantity" blockLength="23" dimensionType="groupSize">
|
||||
<group name="NoOrderEvents" id="1795" description="Number of fills which comprise fill quantity" blockLength="41" dimensionType="groupSize">
|
||||
<field name="OrderEventPx" id="1799" type="PRICE9" description="Refers to the fill price; same as LastPx (Tag 31) " offset="0" semanticType="Price"/>
|
||||
<field name="OrderEventText" id="1802" type="String5" description="Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for BrokerTec EU bilateral trades" offset="8" semanticType="String"/>
|
||||
<field name="OrderEventExecID" id="1797" type="uInt32" description="This is a unique ID which ties together a specific fill between two orders; It will be unique per instrument per day" offset="13" semanticType="int"/>
|
||||
<field name="OrderEventQty" id="1800" type="uInt32" description="Refers to the specific fill quantity between this order and the opposite order " offset="17" semanticType="int"/>
|
||||
<field name="OrderEventType" id="1796" type="OrderEventType" description="The type of event affecting an order" offset="21" semanticType="int"/>
|
||||
<field name="OrderEventReason" id="1798" type="uInt8" description="Action that caused the event to ocurr. 100=Binary Trade Reporting" offset="22" semanticType="int"/>
|
||||
<field name="ContraGrossTradeAmt" id="5542" type="Decimal64NULL" description="Amount traded in notional base currency for the Spot with this counterparty" offset="23" sinceVersion="9" semanticType="Qty"/>
|
||||
<field name="ContraCalculatedCcyLastQty" id="5971" type="Decimal64NULL" description="Amount traded in notional counter currency for the Spot with this counterparty" offset="32" sinceVersion="9" semanticType="Qty"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="QuoteCancel528" id="528" description="QuoteCancel" blockLength="61" semanticType="Z">
|
||||
@@ -999,15 +1018,15 @@
|
||||
<field name="SenderID" id="5392" type="String20Req" description="Operator ID. Should be unique per Firm ID. Assigned value used to identify specific message originator. Represents last individual or team in charge of the system which modifies the order before submission to the Globex platform, or if not modified from initiator (party role=118), last individual or team in charge of the system, which submit the order to the Globex platform" offset="21" semanticType="String"/>
|
||||
<field name="MassActionType" id="1373" type="MassAction" description="Specifies the type of action requested; Constant value" semanticType="char"/>
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. 64-bit integer expressing the number of nano seconds since midnight January 1, 1970." offset="41" semanticType="int"/>
|
||||
<field name="SecurityGroup" id="1151" type="StringLength6" description="Specifies the Product Group for which working orders should be cancelled. Conditionally required if MassActionScope=?Product Group? (Tag1374=10). Will be ignored if present for any other criteria specified in MassActionScope besides Product Group " offset="49" semanticType="String"/>
|
||||
<field name="SecurityGroup" id="1151" type="StringLength6" description="Specifies the Product Group for which working orders should be cancelled. Conditionally required if MassActionScope=Product Group (Tag 1374=10). Will be ignored if present for any other criteria specified in MassActionScope besides Product Group " offset="49" semanticType="String"/>
|
||||
<field name="Location" id="9537" type="String5Req" description="Text describing sender's location (i.e. geopraphic location and/or desk)" offset="55" semanticType="String"/>
|
||||
<field name="SecurityID" id="48" type="Int32NULL" description="Conditionally required if MassActionScope=?Instrument? (Tag 1374=1). Will be ignored if present for any other criteria specified in MassActionScope besides Instrument" offset="60" semanticType="int"/>
|
||||
<field name="SecurityID" id="48" type="Int32NULL" description="Conditionally required if MassActionScope=Instrument (Tag 1374=1). Will be ignored if present for any other criteria specified in MassActionScope besides Instrument" offset="60" semanticType="int"/>
|
||||
<field name="MassActionScope" id="1374" type="MassActionScope" description="Specifies the scope of the action " offset="64" semanticType="int"/>
|
||||
<field name="MarketSegmentID" id="1300" type="uInt8NULL" description="Specifies the market segment (physical match engine partition) for which working orders should be cancelled. Conditionally Required if MassActionScope=?Market Segment? (Tag 1374=9). Will be ignored if present for any other criteria specified in MassActionScope besides Market Segment" offset="65" semanticType="int"/>
|
||||
<field name="MassCancelRequestType" id="6115" type="MassCxlReqTyp" description="If present ? specifies the scope of the OrderMassActionRequest within the context of Session and Firm. If absent then all orders belonging to Session and Firm combination will be cancelled for specified MassActionScope " offset="66" semanticType="int"/>
|
||||
<field name="MarketSegmentID" id="1300" type="uInt8NULL" description="Specifies the market segment (physical match engine partition) for which working orders should be cancelled. Conditionally Required if MassActionScope=Market Segment (Tag 1374=9). Will be ignored if present for any other criteria specified in MassActionScope besides Market Segment" offset="65" semanticType="int"/>
|
||||
<field name="MassCancelRequestType" id="6115" type="MassCxlReqTyp" description="If present specifies the scope of the OrderMassActionRequest within the context of Session and Firm. If absent then all orders belonging to Session and Firm combination will be cancelled for specified MassActionScope " offset="66" semanticType="int"/>
|
||||
<field name="Side" id="54" type="SideNULL" description="If provided then only orders belonging to one side will be cancelled. If absent then orders belonging to both sides will be cancelled" offset="67" semanticType="int"/>
|
||||
<field name="OrdType" id="40" type="MassActionOrdTyp" description="If provided then only orders of this type will be cancelled. If absent then all order types will be cancelled" offset="68" semanticType="char"/>
|
||||
<field name="TimeInForce" id="59" type="MassCancelTIF" description="If provided then only orders with this qualifier will be cancelled. If absent then all Day & GT orders will be cancelled" offset="69" semanticType="int"/>
|
||||
<field name="TimeInForce" id="59" type="MassCancelTIF" description="If provided then only orders with this qualifier will be cancelled. If absent then all Day and GT orders will be cancelled" offset="69" semanticType="int"/>
|
||||
<field name="LiquidityFlag" id="9373" type="BooleanNULL" description="Field added to capture if an order was submitted for market making obligation or not. Applicable only for EU BrokerTec and EBS MiFID regulated instruments" offset="70" semanticType="int"/>
|
||||
<field name="OrigOrderUser" id="9937" type="String8" description="Represents the original sender comp for whom orders or quotes are to be cancelled" offset="71" sinceVersion="8" semanticType="String"/>
|
||||
</ns2:message>
|
||||
@@ -1018,13 +1037,13 @@
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="17" semanticType="int"/>
|
||||
<field name="SenderID" id="5392" type="String20Req" description="Operator ID. Should be unique per Firm ID. Assigned value used to identify specific message originator. Represents last individual or team in charge of the system which modifies the order before submission to the Globex platform, or if not modified from initiator (party role=118), last individual or team in charge of the system, which submit the order to the Globex platform" offset="21" semanticType="String"/>
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. 64-bit integer expressing the number of nano seconds since midnight January 1, 1970." offset="41" semanticType="int"/>
|
||||
<field name="SecurityGroup" id="1151" type="StringLength6" description="Conditionally required if OrderStatusRequestType=?Product Group? (Tag 585=3). Status for working orders belonging to this particular product group will be returned. Will be ignored if present for any other criteria specified in OrderStatusRequestType besides product group (Tag 585=3) " offset="49" semanticType="String"/>
|
||||
<field name="SecurityGroup" id="1151" type="StringLength6" description="Conditionally required if OrderStatusRequestType=Product Group (Tag 585=3). Status for working orders belonging to this particular product group will be returned. Will be ignored if present for any other criteria specified in OrderStatusRequestType besides product group (Tag 585=3) " offset="49" semanticType="String"/>
|
||||
<field name="Location" id="9537" type="String5Req" description="Text describing sender's location (i.e. geopraphic location and/or desk)" offset="55" semanticType="String"/>
|
||||
<field name="SecurityID" id="48" type="Int32NULL" description="Conditionally required if OrderStatusRequestType=?Instrument? (Tag 585=1). Status for working orders belonging to this particular instrument will be returned. Will be ignored if present for any other criteria specified in OrderStatusRequestType besides Instrument" offset="60" semanticType="int"/>
|
||||
<field name="SecurityID" id="48" type="Int32NULL" description="Conditionally required if OrderStatusRequestType=Instrument (Tag 585=1). Status for working orders belonging to this particular instrument will be returned. Will be ignored if present for any other criteria specified in OrderStatusRequestType besides Instrument" offset="60" semanticType="int"/>
|
||||
<field name="MassStatusReqType" id="585" type="MassStatusReqTyp" description="Specifies the scope of the OrderMassStatusRequest within the context of working orders only. Status will be returned for all orders matching the criteria specified here for Session and Firm" offset="64" semanticType="int"/>
|
||||
<field name="OrdStatusReqType" id="5000" type="MassStatusOrdTyp" description="If present ? specifies the scope of the OrderMassStatusRequest within the context of MassStatusRequestType (585) and Session and Firm for working orders only. Status will be returned for all orders matching the criteria specified here for Session and Firm combination" offset="65" semanticType="int"/>
|
||||
<field name="TimeInForce" id="59" type="MassStatusTIF" description="Specifies the scope of the OrderMassStatusRequest within the context of MassStatusRequestType (585) if present. Absence of this field is interpreted as Day & GTC & GTD. FAK is excluded since scope is limited to working orders only" offset="66" semanticType="int"/>
|
||||
<field name="MarketSegmentID" id="1300" type="uInt8NULL" description="Conditionally required if OrderStatusRequestType=?Market Segment? (Tag 585=100). Status for working orders belonging to this particular market segment will be returned. Will be ignored if present for any other criteria specified in OrderStatusRequestType besides market segment (Tag 585=100)" offset="67" semanticType="int"/>
|
||||
<field name="OrdStatusReqType" id="5000" type="MassStatusOrdTyp" description="If present specifies the scope of the OrderMassStatusRequest within the context of MassStatusRequestType (585) and Session and Firm for working orders only. Status will be returned for all orders matching the criteria specified here for Session and Firm combination" offset="65" semanticType="int"/>
|
||||
<field name="TimeInForce" id="59" type="MassStatusTIF" description="Specifies the scope of the OrderMassStatusRequest within the context of MassStatusRequestType (585) if present. Absence of this field is interpreted as Day, GTC and GTD. FAK is excluded since scope is limited to working orders only" offset="66" semanticType="int"/>
|
||||
<field name="MarketSegmentID" id="1300" type="uInt8NULL" description="Conditionally required if OrderStatusRequestType=Market Segment (Tag 585=100). Status for working orders belonging to this particular market segment will be returned. Will be ignored if present for any other criteria specified in OrderStatusRequestType besides market segment (Tag 585=100)" offset="67" semanticType="int"/>
|
||||
</ns2:message>
|
||||
<ns2:message name="ExecutionReportModify531" id="531" description="ExecutionReportModify" blockLength="226" semanticType="8">
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="0" semanticType="int"/>
|
||||
@@ -1220,14 +1239,14 @@
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. 64-bit integer expressing the number of nano seconds since midnight January 1, 1970." offset="8" semanticType="int"/>
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="16" semanticType="int"/>
|
||||
<group name="NoRequestingPartyIDs" id="1657" description="Number of requesting party identifiers. Will be zero if specific PartyDetailsDefinitionID's are being requested. Will be populated only if all PartyDetailsDefinitions are being requested for a specific Firm" blockLength="7" dimensionType="groupSize">
|
||||
<field name="RequestingPartyID" id="1658" type="String5" description="Party identifier for the requesting party. Required when NoRequestingPartyIDs(1657) > 0" offset="0" semanticType="String"/>
|
||||
<field name="RequestingPartyIDSource" id="1659" type="CHAR" description="Identifies the source of the RequestingPartyID(1658) value. Required when NoRequestingPartyIDs(1657) > 0. Constant value" offset="5" semanticType="char"/>
|
||||
<field name="RequestingPartyID" id="1658" type="String5" description="Party identifier for the requesting party. Required when NoRequestingPartyIDs(1657) is greater than 0" offset="0" semanticType="String"/>
|
||||
<field name="RequestingPartyIDSource" id="1659" type="CHAR" description="Identifies the source of the RequestingPartyID(1658) value. Required when NoRequestingPartyIDs(1657) is greater than 0. Constant value" offset="5" semanticType="char"/>
|
||||
<field name="RequestingPartyRole" id="1660" type="CHAR" description="Identifies the type or role of the RequestingPartyID(1658) specified. Constant value" offset="6" semanticType="char"/>
|
||||
</group>
|
||||
<group name="NoPartyIDs" id="453" description="Number of PartyID (448), PartyIDSource (447), and PartyRole (452) entries. Applicable only if specific PartyDetailsDefinitions are being requested otherwise set to 0" blockLength="11" dimensionType="groupSize">
|
||||
<field name="PartyID" id="448" type="uInt64" description="Required if NoPartyIDs(453) > 0. Identification of the PartyDetailsListRequestID of PartyDetailsDefinitionRequestAck" offset="0" semanticType="int"/>
|
||||
<field name="PartyIDSource" id="447" type="CHAR" description="Required if NoPartyIDs(453) > 0. Used to identify classification source. Constant value" offset="8" semanticType="char"/>
|
||||
<field name="PartyRole" id="452" type="uInt16" description="Required if NoPartyIDs(453) > 0. Identifies the type of PartyID(448)" offset="9" semanticType="int"/>
|
||||
<field name="PartyID" id="448" type="uInt64" description="Required if NoPartyIDs(453) is greater than 0. Identification of the PartyDetailsListRequestID of PartyDetailsDefinitionRequestAck" offset="0" semanticType="int"/>
|
||||
<field name="PartyIDSource" id="447" type="CHAR" description="Required if NoPartyIDs(453) is greater than 0. Used to identify classification source. Constant value" offset="8" semanticType="char"/>
|
||||
<field name="PartyRole" id="452" type="uInt16" description="Required if NoPartyIDs(453) is greater than 0. Identifies the type of PartyID(448)" offset="9" semanticType="int"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="PartyDetailsListReport538" id="538" description="PartyDetailsListReport" blockLength="93" semanticType="CG">
|
||||
@@ -1253,11 +1272,11 @@
|
||||
<field name="PossRetransFlag" id="9765" type="BooleanFlag" description="Flags message as possible retransmission. This will convey whether a message is an original transmission or duplicate in response to RetransmissionRequest. This will become pertinent when original messages get interleaved with Retransmission responses" offset="91" semanticType="int"/>
|
||||
<field name="SplitMsg" id="9553" type="SplitMsg" description="Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a message was delayed as a result of TCP re-transmission (1) or if a complete message was delayed due to a previously submitted split or out of order message (2). If absent then the message was not delayed and was neither split nor received out of order" offset="92" semanticType="int"/>
|
||||
<group name="NoPartyDetails" id="1671" description="Number of party details. More than one occurrence of the same party role is not allowed and will be rejected" blockLength="22" dimensionType="groupSize">
|
||||
<field name="PartyDetailID" id="1691" type="String20Req" description="The identification of the party. Required when NoPartyDetails(1671) > 0" offset="0" semanticType="String"/>
|
||||
<field name="PartyDetailIDSource" id="1692" type="PartyIDSource" description="Used to identify source of PartyDetailID value. Required when NoPartyDetails(1671) > 0. Constant value of "C"" semanticType="char"/>
|
||||
<field name="PartyDetailRole" id="1693" type="PartyDetailRole" description="Identifies the type of PartyDetailID. Required when NoPartyDetails(1671) > 0" offset="20" semanticType="int"/>
|
||||
<field name="PartyDetailID" id="1691" type="String20Req" description="The identification of the party. Required when NoPartyDetails(1671) is greater than 0" offset="0" semanticType="String"/>
|
||||
<field name="PartyDetailIDSource" id="1692" type="PartyIDSource" description="Used to identify source of PartyDetailID value. Required when NoPartyDetails(1671) is greater than 0. Constant value C" semanticType="char"/>
|
||||
<field name="PartyDetailRole" id="1693" type="PartyDetailRole" description="Identifies the type of PartyDetailID. Required when NoPartyDetails(1671) is greater than 0" offset="20" semanticType="int"/>
|
||||
</group>
|
||||
<group name="NoTrdRegPublications" id="2668" description="Number of regulatory publication rules in repeating group. Should always be "1" if being used otherwise set to 0" blockLength="2" sinceVersion="2" dimensionType="groupSize">
|
||||
<group name="NoTrdRegPublications" id="2668" description="Number of regulatory publication rules in repeating group. Should always be equal 1 if being used otherwise set to 0" blockLength="2" sinceVersion="2" dimensionType="groupSize">
|
||||
<field name="TrdRegPublicationType" id="2669" type="uInt8" description="Specifies the type of regulatory trade publication. Additional reasons for the publication type will be specified in TrdRegPublicationReason (2670). 2=Exempt from Publication. There are allowable exemptions for the post-trade publication of trade transactions" offset="0" semanticType="int"/>
|
||||
<field name="TrdRegPublicationReason" id="2670" type="uInt8" description="Additional reason for trade publication type specified in TrdRegPublicationType (2669). Reasons may be specific to regulatory trade publication rules. 12=Exempted due to European System of Central Banks (ESCB) policy transaction" offset="1" semanticType="int"/>
|
||||
</group>
|
||||
@@ -1316,7 +1335,7 @@
|
||||
<field name="SideTimeInForce" id="962" type="SideTimeInForce" description="Indicates how long the order as specified in the side stays in effect. SideTimeInForce allows a two-sided cross order to specify order behavior separately for each side. Defaults to Day if absent." offset="33" semanticType="int"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="MassQuoteAck545" id="545" description="MassQuoteAck" blockLength="351" semanticType="b">
|
||||
<ns2:message name="MassQuoteAck545" id="545" description="MassQuoteAck" blockLength="352" semanticType="b">
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="0" semanticType="int"/>
|
||||
<field name="UUID" id="39001" type="uInt64" description="Matches Establish.UUID used to establish the connection" offset="4" semanticType="int"/>
|
||||
<field name="Text" id="58" type="String256" description="Reject reason details. Will be used only for descriptive rejects" offset="12" semanticType="String"/>
|
||||
@@ -1332,14 +1351,15 @@
|
||||
<field name="QuoteStatus" id="297" type="QuoteAckStatus" description="Identifies the status of the quote acknowledgement." offset="333" semanticType="int"/>
|
||||
<field name="ManualOrderIndicator" id="1028" type="ManualOrdIndReq" description="Indicates if the message was initially received manually (as opposed to electronically)" offset="334" semanticType="int"/>
|
||||
<field name="NoProcessedEntries" id="9772" type="uInt8" description="Number of quotes that have been accepted from the corresponding inbound message" offset="335" semanticType="int"/>
|
||||
<field name="MMProtectionReset" id="9773" type="BooleanFlag" description="When market maker protection is triggered then Falcon will not accept any new quotes from the market maker for that product group until it receives a mass quote message with the MMProtectionReset flag set to Y" offset="336" semanticType="int"/>
|
||||
<field name="MMProtectionReset" id="9773" type="BooleanFlag" description="Returning the value as sent by customer in the inbound Mass Quote message for Market Maker protection reset" offset="336" semanticType="int"/>
|
||||
<field name="SplitMsg" id="9553" type="SplitMsg" description="Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a message was delayed as a result of TCP re-transmission (1) or if a complete message was delayed due to a previously submitted split or out of order message (2). If absent then the message was not delayed and was neither split nor received out of order" offset="337" semanticType="int"/>
|
||||
<field name="LiquidityFlag" id="9373" type="BooleanNULL" description="Field added to capture if an order was submitted for market making obligation or not. Applicable only for EU BrokerTec and EBS MiFID regulated instruments" offset="338" semanticType="int"/>
|
||||
<field name="ShortSaleType" id="5409" type="ShortSaleType" description="Indicates the type of short sale. Will not be used for Buy orders but Sell orders should have this tag populated for MiFID" offset="339" semanticType="int"/>
|
||||
<field name="TotNoQuoteEntries" id="304" type="uInt8NULL" description="Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries in each message that has repeating quotes that are part of the same quote set. Required if NoQuoteEntries > 0. Since fragmentation is not supported in practice this will always be equal to the value of NoQuoteEntries." offset="340" semanticType="int"/>
|
||||
<field name="TotNoQuoteEntries" id="304" type="uInt8NULL" description="Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries in each message that has repeating quotes that are part of the same quote set. Required if NoQuoteEntries is greater than 0. Since fragmentation is not supported in practice this will always be equal to the value of NoQuoteEntries." offset="340" semanticType="int"/>
|
||||
<field name="PossRetransFlag" id="9765" type="BooleanFlag" description="Flags message as possible retransmission. This will convey whether a message is an original transmission or duplicate in response to RetransmissionRequest. This will become pertinent when original messages get interleaved with Retransmission responses" offset="341" sinceVersion="2" semanticType="int"/>
|
||||
<field name="DelayToTime" id="7552" type="uInt64NULL" description="Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a result of being out of order due to TCP retransmission (9553=1) or as a result of being queued behind a split message (9553=2). Represented as number of nanoseconds in unix epoch format (since Jan 1, 1970). Subtracting this number from FIFO time will represent original received time of delayed message" offset="342" sinceVersion="4" semanticType="int"/>
|
||||
<field name="QuoteEntryOpen" id="9182" type="BooleanNULL" description="A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are being cancelled on behalf; also to be used to reset such a block on mass quotes being sent by the blocked sender comp " offset="350" sinceVersion="8" semanticType="int"/>
|
||||
<field name="QuoteEntryControl" id="39034" type="BooleanNULL" description="Optional field that allows market makers to block new entries or unblock previously set block. Value is echoed back from inbound customer request" offset="351" sinceVersion="9" semanticType="int"/>
|
||||
<group name="NoQuoteEntries" id="295" description="The number of quoute entries for a quote set." blockLength="11" dimensionType="groupSize">
|
||||
<field name="QuoteEntryID" id="299" type="uInt32" description="Unique identifier for a quote. The QuoteEntryID stays with the quote as a static identifier even if the quote is updated. For fills this value is transposed into client order ID (tag 11)" offset="0" semanticType="int"/>
|
||||
<field name="SecurityID" id="48" type="Int32" description="Unique instrument ID " offset="4" semanticType="int"/>
|
||||
@@ -1366,7 +1386,7 @@
|
||||
<field name="PossRetransFlag" id="9765" type="BooleanFlag" description="Flags message as possible retransmission. This will convey whether a message is an original transmission or duplicate in response to RetransmissionRequest. This will become pertinent when original messages get interleaved with Retransmission responses" offset="349" sinceVersion="2" semanticType="int"/>
|
||||
<field name="DelayToTime" id="7552" type="uInt64NULL" description="Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a result of being out of order due to TCP retransmission (9553=1) or as a result of being queued behind a split message (9553=2). Represented as number of nanoseconds in unix epoch format (since Jan 1, 1970). Subtracting this number from FIFO time will represent original received time of delayed message" offset="350" sinceVersion="4" semanticType="int"/>
|
||||
</ns2:message>
|
||||
<ns2:message name="ExecutionReportTradeAddendumOutright548" id="548" description="ExecutionReportTradeAddendumOutright" blockLength="222" semanticType="8">
|
||||
<ns2:message name="ExecutionReportTradeAddendumOutright548" id="548" description="ExecutionReportTradeAddendumOutright" blockLength="266" semanticType="8">
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="0" semanticType="int"/>
|
||||
<field name="UUID" id="39001" type="uInt64" description="Matches Establish.UUID used to establish the connection" offset="4" semanticType="int"/>
|
||||
<field name="ExecID" id="17" type="String40" description="Unique identifier of execution message as assigned by exchange. Uniqueness will be guaranteed within a single trading day or the life of a multi-day order" offset="12" semanticType="String"/>
|
||||
@@ -1400,13 +1420,15 @@
|
||||
<field name="ExecRestatementReason" id="378" type="ExecReason" description="Will be present when trade at fixing is assigned fixing price" offset="191" sinceVersion="6" semanticType="int"/>
|
||||
<field name="SettlDate" id="64" type="LocalMktDate" description="Specific date of trade settlement" offset="192" sinceVersion="6" semanticType="LocalMktDate"/>
|
||||
<field name="MaturityDate" id="541" type="LocalMktDate" description="Date of maturity" offset="194" sinceVersion="6" semanticType="LocalMktDate"/>
|
||||
<field name="CalculatedCcyLastQty" id="1056" type="Decimal64NULL" description="Total amount traded (in notional) in counter currency for the Spot" offset="196" sinceVersion="6" semanticType="int"/>
|
||||
<field name="GrossTradeAmt" id="381" type="Decimal64NULL" description="Total amount traded (in notional) in base currency for the Spot" offset="205" sinceVersion="6" semanticType="int"/>
|
||||
<field name="CalculatedCcyLastQty" id="1056" type="Decimal64NULL" description="Total amount traded (in notional) in counter currency for the Spot" offset="196" sinceVersion="6" semanticType="Qty"/>
|
||||
<field name="GrossTradeAmt" id="381" type="Decimal64NULL" description="Total amount traded (in notional) in base currency for the Spot" offset="205" sinceVersion="6" semanticType="Qty"/>
|
||||
<field name="BenchmarkPrice" id="6262" type="PRICENULL9" description="The price assigned to an eFIX matched trade which is determined by an automated set market mid-price from a third party market data feed. The Fixing Price will be distributed as soon as practicable after the Fixing Time" offset="214" sinceVersion="6" semanticType="Price"/>
|
||||
<field name="MDTradeEntryID" id="37711" type="uInt32" description="Market Data Trade Entry ID" offset="222" sinceVersion="9" semanticType="int"/>
|
||||
<field name="ExecRefID" id="19" type="String40" description="References original Tag 17 ExecID value of the modified or canceled fill. " offset="226" sinceVersion="9" semanticType="String"/>
|
||||
<group name="NoFills" id="1362" description="Specifies the number of fill reasons included in this Execution Report" blockLength="15" dimensionType="groupSize">
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills(1362) > 0. Same as LastPx(31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills(1362) is greater than 0. Same as LastPx(31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillQty" id="1365" type="uInt32" description="Quantity bought/sold for this fill reason" offset="8" semanticType="int"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills(1362) > 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills( 1362) is greater than 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillYieldType" id="1622" type="uInt8" description="Enumeration of the Fill Reason field using Integer. This identifies the type of match algorithm" offset="14" semanticType="int"/>
|
||||
</group>
|
||||
<group name="NoOrderEvents" id="1795" description="Number of fills which comprise fill quantity" blockLength="45" dimensionType="groupSize">
|
||||
@@ -1417,11 +1439,11 @@
|
||||
<field name="OrderEventType" id="1796" type="TradeAddendum" description="The type of event affecting an order" offset="21" semanticType="int"/>
|
||||
<field name="OrderEventReason" id="1798" type="uInt8" description="Action that caused the event to ocurr. 100=Binary Trade Reporting" offset="22" semanticType="int"/>
|
||||
<field name="OriginalOrderEventExecID" id="6555" type="uInt32NULL" description="Contains the previous OrderEventExecID value (Tag 1797) of the trade being adjusted or busted" offset="23" sinceVersion="3" semanticType="int"/>
|
||||
<field name="ContraGrossTradeAmt" id="5542" type="Decimal64NULL" description="Amount traded (in notional) in base currency for the Spot with this counterparty" offset="27" sinceVersion="6" semanticType="int"/>
|
||||
<field name="ContraCalculatedCcyLastQty" id="5971" type="Decimal64NULL" description="Amount traded (in notional) in counter currency for the Spot with this counterparty" offset="36" sinceVersion="6" semanticType="int"/>
|
||||
<field name="ContraGrossTradeAmt" id="5542" type="Decimal64NULL" description="Amount traded in notional base currency for the Spot with this counterparty" offset="27" sinceVersion="6" semanticType="Qty"/>
|
||||
<field name="ContraCalculatedCcyLastQty" id="5971" type="Decimal64NULL" description="Amount traded in notional counter currency for the Spot with this counterparty" offset="36" sinceVersion="6" semanticType="Qty"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="ExecutionReportTradeAddendumSpread549" id="549" description="ExecutionReportTradeAddendumSpread" blockLength="187" semanticType="8">
|
||||
<ns2:message name="ExecutionReportTradeAddendumSpread549" id="549" description="ExecutionReportTradeAddendumSpread" blockLength="227" semanticType="8">
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="0" semanticType="int"/>
|
||||
<field name="UUID" id="39001" type="uInt64" description="Matches Establish.UUID used to establish the connection" offset="4" semanticType="int"/>
|
||||
<field name="ExecID" id="17" type="String40" description="Unique identifier of execution message as assigned by exchange. Uniqueness will be guaranteed within a single trading day or the life of a multi-day order" offset="12" semanticType="String"/>
|
||||
@@ -1453,10 +1475,11 @@
|
||||
<field name="LiquidityFlag" id="9373" type="BooleanNULL" description="Field added to capture if an order was submitted for market making obligation or not. Applicable only for EU BrokerTec and EBS MiFID regulated instruments" offset="184" semanticType="int"/>
|
||||
<field name="ManagedOrder" id="6881" type="BooleanNULL" description="Boolean: flags a managed order" offset="185" semanticType="int"/>
|
||||
<field name="ShortSaleType" id="5409" type="ShortSaleType" description="Indicates the type of short sale. Will not be used for Buy orders but Sell orders should have this tag populated for MiFID" offset="186" semanticType="int"/>
|
||||
<field name="ExecRefID" id="19" type="String40" description="References original Tag 17 ExecID value of the modified or canceled fill. " offset="187" sinceVersion="9" semanticType="String"/>
|
||||
<group name="NoFills" id="1362" description="Specifies the number of fill reasons included in this Execution Report" blockLength="15" dimensionType="groupSize">
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills(1362) > 0. Same as LastPx(31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills (1362) is greater than 0. Same as LastPx(31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillQty" id="1365" type="uInt32" description="Quantity bought/sold for this fill reason" offset="8" semanticType="int"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills(1362) > 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills (1362) is greater than 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillYieldType" id="1622" type="uInt8" description="Enumeration of the Fill Reason field using Integer. This identifies the type of match algorithm" offset="14" semanticType="int"/>
|
||||
</group>
|
||||
<group name="NoLegs" id="555" description="Number of legs (repeating groups)." blockLength="41" dimensionType="groupSize">
|
||||
@@ -1479,7 +1502,7 @@
|
||||
<field name="OriginalOrderEventExecID" id="6555" type="uInt32NULL" description="Contains the previous OrderEventExecID value (Tag 1797) of the trade being adjusted or busted" offset="23" sinceVersion="3" semanticType="int"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="ExecutionReportTradeAddendumSpreadLeg550" id="550" description="ExecutionReportTradeAddendumSpreadLeg" blockLength="196" semanticType="8">
|
||||
<ns2:message name="ExecutionReportTradeAddendumSpreadLeg550" id="550" description="ExecutionReportTradeAddendumSpreadLeg" blockLength="236" semanticType="8">
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="0" semanticType="int"/>
|
||||
<field name="UUID" id="39001" type="uInt64" description="Matches Establish.UUID used to establish the connection" offset="4" semanticType="int"/>
|
||||
<field name="ExecID" id="17" type="String40" description="Unique identifier of execution message as assigned by exchange. Uniqueness will be guaranteed within a single trading day or the life of a multi-day order" offset="12" semanticType="String"/>
|
||||
@@ -1504,15 +1527,16 @@
|
||||
<field name="PossRetransFlag" id="9765" type="BooleanFlag" description="Flags message as possible retransmission. This will convey whether a message is an original transmission or duplicate in response to RetransmissionRequest. This will become pertinent when original messages get interleaved with Retransmission responses" offset="174" semanticType="int"/>
|
||||
<field name="Side" id="54" type="SideReq" description="Order side" offset="175" sinceVersion="5" semanticType="int"/>
|
||||
<field name="SettlDate" id="64" type="LocalMktDate" description="Specific date of trade settlement for the Spot leg" offset="176" sinceVersion="6" semanticType="LocalMktDate"/>
|
||||
<field name="CalculatedCcyLastQty" id="1056" type="Decimal64NULL" description="Total amount traded (in notional) in counter currency for the Spot leg" offset="178" sinceVersion="6" semanticType="int"/>
|
||||
<field name="GrossTradeAmt" id="381" type="Decimal64NULL" description="Total amount traded (in notional) in base currency for the Spot leg" offset="187" sinceVersion="6" semanticType="int"/>
|
||||
<field name="CalculatedCcyLastQty" id="1056" type="Decimal64NULL" description="Total amount traded (in notional) in counter currency for the Spot leg" offset="178" sinceVersion="6" semanticType="Qty"/>
|
||||
<field name="GrossTradeAmt" id="381" type="Decimal64NULL" description="Total amount traded (in notional) in base currency for the Spot leg" offset="187" sinceVersion="6" semanticType="Qty"/>
|
||||
<field name="ExecRefID" id="19" type="String40" description="References original Tag 17 ExecID value of the modified or canceled fill. " offset="196" sinceVersion="9" semanticType="String"/>
|
||||
<group name="NoFills" id="1362" description="Specifies the number of fill reasons included in this Execution Report" blockLength="15" dimensionType="groupSize">
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills(1362) > 0. Same as LastPx(31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillQty" id="1365" type="uInt32" description="Quantity bought/sold for this fill reason" offset="8" semanticType="int"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills(1362) > 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillPx" id="1364" type="PRICE9" description="Price of this fill reason or allocation. Required if NoFills (1362) is greater than 0. Same as LastPx(31)" offset="0" semanticType="Price"/>
|
||||
<field name="FillQty" id="1365" type="uInt32" description="Quantity bought or sold for this fill reason" offset="8" semanticType="int"/>
|
||||
<field name="FillExecID" id="1363" type="String2" description="Used as an identifier for each fill reason or allocation reported in single Execution Report. Required if NoFills(1362) is greater than 0. Append FillExecID with ExecID to derive unique identifier for each fill reason or allocation" offset="12" semanticType="String"/>
|
||||
<field name="FillYieldType" id="1622" type="uInt8" description="Enumeration of the Fill Reason field using Integer. This identifies the type of match algorithm" offset="14" semanticType="int"/>
|
||||
</group>
|
||||
<group name="NoOrderEvents" id="1795" description="Number of fills which comprise fill quantity" blockLength="27" dimensionType="groupSize">
|
||||
<group name="NoOrderEvents" id="1795" description="Number of fills which comprise fill quantity" blockLength="45" dimensionType="groupSize">
|
||||
<field name="OrderEventPx" id="1799" type="PRICE9" description="Refers to the fill price; same as LastPx (Tag 31) " offset="0" semanticType="Price"/>
|
||||
<field name="OrderEventText" id="1802" type="String5" description="Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for BrokerTec EU bilateral trades" offset="8" semanticType="String"/>
|
||||
<field name="OrderEventExecID" id="1797" type="uInt32" description="This is a unique ID which ties together a specific fill between two orders; It will be unique per instrument per day" offset="13" semanticType="int"/>
|
||||
@@ -1520,6 +1544,8 @@
|
||||
<field name="OrderEventType" id="1796" type="TradeAddendum" description="The type of event affecting an order" offset="21" semanticType="int"/>
|
||||
<field name="OrderEventReason" id="1798" type="uInt8" description="Action that caused the event to ocurr" offset="22" semanticType="int"/>
|
||||
<field name="OriginalOrderEventExecID" id="6555" type="uInt32NULL" description="Contains the previous OrderEventExecID value (Tag 1797) of the trade being adjusted or busted" offset="23" sinceVersion="3" semanticType="int"/>
|
||||
<field name="ContraGrossTradeAmt" id="5542" type="Decimal64NULL" description="Amount traded in notional base currency for the Spot with this counterparty" offset="27" sinceVersion="9" semanticType="Qty"/>
|
||||
<field name="ContraCalculatedCcyLastQty" id="5971" type="Decimal64NULL" description="Amount traded in notional counter currency for the Spot with this counterparty" offset="36" sinceVersion="9" semanticType="Qty"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="SecurityDefinitionRequest560" id="560" description="SecurityDefinitionRequest" blockLength="72" semanticType="c" sinceVersion="2">
|
||||
@@ -1621,7 +1647,7 @@
|
||||
<field name="MassCancelRequestType" id="6115" type="MassCxlReqTyp" description="If present specifies the scope of the OrderMassActionRequest within the context of Session and Firm. If absent then all orders belonging to Session and Firm combination will be cancelled for specified MassActionScope" offset="99" semanticType="int"/>
|
||||
<field name="Side" id="54" type="SideNULL" description="f provided then only orders belonging to one side will be cancelled. If absent then orders belonging to both sides will be cancelled" offset="100" semanticType="int"/>
|
||||
<field name="OrdType" id="40" type="MassActionOrdTyp" description="If provided then only orders of this type will be cancelled. If absent then all order types will be cancelled" offset="101" semanticType="char"/>
|
||||
<field name="TimeInForce" id="59" type="MassCancelTIF" description="If provided then only orders with this qualifier will be cancelled. If absent then all Day & GT orders will be cancelled" offset="102" semanticType="int"/>
|
||||
<field name="TimeInForce" id="59" type="MassCancelTIF" description="If provided then only orders with this qualifier will be cancelled. If absent then all Day and GT orders will be cancelled" offset="102" semanticType="int"/>
|
||||
<field name="SplitMsg" id="9553" type="SplitMsg" description="Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a message was delayed as a result of TCP re-transmission (1) or if a complete message was delayed due to a previously submitted split or out of order message (2). If absent then the message was not delayed and was neither split nor received out of order" offset="103" semanticType="int"/>
|
||||
<field name="LiquidityFlag" id="9373" type="BooleanNULL" description="Field added to capture if an order was submitted for market making obligation or not. Applicable only for EU BrokerTec and EBS MiFID regulated instruments" offset="104" semanticType="int"/>
|
||||
<field name="PossRetransFlag" id="9765" type="BooleanFlag" description="Flags message as possible retransmission. This will convey whether a message is an original transmission or duplicate in response to RetransmissionRequest. This will become pertinent when original messages get interleaved with Retransmission responses" offset="105" semanticType="int"/>
|
||||
@@ -1634,7 +1660,7 @@
|
||||
<field name="CxlQuantity" id="84" type="uInt32" description="Total quantity cancelled for this order." offset="28" semanticType="int"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="QuoteCancelAck563" id="563" description="QuoteCancelAck" blockLength="368" semanticType="b" sinceVersion="5">
|
||||
<ns2:message name="QuoteCancelAck563" id="563" description="QuoteCancelAck" blockLength="370" semanticType="b" sinceVersion="5">
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="0" semanticType="int"/>
|
||||
<field name="UUID" id="39001" type="uInt64" description="Matches Establish.UUID used to establish the connection" offset="4" semanticType="int"/>
|
||||
<field name="Text" id="58" type="String256" description="Reject reason details. Will be used only for descriptive rejects" offset="12" semanticType="String"/>
|
||||
@@ -1650,7 +1676,7 @@
|
||||
<field name="ManualOrderIndicator" id="1028" type="ManualOrdIndReq" description="Indicates if the message was initially received manually (as opposed to electronically)" offset="331" semanticType="int"/>
|
||||
<field name="QuoteStatus" id="297" type="QuoteCxlStatus" description="Identifies the type of Quote Cancel. A working quote can be cancelled by providing either it's instrument, quote set, product group, or by cancelling all" offset="332" semanticType="int"/>
|
||||
<field name="NoProcessedEntries" id="9772" type="uInt32" description="Number of quotes successfully cancelled (if in response to a Quote Cancel message)" offset="333" semanticType="int"/>
|
||||
<field name="MMProtectionReset" id="9773" type="BooleanFlag" description="This tag is sent and set to '1' on the quote cancel acknowledgment which is sent after Market Maker protection is triggered and all resting quotes are cancelled for that particular group (297=3)" offset="337" semanticType="int"/>
|
||||
<field name="MMProtectionReset" id="9773" type="BooleanFlag" description="When Quote cancelation is triggered by Market Maker protection and all resting quotes are cancelled for that particular group (297=3) this tag returns value of tag 9773=MMProtectionReset as previously submitted by client system. In the quote cancel acknowledgements solicited by customer this tag will be set to 0." offset="337" semanticType="int"/>
|
||||
<field name="UnsolicitedCancelType" id="9775" type="charNULL" description="Type of quote cancel generated by CME -- returned only for unsolicited quote cancels" offset="338" semanticType="char"/>
|
||||
<field name="SplitMsg" id="9553" type="SplitMsg" description="Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a message was delayed as a result of TCP re-transmission (1) or if a complete message was delayed due to a previously submitted split or out of order message (2). If absent then the message was not delayed and was neither split nor received out of order" offset="339" semanticType="int"/>
|
||||
<field name="TotNoQuoteEntries" id="304" type="uInt8NULL" description="Total number of quotes for the quote set across all messages. Will be populated only for enumerated rejects for Cancel By Instrument" offset="340" semanticType="int"/>
|
||||
@@ -1660,6 +1686,8 @@
|
||||
<field name="OrigOrderUser" id="9937" type="String8" description="Represents the original sender comp for whom orders or quotes are to be cancelled" offset="351" sinceVersion="8" semanticType="String"/>
|
||||
<field name="CancelText" id="2807" type="String8" description="Represents the sender comp which initiated the cancellation of orders or quotes for the original sender comp" offset="359" sinceVersion="8" semanticType="String"/>
|
||||
<field name="QuoteEntryOpen" id="9182" type="BooleanNULL" description="A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are being cancelled on behalf; also to be used to reset such a block on mass quotes being sent by the blocked sender comp " offset="367" sinceVersion="8" semanticType="int"/>
|
||||
<field name="CxlLinkedSessions" id="39033" type="BooleanNULL" description="Value is echoed back from inbound customer request" offset="368" sinceVersion="9" semanticType="int"/>
|
||||
<field name="QuoteEntryControl" id="39034" type="BooleanNULL" description="Optional field that allows market makers to block new entries or unblock previously set block. Value is echoed back from inbound customer request" offset="369" sinceVersion="9" semanticType="int"/>
|
||||
<group name="NoQuoteEntries" id="295" description="The number of quote entries for a quote set. Will be populated only for enumerated rejects for Cancel By Instrument" blockLength="9" dimensionType="groupSize">
|
||||
<field name="QuoteEntryID" id="299" type="uInt32" description="Unique identifier for a quote. The QuoteEntryID stays with the quote as a static identifier even if the quote is updated. For fills this value is transposed into client order ID (tag 11)" offset="0" semanticType="int"/>
|
||||
<field name="SecurityID" id="48" type="Int32" description="Security ID as defined by CME. For the security ID list, see the security definition messages" offset="4" semanticType="int"/>
|
||||
@@ -1740,4 +1768,127 @@
|
||||
<field name="DiscretionPrice" id="845" type="PRICENULL9" description="The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but will accept trades at another price" offset="187" semanticType="Price"/>
|
||||
<field name="PriorityIndicator" id="638" type="uInt8NULL" description="This field is being added to report whether incoming new order/cancel replace entered the book or subsequently rests on the book with either large or standard order size priority" offset="195" sinceVersion="8" semanticType="int"/>
|
||||
</ns2:message>
|
||||
<ns2:message name="RequestForCross566" id="566" description="RequestForCross" blockLength="67" semanticType="s" sinceVersion="9">
|
||||
<field name="CrossID" id="548" type="uInt64" description="Identifier for a cross order. Must be unique during a given trading day" offset="0" semanticType="int"/>
|
||||
<field name="OrderRequestID" id="2422" type="uInt64" description="Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on the ExecutionReport representing the response" offset="8" semanticType="int"/>
|
||||
<field name="ManualOrderIndicator" id="1028" type="ManualOrdIndReq" description="Indicates if the order was initially received manually (as opposed to electronically)" offset="16" semanticType="int"/>
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="17" semanticType="int"/>
|
||||
<field name="SenderID" id="5392" type="String20Req" description="Operator ID. Should be unique per Firm ID. Assigned value used to identify specific message originator. Represents last individual or team in charge of the system which modifies the order before submission to the Globex platform, or if not modified from initiator (party role=118), last individual or team in charge of the system, which submit the order to the Globex platform" offset="21" semanticType="String"/>
|
||||
<field name="OrdType" id="40" type="CrossOrderType" description="Constant. Order type Cross" semanticType="char"/>
|
||||
<field name="CrossType" id="549" type="CrossTypeEnum" description="Constant. Type of cross being submitted to a market" offset="41" semanticType="int"/>
|
||||
<field name="CrossPrioritization" id="550" type="CrossPrioritization" description="Constant. Indicates if one side or the other of a cross order should be prioritized" semanticType="char"/>
|
||||
<field name="Price" id="44" type="PRICE9" description="Order price" offset="42" semanticType="Price"/>
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. Expressed as number of nanoseconds since epoch time" offset="50" semanticType="int"/>
|
||||
<field name="Location" id="9537" type="String5Req" description="Text describing sender's location (i.e. geopraphic location and/or desk)" offset="58" semanticType="String"/>
|
||||
<field name="SecurityID" id="48" type="Int32" description="Unique instrument ID " offset="63" semanticType="int"/>
|
||||
<group name="NoSides" id="552" description="Number of sides repeating group. Must always be 2, both sides" blockLength="34" dimensionType="groupSize">
|
||||
<field name="ClOrdID" id="11" type="String20Req" description="Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc.). Uniqueness must be guaranteed within a single trading day. Firms, particularly those which electronically submit multi-day orders, trade globally or throughout market close periods, should ensure uniqueness across days, for example by embedding a date within the ClOrdID field" offset="0" semanticType="String"/>
|
||||
<field name="PartyDetailsListReqID" id="1505" type="uInt64" description="Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to this message" offset="20" semanticType="int"/>
|
||||
<field name="OrderQty" id="38" type="uInt32" description="Order quantity. Must be the same for both sides" offset="28" semanticType="int"/>
|
||||
<field name="Side" id="54" type="SideReq" description="Order side" offset="32" semanticType="int"/>
|
||||
<field name="SideTimeInForce" id="962" type="SideTimeInForce" description="Indicates how long the order as specified in the side stays in effect. SideTimeInForce allows a two-sided cross order to specify order behavior separately for each side. Defaults to Day if absent" offset="33" semanticType="int"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="MassQuoteRequest567" id="567" description="MassQuoteRequest" blockLength="124" semanticType="i" sinceVersion="9">
|
||||
<field name="PartyDetailsListReqID" id="1505" type="uInt64" description="Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to this message" offset="0" semanticType="int"/>
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. 64-bit integer expressing the number of nano seconds since midnight January 1, 1970." offset="8" semanticType="int"/>
|
||||
<field name="ManualOrderIndicator" id="1028" type="ManualOrdIndReq" description="Indicates if the order was initially received manually (as opposed to electronically). Reject if greater than max length. Flip back incoming value in outgoing execution report only if either Y/N otherwise ignore." offset="16" semanticType="int"/>
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="17" semanticType="int"/>
|
||||
<field name="SenderID" id="5392" type="String20Req" description="Operator ID. Should be unique per Firm ID. Assigned value used to identify specific message originator. Represents last individual or team in charge of the system which modifies the order before submission to the Globex platform, or if not modified from initiator (party role=118), last individual or team in charge of the system, which submit the order to the Globex platform" offset="21" semanticType="String"/>
|
||||
<field name="QuoteReqID" id="131" type="uInt64NULL" description="Unique identifier for the quote request, will be echoed back in the response" offset="41" semanticType="int"/>
|
||||
<field name="Location" id="9537" type="String5Req" description="Text describing sender's location (i.e. geopraphic location and/or desk)" offset="49" semanticType="String"/>
|
||||
<field name="QuoteID" id="117" type="uInt32" description="Unique identifier for mass quote populated by the client system" offset="54" semanticType="int"/>
|
||||
<field name="TotNoQuoteEntries" id="304" type="uInt8" description="Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries in each message that has repeating quotes that are part of the same quote set. Required if NoQuoteEntries is not 0. Since fragmentation is not supported in practice this will always be equal to the value of NoQuoteEntries" offset="58" semanticType="int"/>
|
||||
<field name="MMProtectionReset" id="9773" type="BooleanFlag" description="When market maker protection is triggered CME will not accept any new quotes from the market maker for that product group until it receives a mass quote message with the MMProtectionReset flag set to true" offset="59" semanticType="int"/>
|
||||
<field name="LiquidityFlag" id="9373" type="BooleanNULL" description="Field added to capture if an order was submitted for market making obligation or not. Applicable only for EU BrokerTec and EBS MiFID regulated instruments" offset="60" semanticType="int"/>
|
||||
<field name="ShortSaleType" id="5409" type="ShortSaleType" description="Indicates the type of short sale. Will not be used for Buy orders but Sell orders should have this tag populated for MiFID" offset="61" semanticType="int"/>
|
||||
<field name="QuoteEntryOpen" id="9182" type="BooleanNULL" description="A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are being cancelled on behalf; also to be used to reset such a block on mass quotes being sent by the blocked sender comp" offset="62" semanticType="int"/>
|
||||
<field name="QuoteEntryControl" id="39034" type="BooleanNULL" description="Optional field that allows market makers to block new entries or unblock previously set block" offset="63" semanticType="int"/>
|
||||
<field name="Reserved" id="5187" type="String60" description="Reserved for future use" offset="64" semanticType="String"/>
|
||||
<group name="NoQuoteEntries" id="295" description="The number of quote entries" blockLength="23" dimensionType="groupSize">
|
||||
<field name="SecurityID" id="48" type="Int32" description="Security ID as defined by CME" offset="0" semanticType="int"/>
|
||||
<field name="Price" id="44" type="PRICE9" description="Quote price" offset="4" semanticType="Price"/>
|
||||
<field name="OrderQty" id="38" type="uInt32" description="Quote qty" offset="12" semanticType="int"/>
|
||||
<field name="Side" id="54" type="Side" description="Quote side" offset="16" semanticType="int"/>
|
||||
<field name="QuoteEntryID" id="299" type="uInt32" description="Unique identifier for a quote. The QuoteEntryID stays with the quote as a static identifier even if the quote is updated. For fills this value is transposed into client order ID (tag 11)" offset="17" semanticType="int"/>
|
||||
<field name="QuoteSetID" id="302" type="uInt16" description="Unique id for the Quote Set" offset="21" semanticType="int"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="QuoteCancelBySet568" id="568" description="QuoteCancelBySet" blockLength="52" semanticType="Z" sinceVersion="9">
|
||||
<field name="PartyDetailsListReqID" id="1505" type="uInt64" description="Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to this message" offset="0" semanticType="int"/>
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. 64-bit integer expressing the number of nano seconds since midnight January 1, 1970." offset="8" semanticType="int"/>
|
||||
<field name="ManualOrderIndicator" id="1028" type="ManualOrdIndReq" description="Indicates if the order was initially received manually (as opposed to electronically)" offset="16" semanticType="int"/>
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="17" semanticType="int"/>
|
||||
<field name="SenderID" id="5392" type="String20Req" description="Operator ID. Should be unique per Firm ID. Assigned value used to identify specific message originator. Represents last individual or team in charge of the system which modifies the order before submission to the Globex platform, or if not modified from initiator (party role=118), last individual or team in charge of the system, which submit the order to the Globex platform" offset="21" semanticType="String"/>
|
||||
<field name="Location" id="9537" type="String5Req" description="Text describing sender's location (i.e. geopraphic location and/or desk)" offset="41" semanticType="String"/>
|
||||
<field name="QuoteID" id="117" type="uInt32" description="Identifier of the Quote Cancel message. Should be unique per trading session. Uniqueness will not be enforced by CME and is incumbent on the market participant to maintain uniqueness" offset="46" semanticType="int"/>
|
||||
<field name="QuoteCancelType" id="298" type="QuoteCxTypeBySet" description="Identifies the type of Quote Cancel, constant value - Cancel by Quote Set" semanticType="int"/>
|
||||
<field name="CxlLinkedSessions" id="39033" type="BooleanNULL" description="This flag allows market makers to cancel linked sessions quotes, if any found for the specified list of Quote Set Ids" offset="50" semanticType="int"/>
|
||||
<field name="QuoteEntryControl" id="39034" type="BooleanNULL" description="Optional field that allows market makers to block new entries or unblock previously set block" offset="51" semanticType="int"/>
|
||||
<group name="NoQuoteSets" id="296" description="The number of Quote Set IDs" blockLength="2" dimensionType="groupSize">
|
||||
<field name="QuoteSetID" id="302" type="uInt16" description="Quote Set ID" offset="0" semanticType="int"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="QuoteCancelByGroup569" id="569" description="QuoteCancelByGroup" blockLength="52" semanticType="Z" sinceVersion="9">
|
||||
<field name="PartyDetailsListReqID" id="1505" type="uInt64" description="Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to this message" offset="0" semanticType="int"/>
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. 64-bit integer expressing the number of nano seconds since midnight January 1, 1970." offset="8" semanticType="int"/>
|
||||
<field name="ManualOrderIndicator" id="1028" type="ManualOrdIndReq" description="Indicates if the order was initially received manually (as opposed to electronically)" offset="16" semanticType="int"/>
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="17" semanticType="int"/>
|
||||
<field name="SenderID" id="5392" type="String20Req" description="Operator ID. Should be unique per Firm ID. Assigned value used to identify specific message originator. Represents last individual or team in charge of the system which modifies the order before submission to the Globex platform, or if not modified from initiator (party role=118), last individual or team in charge of the system, which submit the order to the Globex platform" offset="21" semanticType="String"/>
|
||||
<field name="Location" id="9537" type="String5Req" description="Text describing sender's location (i.e. geopraphic location and/or desk)" offset="41" semanticType="String"/>
|
||||
<field name="QuoteID" id="117" type="uInt32" description="Identifier of the Quote Cancel message. Should be unique per trading session. Uniqueness will not be enforced by CME and is incumbent on the market participant to maintain uniqueness" offset="46" semanticType="int"/>
|
||||
<field name="QuoteCancelType" id="298" type="QuoteCxTypeByGroup" description="Identifies the type of Quote Cancel, constant value - Cancel by a list of Security Groups" semanticType="int"/>
|
||||
<field name="CxlLinkedSessions" id="39033" type="BooleanNULL" description="This flag allows market makers to cancel linked sessions quotes, if any found for the specified list of security groups" offset="50" semanticType="int"/>
|
||||
<field name="QuoteEntryControl" id="39034" type="BooleanNULL" description="Optional field that allows market makers to block new entries or unblock previously set block" offset="51" semanticType="int"/>
|
||||
<group name="NoQuoteEntries" id="295" description="The number of Security Groups" blockLength="6" dimensionType="groupSize">
|
||||
<field name="SecurityGroup" id="1151" type="StringLength6" description="Security Group" offset="0" semanticType="String"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="QuoteCancelByInstrument570" id="570" description="QuoteCancelByInstrument" blockLength="51" semanticType="Z" sinceVersion="9">
|
||||
<field name="PartyDetailsListReqID" id="1505" type="uInt64" description="Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to this message" offset="0" semanticType="int"/>
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. 64-bit integer expressing the number of nano seconds since midnight January 1, 1970." offset="8" semanticType="int"/>
|
||||
<field name="ManualOrderIndicator" id="1028" type="ManualOrdIndReq" description="Indicates if the order was initially received manually (as opposed to electronically)" offset="16" semanticType="int"/>
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="17" semanticType="int"/>
|
||||
<field name="SenderID" id="5392" type="String20Req" description="Operator ID. Should be unique per Firm ID. Assigned value used to identify specific message originator. Represents last individual or team in charge of the system which modifies the order before submission to the Globex platform, or if not modified from initiator (party role=118), last individual or team in charge of the system, which submit the order to the Globex platform" offset="21" semanticType="String"/>
|
||||
<field name="Location" id="9537" type="String5Req" description="Text describing sender's location (i.e. geopraphic location and/or desk)" offset="41" semanticType="String"/>
|
||||
<field name="QuoteID" id="117" type="uInt32" description="Identifier of the Quote Cancel message. Should be unique per trading session. Uniqueness will not be enforced by CME and is incumbent on the market participant to maintain uniqueness" offset="46" semanticType="int"/>
|
||||
<field name="QuoteCancelType" id="298" type="QuoteCxTypeByInstr" description="Identifies the type of Quote Cancel, constant value - Cancel by Instrument" semanticType="int"/>
|
||||
<field name="CxlLinkedSessions" id="39033" type="BooleanNULL" description="This flag allows market makers to cancel linked sessions quotes, if any found for the specified list of instruments" offset="50" semanticType="int"/>
|
||||
<group name="NoQuoteEntries" id="295" description="The number of instruments" blockLength="4" dimensionType="groupSize">
|
||||
<field name="SecurityID" id="48" type="Int32" description="Security ID " offset="0" semanticType="int"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
<ns2:message name="MassQuoteResponse571" id="571" description="MassQuoteResponse" blockLength="350" semanticType="b" sinceVersion="9">
|
||||
<field name="SeqNum" id="9726" type="uInt32" description="Sequence number as assigned to message" offset="0" semanticType="int"/>
|
||||
<field name="UUID" id="39001" type="uInt64" description="Matches Establish.UUID used to establish the connection" offset="4" semanticType="int"/>
|
||||
<field name="Text" id="58" type="String256" description="Reject reason details. Will be used only for descriptive rejects" offset="12" semanticType="String"/>
|
||||
<field name="SenderID" id="5392" type="String20Req" description="Operator ID. Should be unique per Firm ID. Assigned value used to identify specific message originator. Represents last individual or team in charge of the system which modifies the order before submission to the Globex platform, or if not modified from initiator (party role=118), last individual or team in charge of the system, which submit the order to the Globex platform" offset="268" semanticType="String"/>
|
||||
<field name="PartyDetailsListReqID" id="1505" type="uInt64" description="The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip of what was submitted on inbound message" offset="288" semanticType="int"/>
|
||||
<field name="TransactTime" id="60" type="uInt64" description="Time of execution/order creation; expressed in UTC." offset="296" semanticType="int"/>
|
||||
<field name="SendingTimeEpoch" id="5297" type="uInt64" description="Time when the message is sent. 64-bit integer expressing the number of nano seconds since midnight January 1, 1970." offset="304" semanticType="int"/>
|
||||
<field name="QuoteReqID" id="131" type="uInt64NULL" description="Conditionally present when MassQuote was sent in response to RequestForQuote" offset="312" semanticType="int"/>
|
||||
<field name="Location" id="9537" type="String5Req" description="Text describing sender's location (i.e. geopraphic location and/or desk)" offset="320" semanticType="String"/>
|
||||
<field name="QuoteID" id="117" type="uInt32" description="Unique identifier for mass quote populated by the client system" offset="325" semanticType="int"/>
|
||||
<field name="QuoteRejectReason" id="300" type="uInt16NULL" description="Contains reason (error code) the corresponding MassQuote message has been rejected. When this tag is returned, all quotes in the corresponding Mass Quote message are rejected." offset="329" semanticType="int"/>
|
||||
<field name="QuoteStatus" id="297" type="QuoteAckStatus" description="Identifies the status of the quote acknowledgement." offset="331" semanticType="int"/>
|
||||
<field name="ManualOrderIndicator" id="1028" type="ManualOrdIndReq" description="Indicates if the message was initially received manually (as opposed to electronically)" offset="332" semanticType="int"/>
|
||||
<field name="NoProcessedEntries" id="9772" type="uInt8" description="Number of quotes that have been accepted from the corresponding inbound message" offset="333" semanticType="int"/>
|
||||
<field name="MMProtectionReset" id="9773" type="BooleanFlag" description="Returning the value as sent by customer in the inbound Mass Quote message for Market Maker protection reset" offset="334" semanticType="int"/>
|
||||
<field name="SplitMsg" id="9553" type="SplitMsg" description="Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a message was delayed as a result of TCP re-transmission (1) or if a complete message was delayed due to a previously submitted split or out of order message (2). If absent then the message was not delayed and was neither split nor received out of order" offset="335" semanticType="int"/>
|
||||
<field name="LiquidityFlag" id="9373" type="BooleanNULL" description="Field added to capture if an order was submitted for market making obligation or not. Applicable only for EU BrokerTec and EBS MiFID regulated instruments" offset="336" semanticType="int"/>
|
||||
<field name="ShortSaleType" id="5409" type="ShortSaleType" description="Indicates the type of short sale. Will not be used for Buy orders but Sell orders should have this tag populated for MiFID" offset="337" semanticType="int"/>
|
||||
<field name="TotNoQuoteEntries" id="304" type="uInt8NULL" description="Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries in each message that has repeating quotes that are part of the same quote set. Required if NoQuoteEntries is greater than 0. Since fragmentation is not supported in practice this will always be equal to the value of NoQuoteEntries." offset="338" semanticType="int"/>
|
||||
<field name="PossRetransFlag" id="9765" type="BooleanFlag" description="Flags message as possible retransmission. This will convey whether a message is an original transmission or duplicate in response to RetransmissionRequest. This will become pertinent when original messages get interleaved with Retransmission responses" offset="339" semanticType="int"/>
|
||||
<field name="DelayToTime" id="7552" type="uInt64NULL" description="Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a result of being out of order due to TCP retransmission (9553=1) or as a result of being queued behind a split message (9553=2). Represented as number of nanoseconds in unix epoch format (since Jan 1, 1970). Subtracting this number from FIFO time will represent original received time of delayed message" offset="340" semanticType="int"/>
|
||||
<field name="QuoteEntryOpen" id="9182" type="BooleanNULL" description="A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are being cancelled on behalf; also to be used to reset such a block on mass quotes being sent by the blocked sender comp " offset="348" semanticType="int"/>
|
||||
<field name="QuoteEntryControl" id="39034" type="BooleanNULL" description="Optional field that allows market makers to block new entries or unblock previously set block. Value is echoed back from inbound customer request" offset="349" semanticType="int"/>
|
||||
<group name="NoQuoteEntries" id="295" description="The number of quote entries. Acknowledged or modified quotes contain order id value" blockLength="20" dimensionType="groupSize">
|
||||
<field name="OrderID" id="37" type="uInt64NULL" description="Order id, corresponding to acknowledged quote entry and side" offset="0" semanticType="int"/>
|
||||
<field name="QuoteEntryID" id="299" type="uInt32" description="Unique identifier for a quote. The QuoteEntryID stays with the quote as a static identifier even if the quote is updated. For fills this value is transposed into client order ID (tag 11)" offset="8" semanticType="int"/>
|
||||
<field name="QuoteSetID" id="302" type="uInt16" description="Quote Set ID" offset="12" semanticType="int"/>
|
||||
<field name="SecurityID" id="48" type="Int32" description="Unique instrument ID " offset="14" semanticType="int"/>
|
||||
<field name="Side" id="54" type="Side" description="Quote side" offset="18" semanticType="int"/>
|
||||
<field name="QuoteEntryRejectReason" id="368" type="uInt8NULL" description="Reason provided for requested quote entries that are rejected" offset="19" semanticType="int"/>
|
||||
</group>
|
||||
</ns2:message>
|
||||
</ns2:messageSchema>
|
||||
@@ -92,7 +92,7 @@ std::tuple<string, string> load_session_keys(const string &session) {
|
||||
}
|
||||
}
|
||||
|
||||
string error = "Failed to find secure logon key for session: " + session;
|
||||
string error = "Failed to find secure logon key for session: " + session+". Looked in path: " + path + "Make sure there is a file in that directory with a line containing the session name, access id, secret key, create date and expiration date (in that order). For example: '1U7,ozXmORijPtJriTg6Wwny,A1KOwrhH8GojNotjkCfVwHRSi_OS280xihaRZwJLFKo,2024-01-01,2024-12-31'";
|
||||
bts_assert_msg(false, error);
|
||||
return {"", ""};
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
namespace bts::utils {
|
||||
|
||||
static inline std::atomic<std::uint16_t> instance_id_counter = 0;
|
||||
static inline std::atomic<std::uint32_t> instance_id_counter = 0;
|
||||
|
||||
template <typename T>
|
||||
class object_pool {
|
||||
std::atomic<std::size_t> count = 0;
|
||||
std::size_t max_count = 128;
|
||||
std::uint16_t instance_id = ++instance_id_counter;
|
||||
std::uint32_t instance_id = ++instance_id_counter;
|
||||
std::size_t log_freq = 0;
|
||||
std::string name;
|
||||
boost::object_pool<T> pool;
|
||||
@@ -27,13 +27,17 @@ class object_pool {
|
||||
|
||||
void set_max_count(std::size_t value) { max_count = value; }
|
||||
|
||||
void set_log_freq(std::uint16_t value) { log_freq = value; }
|
||||
void set_log_freq(std::uint32_t value) { log_freq = value; }
|
||||
|
||||
T *construct() {
|
||||
std::size_t n = ++count;
|
||||
bts_assert_msgf(
|
||||
n < max_count, "n < max_count. {} < {}. name: {}; id: {}", n,
|
||||
max_count, name, instance_id);
|
||||
if(n > max_count) {
|
||||
LOG(Gen, Error, "object_pool::construct. name: {}; id: {}; count: {}, max_count: {}",
|
||||
name, instance_id, n, max_count);
|
||||
}
|
||||
// bts_assert_msgf(
|
||||
// n < max_count, "n < max_count. {} < {}. name: {}; id: {}", n,
|
||||
// max_count, name, instance_id);
|
||||
if (log_freq == 0 || n % log_freq == 0) {
|
||||
LOG(Gen, Info, "object_pool::construct. name: {}; id: {}; count: {}",
|
||||
name, instance_id, n);
|
||||
|
||||
Reference in new issue
Block a user