Size: a a a

Kotlin Community

2020 August 02

AN

Alexander Nozik in Kotlin Community
Сашка Михай
Добрый день!

Столкнулся с одной проблемой и нуждаюсь в помощи. Опишу задачу:
Я в одни reqest-e получаю объект содержащий 4 переменных типа String(email,username,displayname,data) мне нужно взять лишь email из данного объекта для использования второго reqest-a так как для него нужен Auth and email.

Как я могу это сделать?
Не понятно, что за request и в чем проблема?
источник

СМ

Сашка Михай... in Kotlin Community
Alexander Nozik
Не понятно, что за request и в чем проблема?
“@GET”
источник

AN

Alexander Nozik in Kotlin Community
То есть это спринг flux правильно?
источник

AN

Alexander Nozik in Kotlin Community
А не, вру, это вообще jboss. Как мы могли об этом догадаться, интересно
источник

СМ

Сашка Михай... in Kotlin Community
Alexander Nozik
То есть это спринг flux правильно?
Я знаю что это называться reqest использую retrofit
источник

AN

Alexander Nozik in Kotlin Community
Сашка Михай
Я знаю что это называться reqest использую retrofit
В общем, не знаю как вам помочь, пока вы вопрос не доформулируете. Указание на либу, о которой речь - это уже хорошо.
источник

K

Kirill in Kotlin Community
Сашка Михай
Добрый день!

Столкнулся с одной проблемой и нуждаюсь в помощи. Опишу задачу:
Я в одни reqest-e получаю объект содержащий 4 переменных типа String(email,username,displayname,data) мне нужно взять лишь email из данного объекта для использования второго reqest-a так как для него нужен Auth and email.

Как я могу это сделать?
Первый запрос -> получил email -> второй запрос с email
источник

AN

Alexander Nozik in Kotlin Community
Kirill
Первый запрос -> получил email -> второй запрос с email
В чем вопрос? Выполняете один запрос. Сохраняете нужные вам данные, потом выполняете второй.
источник

EP

Eugene P. in Kotlin Community
Constantine Cerberus
Такой вопрос пример есть устройство ввода отсылает пакеты данных в виде стрима который нужно прочитать и разбить на пакеты данных в соответствии с протоколом , тоисть на в ходе есть инпут стрим  а на выходе пакеты причем стрим не всегда за раз присылает полный пакет так как он ограничен по скорости  на данный момент при сборке он в callback присылает готовый пакет данных по мере поступления данных и возможности собрать полный пакет из стрима ,  все работает и работает хорошо но хотелось бы переехать на то что более легче в юнит тестах , вопрос как бы вы реализовали эту ситуацию или бы оставили все как есть заранее спасибо
Сделать собственный оператор буфферинга для flow, у которого будет какая-то функция определяющая конец пакета и отправляющая накопленные данные дальше
источник

AN

Alexander Nozik in Kotlin Community
Eugene P.
Сделать собственный оператор буфферинга для flow, у которого будет какая-то функция определяющая конец пакета и отправляющая накопленные данные дальше
Вот прям вот минуту назад начал его писать. Но это совсем не простая штука
источник

EP

Eugene P. in Kotlin Community
Alexander Nozik
Вот прям вот минуту назад начал его писать. Но это совсем не простая штука
Как пример реализация bufferTimeout из интернета. Вместо размера и таймаута использовать функцию предикат. Должно быть не сложно
источник

AN

Alexander Nozik in Kotlin Community
Eugene P.
Как пример реализация bufferTimeout из интернета. Вместо размера и таймаута использовать функцию предикат. Должно быть не сложно
Довольно сложно если учесть, что разделитель может быть внутри блока. Плюс надо минимизировать копирования. Ничего невозможного, конечно.
источник

EP

Eugene P. in Kotlin Community
Alexander Nozik
Довольно сложно если учесть, что разделитель может быть внутри блока. Плюс надо минимизировать копирования. Ничего невозможного, конечно.
Тогда блок делится на 2 элемента. Первый уходит в текущем буффере. Второй остаётся для следующего
источник

AN

Alexander Nozik in Kotlin Community
Надо проверять каждый блок на разделитель, плюс надо проверить не попал ли разделитель частью в прошлый блок, частью в следующий. Потом надо стереть уже отправленный блока и оставить хвост нового. В общем сильно сложнее, чем timeout, но doable.
источник

AN

Alexander Nozik in Kotlin Community
В старом варианте у меня посимвольно проверялось все, сейчас посмотрю, можно ли поблочно.
источник

EP

Eugene P. in Kotlin Community
Alexander Nozik
Надо проверять каждый блок на разделитель, плюс надо проверить не попал ли разделитель частью в прошлый блок, частью в следующий. Потом надо стереть уже отправленный блока и оставить хвост нового. В общем сильно сложнее, чем timeout, но doable.
Как вариант это может делать в дополнение к предикату входящая функция разделитель. На выходе она может давать список пакетов с флагом завершения проверяемые предикатом. Дальше отправлять только завершенные пакеты.
источник

AN

Alexander Nozik in Kotlin Community
Eugene P.
Как вариант это может делать в дополнение к предикату входящая функция разделитель. На выходе она может давать список пакетов с флагом завершения проверяемые предикатом. Дальше отправлять только завершенные пакеты.
Ну примерно так и делается. Просто надо еще соптимизировать, чтобы миллион раз массивы не копировть
источник

AN

Alexander Nozik in Kotlin Community
сейчас допишу - скину код
источник

CC

Constantine Cerberus in Kotlin Community
Alexander Nozik
Надо проверять каждый блок на разделитель, плюс надо проверить не попал ли разделитель частью в прошлый блок, частью в следующий. Потом надо стереть уже отправленный блока и оставить хвост нового. В общем сильно сложнее, чем timeout, но doable.
Для такого я сделал Стейт машину
Которая в соответствии со стейтом  и  расрезает на пакеты по мери поступления данных и отсылает готовые и все это по байтово бежит
источник

AN

Alexander Nozik in Kotlin Community
Constantine Cerberus
Для такого я сделал Стейт машину
Которая в соответствии со стейтом  и  расрезает на пакеты по мери поступления данных и отсылает готовые и все это по байтово бежит
Ну про это и речь. Вот я сейчас допишу для кастомного разделителя
источник