Size: a a a

Kotlin Community

2019 December 18

VP

Vladimir Petrakovich in Kotlin Community
Dmitry
А как же? Источник данных - это же обычно сайд эффект, его нельзя засуспендить. Где-то оно должно накапливаться. Или дропаться.
Ну так при засовывании в канал как раз есть выбор - вызывать метод, который suspend, или тот, который дропает, если канал полный
источник

I

Igor in Kotlin Community
Alexander Nozik
Буфер никто не отменял.
ну так и получается, что backpressure фактически делаешь ручками, используя либо буфер, либо дропаешь
источник

AN

Alexander Nozik in Kotlin Community
Igor
ну так и получается, что backpressure фактически делаешь ручками, используя либо буфер, либо дропаешь
Там не надо делать это руками. Будет автоматом работать в зависимости от того, как канал создан. Я к тому, что нет вообще отдельного back-pressure.
источник

VA

Vadim Akhmarov in Kotlin Community
Привет, не подскажите как UShort в ByteArray преобразовать?
источник

I

Igor in Kotlin Community
Alexander Nozik
Там не надо делать это руками. Будет автоматом работать в зависимости от того, как канал создан. Я к тому, что нет вообще отдельного back-pressure.
видимо, мы и говорим об одном и том же) все зависит от того как сделать канал. А после suspend как именно данные из канала забираются? все что есть в буфере?
источник

AN

Alexander Nozik in Kotlin Community
Igor
видимо, мы и говорим об одном и том же) все зависит от того как сделать канал. А после suspend как именно данные из канала забираются? все что есть в буфере?
Вычитывается по мере возможности. Если это стандартный канал с заданным размером, то как только с одного конца кто-то вычитывает, другой отмерзает и принимает следующий элемент
источник

BP

Bogdan Panchenko in Kotlin Community
Vadim Akhmarov
Привет, не подскажите как UShort в ByteArray преобразовать?
Вы ходите шорт на байты разложить ?
источник

BP

Bogdan Panchenko in Kotlin Community
Ну и скорей нужен UByteArray
источник

VA

Vadim Akhmarov in Kotlin Community
да, мне массив из UShort в ByteArray
источник

I

Igor in Kotlin Community
Alexander Nozik
Вычитывается по мере возможности. Если это стандартный канал с заданным размером, то как только с одного конца кто-то вычитывает, другой отмерзает и принимает следующий элемент
Спасибо, а если говорить о BroadcastChannel получается, по факту мы можем иметь различные наборы данных в разных suspend функциях, которые получают из одного канала данные?
источник

VA

Vadim Akhmarov in Kotlin Community
UByteArray не подойдет так как потом после UShort надо и другие типы добавлять, включая знаковые
источник

BP

Bogdan Panchenko in Kotlin Community
Vadim Akhmarov
да, мне массив из UShort в ByteArray
Можно битовыми сдвигами, но тут все зависит о конкретики, без описание задачи сложно сказать
источник

VP

Vladimir Petrakovich in Kotlin Community
Vadim Akhmarov
UByteArray не подойдет так как потом после UShort надо и другие типы добавлять, включая знаковые
Звучит как ByteArrayOutputStream
источник

VA

Vadim Akhmarov in Kotlin Community
Vladimir Petrakovich
Звучит как ByteArrayOutputStream
он и есть, только там write принимает параметр ByteArray)
источник

AO

Alexey Otts in Kotlin Community
Звучит так как будто у вас данные сами backpresure не поддерживают
источник

QH

Quantum Harmonizer in Kotlin Community
Vadim Akhmarov
он и есть, только там write принимает параметр ByteArray)
смотри DataOutputStream, там много вариантов
источник

AO

Alexey Otts in Kotlin Community
Откуда они берутся?
источник

VA

Vadim Akhmarov in Kotlin Community
Quantum Harmonizer
смотри DataOutputStream, там много вариантов
беззнаковые не поддерживает
источник

QH

Quantum Harmonizer in Kotlin Community
Vadim Akhmarov
беззнаковые не поддерживает
джава их вообще не поддерживает
источник

VP

Vladimir Petrakovich in Kotlin Community
Vadim Akhmarov
беззнаковые не поддерживает
Можно приводить к знаковым (toShort()), внутри они одинаковые
источник