Tentando converter a string para MarketDataIncrementalRefresh
-
12-12-2019 - |
Pergunta
Eu tenho um arquivo de texto com CORREÇÃO de mensagens (todos eles e MarketDataIncrementalRefresh (Tipo X)) e eu estou tentando encontrar uma maneira de utilizar QuickFIX em C# para criar MarketDataIncrementalRefresh mensagens fora das cadeias.
Alguma sugestão?
aqui está um exemplo de como uma linha parecida com:
1128=9 9=263 35=X 49=CME 34=10568699 52=20110110205433535 75=20110110 268=2 279=1 22=8 48=812201 83=1243518 107=GEZ2 269=1 270=9825.0 271=153 273=205433000 336=2 346=14 1023=1 279=122=8 48=812201 83=1243519 107=GEZ2 269=1270=9826.0 271=453 273=205433000 336=2 346=21 1023=3 10=058
Solução
Basicamente, esta é a forma como o seu feito:
string line = sr.ReadLine();
QuickFix42.MessageFactory fac = new QuickFix42.MessageFactory();
QuickFix.MsgType msgType = QuickFix.Message.identifyType(line);
QuickFix.Message message = fac.create("", msgType.getObject() as string);
message.setString(line, false);
A fábrica cria o bom tipo de mensagem, uma vez que sua determinado, então, nesse caso, uma vez que o tipo era um {X}, QuickFix.Mensagem mensagem é um ponteiro para MarketDataIncrementalRefresh e, em seguida, mensagem.setString define o resto da adereços a partir de dado string.
Outras dicas
em Java você pode usar qualquer um
MessageUtils.parse(MessageFactory messageFactory, DataDictionary dataDictionary, java.lang.String messageString)
o objecto de Mensagem em si, veja aqui usando o construtor:
Message(java.lang.String string, DataDictionary dd, boolean validate)
ou o fromString método:
fromString(java.lang.String messageData, DataDictionary sessionDictionary, DataDictionary applicationDictionary, boolean doValidation)
Você deve ser capaz de encontrar coisas semelhantes para quickfix/n
Só eu que achei este, que apenas permite a você criar uma mensagem a partir da cadeia de caracteres usando o construtor.Nunca a menos, isso deve funcionar se você não encontrar o equivalente a acima em sua API.