Повышение:: asio async_wait подпись обработчика

Я думаю, что существуют различные способы сделать это. Так как я не знаком с asp, я могу только дать Вам некоторые подсказки для проверки на определенный тип файла:

1) безопасный путь: получите больше информаций о заголовке типа файла, который Вы хотите передать. проанализируйте загруженный файл и сравните заголовки

2) быстрый путь: разделите название файла в две части-> название файла и окончание файла. проверьте окончание файла и сравните его с типом файла, Вы хотите позволить быть загруженными

надежда, которой это помогает:)

6
задан NmdMystery 12 January 2014 в 19:59
поделиться

2 ответа

Как вы правильно заметили, метод async_wait принимает функцию обработчика, которая принимает один параметр (const boost::system::error_code&). Но в примере Timer.4 вызов async_wait передается через boost bind следующим образом:

timer_.async_wait(boost::bind(&printer::print, this));

The boost::bind возвращает объект функции, который ссылается на метод print для класса print для объекта, на который ссылается this. Объект этой функции вызывается методом async_wait с параметром ошибки (так как это та сигнатура, которую он ожидает). Но параметр ошибки игнорируется, так как на него не ссылается bind.

Официальная boost::bind документация предоставляет более подробную информацию по boost::bind. Смотрите также статью How the Boost Bind Library Can Improve Your C++ Programs (возможно, есть еще много статей, но я нашел эту статью очень полезной)

.
12
ответ дан 8 December 2019 в 17:23
поделиться

Вы указываете в вызове async_wait, какие параметры принимает ваша функция обратного вызова, используя заполнители. Проверьте предложение непосредственно над вызовом async_wait на странице, на которую вы ссылаетесь:

Вы заметите, что заполнитель boost :: asio :: placeholder :: error здесь не указан, поскольку функция-член print не принимает объект ошибки в качестве параметра.

Найдите «заполнитель» в этом примере , и вы увидите, как это сделать.

2
ответ дан 8 December 2019 в 17:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: