in FixAntenna/AdminTool/Commands/Util/CommandUtil.cs [76:160]
public static ExtraSessionParams GetExtraSessionParams(SessionParameters parameters, FixSessionRuntimeState runtimeState)
{
var extraSessionParams = new ExtraSessionParams();
var configuration = parameters.Configuration;
// Extended
extraSessionParams.TargetLocationID = parameters.TargetLocationId;
extraSessionParams.TargetSubID = parameters.TargetSubId;
extraSessionParams.SenderLocationID = parameters.SenderLocationId;
extraSessionParams.SenderSubID = parameters.SenderSubId;
extraSessionParams.HBI = parameters.HeartbeatInterval;
if (!string.IsNullOrWhiteSpace(parameters.SessionQualifier))
{
var qualifierTag = configuration.GetProperty(Config.LogonMessageSessionQualifierTag);
extraSessionParams.LogonMessageSessionQualifierTag = qualifierTag;
}
// Enabled for initiator only
var storage = configuration.GetProperty(Config.StorageFactory);
if (storage != null)
{
if (storage.Equals(typeof(InMemoryStorageFactory).FullName))
{
extraSessionParams.StorageType = StorageType.TRANSIENT;
}
else if (storage.Equals(typeof(MmfStorageFactory).FullName))
{
extraSessionParams.StorageType = StorageType.PERSISTENTMM;
}
else if (storage.Equals(typeof(SlicedFileStorageFactory).FullName))
{
extraSessionParams.StorageType = StorageType.SPLITPERSISTENT;
}
else
{
extraSessionParams.StorageType = StorageType.PERSISTENT;
}
}
else
{
extraSessionParams.StorageType = StorageType.PERSISTENT;
}
extraSessionParams.EnableMessageRejecting = configuration.GetPropertyAsBoolean(Config.EnableMessageRejecting, false);
var maxMessagesAmountInBunch = configuration.GetPropertyAsInt(Config.MaxMessagesToSendInBatch, 1, int.MaxValue, false);
if (maxMessagesAmountInBunch > 0)
{
extraSessionParams.MaxMessagesAmountInBunch = maxMessagesAmountInBunch;
}
extraSessionParams.EncryptMethod = EncryptMethod.NONE;
extraSessionParams.ClientType = ClientType.GENERIC;
var autoReconnectAttempts = configuration.GetPropertyAsInt(Config.AutoreconnectAttempts);
extraSessionParams.ReconnectMaxTries = autoReconnectAttempts;
extraSessionParams.ForcedReconnect = autoReconnectAttempts >= 0;
extraSessionParams.DisableTCPBuffer = !configuration.GetPropertyAsBoolean(Config.EnableNagle);
// Sequence Numbers
extraSessionParams.InSeqNum = GetInSeqNum(parameters, runtimeState);
extraSessionParams.OutSeqNum = GetOutSeqNum(parameters, runtimeState);
if (parameters.ForceSeqNumReset == ForceSeqNumReset.Always)
{
extraSessionParams.ForceSeqNumReset = Fixicc.Message.ForceSeqNumReset.ALWAYS;
}
else if (parameters.ForceSeqNumReset == ForceSeqNumReset.OneTime)
{
extraSessionParams.ForceSeqNumReset = Fixicc.Message.ForceSeqNumReset.ON;
}
else
{
extraSessionParams.ForceSeqNumReset = Fixicc.Message.ForceSeqNumReset.OFF;
}
// Security
var username = parameters.OutgoingLoginMessage.GetTagValueAsString(553);
extraSessionParams.Username = username;
var password = parameters.OutgoingLoginMessage.GetTagValueAsString(554);
if (password != null)
{
extraSessionParams.Password = password;
}
return extraSessionParams;
}