Mikhail Sukhov
|
Date: 9/16/2011
Alexander Какие у кого предложения по структуре? Метаданные (по сути под этим можно считать только наследники от PlazaColumns) нужно отвязать от PlazaTable. Далее, или убрать TableRegistry, или убрать StreamRegistry. Use cases: Code
var trader1 = new PlazaTrader();
trader1.FutureTable.Columns.Add(PlazaFututeColumns.Volatility);
var trader2 = new PlazaTrader();
trader2.OptionTable.Columns.Add(PlazaOptionColumns.Volatility);
Code
var trader1 = new PlazaTrader();
trader1.StartExport(trader1.FutureTable);
var trader2 = new PlazaTrader();
trader2.StartExport(trader2.OptionTable);
Code
var trader = new PlazaTrader();
// или
var stream = trader.StartExport(PlazaTableRegistry.Smile);
stream.NewData +=
// или
var stream = trader.StreamRegistry.Smile;
stream.NewData +=
trader.StartExport(trader.StreamRegistry);
Второй вариант мне нравится больше. Соответственно если оставляем реестр стримов, то первые 2 кейса переделываем на использование trader.StreamRegistry
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 9/16/2011
1) Как раз уже стал переделывать под второй вариант, мне он тоже больше нравится. PlazaTrader знает только о StreamRegistry, причём именно так: Code
var stream = trader.StreamRegistry.Smile;
stream.NewData +=
trader.StartExport(trader.StreamRegistry);
ведь не надо забывать о необходимости нескольких подключений - static классов быть не должно. 2) PlazaTable тоже уже стал удалять из всех метаданных, столкнулся с проблемой рефлектора - GetAllMetadata выкидывает exception. 3) Необходимо удалить TableRegistry, как тогда будет работать Stream без знаний о текущей таблице?
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 9/16/2011
Alexander 2) PlazaTable тоже уже стал удалять из всех метаданных, столкнулся с проблемой рефлектора - GetAllMetadata выкидывает exception.
3) Необходимо удалить TableRegistry, как тогда будет работать Stream без знаний о текущей таблице? 2. Через reflection идет инициализация текущей структуры. Тоесть если ты что-то со структурой классов делаешь то и рефлекшен тебе нужно изменить. 3. Так же как и сейчас, через PlazaStream.Table.
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 9/16/2011
Mikhail Sukhov 3. Так же как и сейчас, через PlazaStream.Table. Code
streams.Add(Aggregation20FutureStream = new PlazaStream(
new PlazaTable(PlazaTableSystemName.OrdersAggr, ReplicationStream.Aggr20Future, "Фьючерсы: стакан глубиной 20 котировок")
));
?
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 9/16/2011
Alexander Mikhail Sukhov 3. Так же как и сейчас, через PlazaStream.Table. Code
streams.Add(Aggregation20FutureStream = new PlazaStream(
new PlazaTable(PlazaTableSystemName.OrdersAggr, ReplicationStream.Aggr20Future, "Фьючерсы: стакан глубиной 20 котировок")
));
? Да, думаю так и нужно сделать... Может еще проверишь заодно, влияет ли как-нибудь на производительность кол-во созданных стримов (не активных, тоесть данные по ним не текут).
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 9/16/2011
Текущие таски: 1) избавиться от перегруженности текущей структуры классов - TableRegistry, ColumnRegistry, StreamRegistry; 2) убрать зависимость метаданных от Table; 3) убрать статические классы; 4) протестировать возможность подключения и получения данных по нескольким логинам.
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 9/19/2011
Рефакторинг сделал.
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 9/19/2011
Mikhail Sukhov Рефакторинг сделал. Сейчас добавление столбцов происходит после инициализации PlazaStream, в связи с этим возникают проблемы в PlazaRecord. P.S. fixed. Но данные всё равно не поступают.
|
|
Thanks:
|
|
|
|
|
FiNick
|
Date: 9/21/2011
Mikhail Sukhov Рефакторинг сделал. Компилил последние исходники, тестил, существующие проблемы не решены: большие задержки при выставлении заявок, загрузка проца под 100% после дисконнекта. Там еще ошибка на SimpleGUI вылетает при подключении(запостил в другой теме).
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 9/22/2011
FiNick Mikhail Sukhov Рефакторинг сделал. Компилил последние исходники, тестил, существующие проблемы не решены: большие задержки при выставлении заявок, загрузка проца под 100% после дисконнекта. Там еще ошибка на SimpleGUI вылетает при подключении(запостил в другой теме). Поправите? Доступ к исходникам у вас вроде есть :)
|
|
Thanks:
|
|
|
|