![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
gpepsi |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 73 Регистрация: 31.3.2010 Пользователь №: 1582 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Хочу реализовать наследника QIODevice. Посмотрел QLocalSocket, но что-то там слишком все мудро.
У меня устройство, с которым я могу работать через CreateFile, ReadFile, WriteFile. Для того, чтобы использовать waitForReadyRead - устройство открываю в асинхронном режиме. Переопределил методы
Теперь про
Я не хочу использовать буферизацию. Для них можно использовать GetOverlappedResult, но этот метод можно испозовать, только если операция ввода-вывода уже началась. Теперь ожидание
Для них нужно заводить 2 OVERLAPPED (на чтение и запись). Ожидать можно на WaitForSingleObject. Но эта функция тоже используется на начатой операции ввода-вывода. Как правильно написать код, чтоб можно было бы использовать типа
То есть операция ожидания раньше чем операция опроса состояния и операция чтения. З.Ы. Я тут подумал, если процесс записи примерно такой. write(...); waitForBytesWritten(...); bytesToWrite(...); то вроде все логично получается 1. запускаем операцию ввода-вывода 2. Ожидаем запись по таймауту 3. Проверяем сколько записали если необходимо А вот со чтением сложнее - сначала нужно узнать, что данные есть и сколько. А это получается нельзя сделать до запуска операции ввода-вывода Сообщение отредактировал gpepsi - 12.7.2012, 19:46 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 27.6.2025, 6:01 |