Как бы я ждал asio :: wawitable за пределами asio ? Asio :: waitableables может быть ожидается только Asio :: awaitables , здесь Boost :: Cobalt вступает в игру, но я не знаю, как его подключить. На базовом уровне я также не уверен, должен ли весь код Asio в клиенте переписать с помощью Cobalt или, если я могу обернуть клиенту кобальтом слоем сверху.
Вот то, что я пытаюсь сделать. У меня есть httpsclient, написанный с помощью Boost :: Beast и Boost :: asio .
Интерфейс должен использовать общую супрутину из кобальта, поэтому остальная часть программы может Co_await , но не нуждается в Asio .
Co_await не нуждается в asio .
cobalt::promise HttpsClient::GET(const std::string &url){
co_return co_await asio_impl.GET(url);
}
< /code>
Asio Impl работает: < /p>
asio::awaitable HttpsClientImpl::GET(std::string_view url, beast::http::fields headers = {})
{
auto data = "";
auto [error, http_response] = co_await redirector_.do_session(http::verb::get, url, headers, data, ssl_ctx_);
if (!error) {
FinalResult fr = http_response->body();
co_return fr;
}
else {
co_return FinalResult();
}
}
< /code>
Вот как я представлял себе, чтобы позвонить в пользовательский интерфейс. На самом деле здесь также проблема с использованием co_await в обработчике сигнала Lambda: Co_main :: 2 :: :: operator (): должен вернуть значение
QObject::connect(button, &QPushButton::clicked, &w, [&](){
std::string url = "https://microsoftedge.github.io/Demos/j ... /64KB.json";
label->setText("Getting response...");
FinalResult result = co_await client.GET(url);
label->setText("Response ready!");
text->setPlainText(QString::fromStdString(result));
});
Подробнее здесь: https://stackoverflow.com/questions/796 ... ith-cobalt
Как Co_await asio :: ожидается с кобальтом ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1747563986
Anonymous
Как бы я ждал asio :: wawitable за пределами asio ? Asio :: waitableables может быть ожидается только Asio :: awaitables , здесь Boost :: Cobalt вступает в игру, но я не знаю, как его подключить. На базовом уровне я также не уверен, должен ли весь код Asio в клиенте переписать с помощью Cobalt или, если я могу обернуть клиенту кобальтом слоем сверху.
Вот то, что я пытаюсь сделать. У меня есть httpsclient, написанный с помощью Boost :: Beast и Boost :: asio .
Интерфейс должен использовать общую супрутину из кобальта, поэтому остальная часть программы может Co_await , но не нуждается в Asio .
Co_await не нуждается в asio .
cobalt::promise HttpsClient::GET(const std::string &url){
co_return co_await asio_impl.GET(url);
}
< /code>
Asio Impl работает: < /p>
asio::awaitable HttpsClientImpl::GET(std::string_view url, beast::http::fields headers = {})
{
auto data = "";
auto [error, http_response] = co_await redirector_.do_session(http::verb::get, url, headers, data, ssl_ctx_);
if (!error) {
FinalResult fr = http_response->body();
co_return fr;
}
else {
co_return FinalResult();
}
}
< /code>
Вот как я представлял себе, чтобы позвонить в пользовательский интерфейс. На самом деле здесь также проблема с использованием co_await в обработчике сигнала Lambda: Co_main :: 2 :: :: operator (): должен вернуть значение
QObject::connect(button, &QPushButton::clicked, &w, [&](){
std::string url = "https://microsoftedge.github.io/Demos/json-dummy-data/64KB.json";
label->setText("Getting response...");
FinalResult result = co_await client.GET(url);
label->setText("Response ready!");
text->setPlainText(QString::fromStdString(result));
});
Подробнее здесь: [url]https://stackoverflow.com/questions/79627354/how-to-co-await-asioawaitable-with-cobalt[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия