Колбек указывает только на порядковый номер обновлённой свечки в источнике данных, но не указывает к какому источнику данных она принадлежит. Проблематично при открытии нескольких источников данных с колбеками.
_DS = {}
function cb(index, secCode, param)
local id = secCode.."_"..param
local ds = _DS[id]
if ds == nil then
msg("DS was empty")
return
end
local price = ds:C(index)
--здесь целевой код колбека
end
function Subscribe(secCode, classCode, param)
local ds = nil
local err = nil
local id = secCode.."_"..param
if _DS[id] ~= nil then
msg("<"..id.."> Already req")
return
end
if param == "last" then
ds,err = CreateDataSource(classCode, secCode, INTERVAL_D1)
else
ds,err = CreateDataSource(classCode, secCode, INTERVAL_D1, param)
end
msg("Subscribe: <"..secCode..":"..param.."> is: "..tostring(ds))
if err ~= nil then
msg("Err: "..err)
return nil
end
ds:SetUpdateCallback(
function(idx)
cb(idx, secCode, param)
end
)
_DS[id] = ds
return ds
end
Можно лямбдами бахать но это принуждает копипастить замыкания повсюду. Гораздо лучше когда можно объявить колбек и отправлять его в датасорс, и при вызове он сам объявит к какому датасорсу он принадлежит.
Код
local function tickerUpdateCallback ( datasource, candle )
foo( datasource )
bar ( datasource, candle )
if xyz then baz ( datasource, candle ) end
end
CreateDataSource ( 'TQBR', 'FOO', INTERVAL_TICK ):SetUpdateCallback ( tickerUpdateCallback )
CreateDataSource ( 'TQBR', 'BAR', INTERVAL_TICK ):SetUpdateCallback ( tickerUpdateCallback )
CreateDataSource ( 'TQBR', 'BAZ', INTERVAL_TICK ):SetUpdateCallback ( tickerUpdateCallback )
swerg написал: Что за умопомешательство на этом https ??
Это хорошо для конечного юзера - весь трафик пересылается с шифрованием на уровне транспорта, сделанным профессионалами в этом деле, а не наколхозенным полуграмотным админом сайта. Утащить пароль или сессионный куки сниффером теперь весьма затруднительно.
Затем, это хорошо для производителей железа, криптография штука затратная, и вот уже юзер бежит за новым процессором. Особенно серверный юзер, за особенно дорогим процессором.
Затем, продажа сертификатов - отличный бизнес в стиле торговли воздухом.
Затем, это неистощимая тема для научных статей, типа гонки вооружений, одни ломают, другие укрепляют, можно вечно на этом гранты пилить.
Затем, это хлебушек для программистов, все эти изобретения надо кодить, и опасность демпинга минимальная, юные дарования ниасилят, а когда осилят, уже и сами ценник вывесят правильный.
Затем, кое-кто, может быть, имеет закладочки в сертифицированных алгоритмах, ну чисто так на всякий случай, а на фоне всеобщей уверенности, что прям вот оно тысячелетий для взлома требует, это очень удобно.
Затем, кое-какие реализации тихонько запрашивают юзерский сертификат, а кое-какие его тихонько отправляют. Можно сказать, человек с развернутым паспортом в интернет ходит. Еще удобнее.
swerg написал: Что за умопомешательство на этом https ??
Ну вы же всякую дрянь с пола не едите, не так ли? В открытом канале, скачаю я например, скрипт у Михаэля. А провайдер подбросит мне пару лишних строк. А пару поменяет. А я в этом не разбираюсь и не замечу. А скрипт уже работает чуточку не так...
Цитата
Anton написал: Затем, это хорошо для производителей железа, криптография штука затратная, и вот уже юзер бежит за новым процессором. Особенно серверный юзер, за особенно дорогим процессором.
Для высоконагруженного сервера может быть это оказывает ощутимое значение. Для stand-alone сайтов на полузабытых площадках - вряд-ли. А клиент вообще не замечает разницы.
Цитата
Anton написал: Затем, это хлебушек для программистов, все эти изобретения надо кодить, и опасность демпинга минимальная, юные дарования ниасилят, а когда осилят, уже и сами ценник вывесят правильный
Там же цена вопроса три клика. Я имею ввиду добавить на сайт хттпс, а не реализацию ssl :)
Цитата
Anton написал: Затем, кое-кто, может быть, имеет закладочки в сертифицированных алгоритмах, ну чисто так на всякий случай
Отдельный доступ для тов.майора, кмк, куда лучше открытого канала для всех
Цитата
Anton написал: Затем, кое-какие реализации тихонько запрашивают юзерский сертификат, а кое-какие его тихонько отправляют
Ну во-1-х чтобы юзерский сертификат отправить, его нужно иметь. Много ваших знакомых имеют таковой? А во-2-х скрипты, куки и фингерпринты скажут о Вас достаточно для однозначной идентификации.
Imersio Arrigo написал: Я имею ввиду добавить на сайт хттпс, а не реализацию ssl :)
Как раз про реализацию написал.
Цитата
Imersio Arrigo написал: А клиент вообще не замечает разницы.
Забахайте DHE на 4096 бит, несколько секунд будете ждать генерации ключа, а оно ж жужжит там внутри все эти секунды, считает.
Цитата
Imersio Arrigo написал: Отдельный доступ для тов.майора, кмк, куда лучше открытого канала для всех
Не спорю. Тока скорее для сэра кэптайна с эллиптикой наперевес. Наши таки ниасилили, судя по всему, а кузнечик в массы не пошел.
Цитата
Imersio Arrigo написал: Ну во-1-х чтобы юзерский сертификат отправить, его нужно иметь. Много ваших знакомых имеют таковой?
Один точно имеет. Лиха беда начало. Раньше вон люди свое яблоко регистрировали с лозунгом нам неча скрывать, а потом уже как-то раз и если тебе есть чего скрывать, хоть бы из унутренних убеждениев, ты уже и неправильный товарищ и тебя уже надо того. А куки кстати третьепартные надобно отключать, и ежли сайтик не хочет без оных работать, то и нафик такой сайтик. На сегодняшний день уже почти все там, на фике, вот форум квика пока еще отпечатки пальцев не просит. Но он делает больно другим способом )
Кузнечик-то? Не, он ближе к аес по устройству, симметричный. А толку, что гост, браузеры и сервера на него плюют с высокой колокольни, а с тлс 1.3 вообще набор циферей урезан и фиксирован и гостом там не пахнет и не запахнет, судя по всему. Будет в крипто-про, кассы да квик наш любимый, а тут и майору глядеть не на что, он может у брокера отчет попросить без этого всего.
Anton написал: А толку, что гост, браузеры и сервера на него плюют с высокой колокольни, а с тлс 1.3 вообще набор циферей урезан и фиксирован и гостом там не пахнет и не запахнет, судя по всему.
Даже если запахнет, то сертификацию у наших маёров ему не пройти. Вроде есть инструкции, позволяющие openssl собрать с ГОСТом. И говорят что это даже работает. Но я не пробовал. Мне лень.
Imersio Arrigo написал: сертификацию у наших маёров ему не пройти
Недавно минцифры закон выкатывало о запрете тлс 1.3 и особенно esni. Потом убрали и кого-то из замминистров уволили. Но esni и без закона не работает, просто чудесным образом пакетики бьются и соединение фейлит. Никто не виноват, случайность.
Ее и без госта собрать на виндах приключение. Под сертификацию все равно криптопро надо, а без сертификации и гост не нужон. Тксть на этой станции нет пассажиров.
Артем написал: Колбек указывает только на порядковый номер обновлённой свечки в источнике данных, но не указывает к какому источнику данных она принадлежит.
Цитата
Артем написал: Гораздо лучше когда можно объявить колбек и отправлять его в датасорс, и при вызове он сам объявит к какому датасорсу он принадлежит.
Действительно, приносим свои извинения. Пожелание зарегистрировано, мы постараемся его рассмотреть. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Артем написал: Колбек указывает только на порядковый номер обновлённой свечки в источнике данных, но не указывает к какому источнику данных она принадлежит. Проблематично при открытии нескольких источников данных с колбеками.
Ещё один вариант как можно сделать, здесь упор на то, что мы вольны добавлять столько функций к Датасорсу, сколько нам надо.
Код
stopped = false;
function OnStop()
stopped = true;
end;
function member_callback(dataSource, index)
message("member_callback\n dataSource.size() = " .. tostring(dataSource:Size()) .. ",\n index = " .. tostring(index), 1)
stopped = true
end
function main()
local ds = CreateDataSource ("QJSIM", "SBER", INTERVAL_M1)
ds.member_callback = member_callback
ds:SetUpdateCallback(function(index)
ds:member_callback(index)
end)
while not stopped do
sleep(1)
end
ds:Close()
end
На выходе получается
Код
member_callback
dataSource.size() = 722,
index = 722