protected Hashtable CreateWriterMap() { Hashtable result = new Hashtable(); Writer w1 = new OnePassWriter(this); Writer w2 = new FixWriter(this); Writer w3 = new HeapWriterWithTempTable(this); Writer w4 = new HeapWriter(this); Writer w5 = new HeapWriterWithTempTable(this); Writer w6 = new PadWriter(this); // have nrows, have strings, destination seekable, write mode result.Add(new Config(true, true, true, StringWriteMode.TRUNCATE), w1); result.Add(new Config(true, true, true, StringWriteMode.HEAP), w4); result.Add(new Config(true, true, true, StringWriteMode.PAD), w6); result.Add(new Config(true, true, false, StringWriteMode.TRUNCATE), w1); result.Add(new Config(true, true, false, StringWriteMode.HEAP), w5); result.Add(new Config(true, true, false, StringWriteMode.PAD), w6); result.Add(new Config(true, false, true, StringWriteMode.TRUNCATE), w1); result.Add(new Config(true, false, true, StringWriteMode.HEAP), w1); result.Add(new Config(true, false, true, StringWriteMode.PAD), w1); result.Add(new Config(true, false, false, StringWriteMode.TRUNCATE), w1); result.Add(new Config(true, false, false, StringWriteMode.HEAP), w1); result.Add(new Config(true, false, false, StringWriteMode.PAD), w1); result.Add(new Config(false, true, true, StringWriteMode.TRUNCATE), w2); result.Add(new Config(false, true, true, StringWriteMode.HEAP), w4); result.Add(new Config(false, true, true, StringWriteMode.PAD), w6); result.Add(new Config(false, true, false, StringWriteMode.TRUNCATE), w3); result.Add(new Config(false, true, false, StringWriteMode.HEAP), w5); result.Add(new Config(false, true, false, StringWriteMode.PAD), w6); result.Add(new Config(false, false, true, StringWriteMode.TRUNCATE), w2); result.Add(new Config(false, false, true, StringWriteMode.HEAP), w2); result.Add(new Config(false, false, true, StringWriteMode.PAD), w2); result.Add(new Config(false, false, false, StringWriteMode.TRUNCATE), w3); result.Add(new Config(false, false, false, StringWriteMode.HEAP), w3); result.Add(new Config(false, false, false, StringWriteMode.PAD), w3); return(result); }
protected Hashtable CreateWriterMap() { Hashtable result = new Hashtable(); Writer w1 = new OnePassWriter(this); Writer w2 = new FixWriter(this); Writer w3 = new HeapWriterWithTempTable(this); Writer w4 = new HeapWriter(this); Writer w5 = new HeapWriterWithTempTable(this); Writer w6 = new PadWriter(this); // have nrows, have strings, destination seekable, write mode result.Add(new Config(true, true, true, StringWriteMode.TRUNCATE), w1); result.Add(new Config(true, true, true, StringWriteMode.HEAP), w4); result.Add(new Config(true, true, true, StringWriteMode.PAD), w6); result.Add(new Config(true, true, false, StringWriteMode.TRUNCATE), w1); result.Add(new Config(true, true, false, StringWriteMode.HEAP), w5); result.Add(new Config(true, true, false, StringWriteMode.PAD), w6); result.Add(new Config(true, false, true, StringWriteMode.TRUNCATE), w1); result.Add(new Config(true, false, true, StringWriteMode.HEAP), w1); result.Add(new Config(true, false, true, StringWriteMode.PAD), w1); result.Add(new Config(true, false, false, StringWriteMode.TRUNCATE), w1); result.Add(new Config(true, false, false, StringWriteMode.HEAP), w1); result.Add(new Config(true, false, false, StringWriteMode.PAD), w1); result.Add(new Config(false, true, true, StringWriteMode.TRUNCATE), w2); result.Add(new Config(false, true, true, StringWriteMode.HEAP), w4); result.Add(new Config(false, true, true, StringWriteMode.PAD), w6); result.Add(new Config(false, true, false, StringWriteMode.TRUNCATE), w3); result.Add(new Config(false, true, false, StringWriteMode.HEAP), w5); result.Add(new Config(false, true, false, StringWriteMode.PAD), w6); result.Add(new Config(false, false, true, StringWriteMode.TRUNCATE), w2); result.Add(new Config(false, false, true, StringWriteMode.HEAP), w2); result.Add(new Config(false, false, true, StringWriteMode.PAD), w2); result.Add(new Config(false, false, false, StringWriteMode.TRUNCATE), w3); result.Add(new Config(false, false, false, StringWriteMode.HEAP), w3); result.Add(new Config(false, false, false, StringWriteMode.PAD), w3); return result; }
/// <summary> /// Отправить данные по условию заявки. /// </summary> /// <param name="writer">Писатель FIX данных.</param> /// <param name="regMsg">Сообщение, содержащее информацию для регистрации заявки.</param> protected override void SendFixOrderCondition(FixWriter writer, OrderRegisterMessage regMsg) { var condition = (QuikOrderCondition)regMsg.Condition; if (condition.Type != null) { writer.Write((FixTags)QuikFixTags.Type); writer.Write((int)condition.Type.Value); } if (condition.StopPriceCondition != null) { writer.Write((FixTags)QuikFixTags.StopPriceCondition); writer.Write((int)condition.StopPriceCondition.Value); } if (condition.ConditionOrderSide != null) { writer.Write((FixTags)QuikFixTags.ConditionOrderSide); writer.Write((int)condition.ConditionOrderSide.Value); } if (condition.LinkedOrderCancel != null) { writer.Write((FixTags)QuikFixTags.LinkedOrderCancel); writer.Write(condition.LinkedOrderCancel.Value); } if (condition.Result != null) { writer.Write((FixTags)QuikFixTags.Result); writer.Write((int)condition.Result.Value); } if (condition.OtherSecurityId != null) { writer.Write((FixTags)QuikFixTags.OtherSecurityCode); writer.Write(condition.OtherSecurityId.Value.SecurityCode); } if (condition.StopPrice != null) { writer.Write((FixTags)QuikFixTags.StopPrice); writer.Write(condition.StopPrice.Value); } if (condition.StopLimitPrice != null) { writer.Write((FixTags)QuikFixTags.StopLimitPrice); writer.Write(condition.StopLimitPrice.Value); } if (condition.IsMarketStopLimit != null) { writer.Write((FixTags)QuikFixTags.IsMarketStopLimit); writer.Write(condition.IsMarketStopLimit.Value); } if (condition.ActiveTime != null) { writer.Write((FixTags)QuikFixTags.ActiveTimeFrom); writer.Write(condition.ActiveTime.Min.UtcDateTime); writer.Write((FixTags)QuikFixTags.ActiveTimeTo); writer.Write(condition.ActiveTime.Max.UtcDateTime); } if (condition.ConditionOrderId != null) { writer.Write((FixTags)QuikFixTags.ConditionOrderId); writer.Write(condition.ConditionOrderId.Value); } if (condition.ConditionOrderPartiallyMatched != null) { writer.Write((FixTags)QuikFixTags.ConditionOrderPartiallyMatched); writer.Write(condition.ConditionOrderPartiallyMatched.Value); } if (condition.ConditionOrderUseMatchedBalance != null) { writer.Write((FixTags)QuikFixTags.ConditionOrderUseMatchedBalance); writer.Write(condition.ConditionOrderUseMatchedBalance.Value); } if (condition.LinkedOrderPrice != null) { writer.Write((FixTags)QuikFixTags.LinkedOrderPrice); writer.Write(condition.LinkedOrderPrice.Value); } if (condition.Offset != null) { writer.Write((FixTags)QuikFixTags.Offset); writer.Write(condition.Offset.ToString()); } if (condition.Spread != null) { writer.Write((FixTags)QuikFixTags.StopSpread); writer.Write(condition.Spread.ToString()); } if (condition.IsMarketTakeProfit != null) { writer.Write((FixTags)QuikFixTags.IsMarketTakeProfit); writer.Write(condition.IsMarketTakeProfit.Value); } }