Я довольно плохо знаком с продвинутыми техниками программ на C ++, такими как шаблоны, но я разрабатываю простой API для проекта, над которым я работаю.
Функция или метод, который вы вызываете, может занять много временивремя для завершения.По сути, это передача файла по сети.
Это выглядит примерно так.
Client
{
int WriteFile();
int ReadFile();
}
Но я хочу иметь здесь несколько вариантов.
- вызовите WriteFile и сделайте так, чтобы он блокировался.
- Вызовите WriteFileAsync и не блокируйте его.
- В асинхронной версии будьте гибки в том, как я знаю, что задача выполнена.
- Возможность опрашивать клиента, чтобы выяснить, где он находится, с моей текущей операцией чтения или записи.
Я немного растерялся относительно того, как проектироватьэто хорошо в C ++.Требуется избегать использования наддува, но я мог бы использовать подход, подобный наддува.Хотя я просмотрел некоторые заголовки и очень запутался.Что-то кроме базового программирования шаблонов для меня, я нахожу сбивающим с толку.
То, что мне нужно, это хороший способ получать уведомления о завершении события и иметь возможность ждать его завершения.