Russian Qt Forum
Май 29, 2024, 15:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите понять фрагмент кода  (Прочитано 3655 раз)
Андрей80
Гость
« : Октябрь 28, 2009, 14:15 »

Всем привет. Изучал пример библиотеки QT networkchat, стало любопытно, как генерируется сигнал readyRead, оказалось, что класс QTCPSocket унаследован от QAbstractsocket, а тот в свою очередь унаследован от qiodevice. В файле qiodevice.cpp... ничего не понял (до этого мнил себе что синтаксис C/C++ знаю) В частности обнаружил такой фрагмент:
 
Код:
/*!
    \fn QIODevice::readyRead()

    This signal is emitted once every time new data is available for
    reading from the device. It will only be emitted again once new
    data is available, such as when a new payload of network data has
    arrived on your network socket, or when a new block of data has
    been appended to your device.

    readyRead() is not emitted recursively; if you reenter the event loop or
    call waitForReadyRead() inside a slot connected to the readyRead() signal,
    the signal will not be reemitted (although waitForReadyRead() may still
    return true).

    Note for developers implementing classes derived from QIODevice:
    you should always emit readyRead() when new data has arrived (do not
    emit it only because there's data still to be read in your
    buffers). Do not emit readyRead() in other conditions.

    \sa bytesWritten()
*/

как понять вот это \fn QIODevice::readyRead()  и \sa ?

Я понимаю что сигнал генерируется каждый раз когда в устройстве появляются новые данные доступные для чтения, но я не понимаю, КАК и ПОЧЕМУ он генерируется.

Прошу прощения если не в ту ветку написал, но очень интересно.
« Последнее редактирование: Октябрь 28, 2009, 14:46 от Андрей80 » Записан
BRE
Гость
« Ответ #1 : Октябрь 28, 2009, 14:20 »

Я понимаю что сигнал генерируется каждый раз когда в устройстве появляются новые данные доступные для чтения, но я не понимаю, КАК и ПОЧЕМУ он генерируется.
Почитай про класс QSocketNotifier.
Посмотри его реализацию.
Записан
zenden
Гость
« Ответ #2 : Октябрь 28, 2009, 14:55 »

Цитировать
как понять вот это \fn QIODevice::readyRead()  и \sa ?

\fn - функция, \sa - See Also (см. также)

Смотрите соглашение о комментировании Doxygen
http://fay.nm.ru/pmo/doc/use_doxygen.htm
Записан
kirill
Гость
« Ответ #3 : Октябрь 28, 2009, 15:12 »

Наличие коментаторных скобочек не смутило?
/*
Это комментарий епт!
*/
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 20.