boost :: asio простой идентификационный поток - PullRequest
0 голосов
/ 27 апреля 2018

Существует ли класс потоков, предоставляемый boost :: asio для простого синхронного / асинхронного чтения / записи в него?

например.

simple_stream s;
std::size_t bytes_written = s.write_some("test");
std::size_t bytes_read = s.read_some();

Я бы хотел создать несколько портов макетов для замены моего последовательного порта для тестирования, и такой поток помог бы подключить компоненты, работающие с потоками Sync / Async-Read / Write. Я не смог найти ничего релевантного из документации, и я хотел бы также поддержать сопрограммы в асинхронных операциях, которые, кажется, требуют использования asio's detail :: async_result_init. Если возможно, я бы предпочел не писать об этом, если доступно другое решение.

Редактировать:

У меня есть последовательная связь между моим компьютером и другим устройством. Они связываются с определенным протоколом. ПК использует объект PacketDispatcher, который прослушивает AsyncReadStream (в моем случае это serial_port) и использует синтаксический анализатор для определения допустимых пакетов для отправки с использованием данного обратного вызова. У меня есть другой класс, который отправляет команды AsyncWriteStream (в моем случае serial_port). Теперь я хочу эмулировать устройство на моем компьютере, и я хочу, чтобы простой AsyncStream заменил последовательный порт, данный вышеупомянутым классам.

...