Как стать автором
Обновить

Комментарии 7

Скажите пожалуйста, есть ли возможность скомпилировать tdjson Си-компилятором? Я хочу использовать tdlib на старом девайсе, C++ компилятор которого лишь частично поддерживает С++11, не говоря уже о стандарте С++14. Вот думаю, реально ли хотя бы частично использовать ее с С-компилятором.
Боюсь, что нет. В требованиях указан C++14-совместимый компилятор. Но можно попробовать спросить в issues — может быть, есть обходные пути.
Сомневаюсь, что есть обходные пути, лол. Больше 95% написано на чистом C++.
Работа с асинхронными сообщениями/обновлениями в синхронном стиле

Я бы ребята посоветовал реализовать это через промисы/future, что намного удобнее и проще в работе, например

promise = client.broadcast('@type' => 'getAuthorizationState')

result = promise.await

# или

client.broadcast('@type' => 'getAuthorizationState').then { |result| ... }


Тогда не нужно будет городить разные методы для синхронных/асинхронных методов, а иметь единый интерфейс.

Кстати есть отличный нативный гем — 'concurrent-ruby', в котором уже все удобно реализовано.

Если будет свободное время кину вам пулл-реквест, если не возражаете :)
Уже сделано в последней версии (через concurrent-ruby):
me = client.broadcast('@type' => 'getMe').then { |result| puts result }.rescue { |error| puts error }.value

broadcast_and_receive теперь просто вызывает broadcast(payload).value
Отлично. Спасибо!
Гем еще работает?
client.get_me.then { |user| @me = user }.rescue { |err| puts «error: #{err}» }
вылетает по таймауту, но ответ явно приходит в логах. Почему-то он не забирается из TDLib или не пойму в чем беда.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий