Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (36 – Неблокирующий ввод-вывод, часть 40)

предыдущая часть ««»» следующая часть

Как и в модуле IO::Getline, в модуле IO::LineBufferedSessionData применяется принцип ведения внутреннего буфера данных для хранения частично обрабо­танных строк. При вызове метода getline () этого модуля вначале в этом буфере выполняется поиск полной строки текста. Если таковая будет найдена, то метод getline () ее возвращает. В ином случае он вызывает функцию sysread () для добавления данных к концу буфера и снова предпринимает такую же попытку.

Однако сопровождение внутреннего буфера приводит к таким же проблемам, как и при использовании стандартных функций ввода-вывода в сочетании с функ­цией select (). Вызов функции select () может указывать, что нет новых данных для чтения из дескриптора, тогда как фактически в буфере хранится полная строка текста. Это значит, что необходимо немного изменить способ применения функции select(). Это сделано путем создания IO::LineBufferedSet , подкласса класса IO::Session Set, откорректированного в целях обеспечения его правильной работы с классом IO::LineBufferedSessionData. В классе IO::LineBufferedSet перекрыт метод wait () родительского класса.

В методе wait () предусмотрен вызов метода sessions () для получения списка контролируемых объектов сеансов. Затем выполняется фильтрация этого списка путем вызова нового метода has_buffered_data (), который возвращает истинное значение, если внутренний буфер данных метода getline () содержит одну или несколько полных строк, предназначенных для чтения.



2014-09-21 02:53:59

это интересно
Разнообразие предложений по созданию и продвижению сайтов зачастую ставят под вопрос к кому же стоит обратиться. Веб-студия Махаон выполняет создание сайтов Киев и предлагает обширный спектр услуг по разработке и сопровождению проектов. Оптимальные цены и высокое качество дополнительно порадуют клиентов.

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония