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

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

Реклама

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

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

Код метода write_limit() может показаться не совсем понятным, но такова общая схема Perl для получения или установки переменной состояния в объекте Perl. Если метод вызыва­ется без параметров, он возвращает значение переменной состояния write_limit. В ином случае он использует переданный параметр для обновления значения переменной состояния write_limit.

Строки 47-51. Метод set_choke () позволяет получить или установить подпрограмму обратного вызова, которая вызывается при превышении предельного размера выходного буфера. Структура этого метода аналогична методу write_limit ().

В качестве параметра ожидается получение ссылки на код, и в более тщательно подготов­ленной реализации этого метода можно было предусмотреть проверку того, что это дейст­вительно так.

Строки 52-60. Метод write (), постановка данных в очередь. Теперь мы подошли к более интересной части модуля. Метод write () отвечает за отправку данных через дескриптор. Ес­ли часть или все данные не могут быть отправлены немедленно, то они ставятся в очередь в буфере outbuffer для последующей отправки.

Метод write () может быть вызван с одним параметром, который содержит передаваемые данные, как в форме $session->write($data), или без параметров, как в форме $session->write(). В последнем случае метод пытается отправить все данные, которые были поставлены в очередь после предыдущих попыток отправки.

Выполнение метода начинается с выборки объекта из стека подпрограммы и дополнительной проверки того, что определены дескриптор файла и буфер outbuffer. Если эта проверка вы­полнена успешно и вызывающая процедура требует поставить в очередь для вывода допол­нительные данные, эти данные добавляются к буферу outbuffer. Обратите внимание, что outbuffer может увеличиваться в размерах в соответствии с объемом данных, передавае­мых методу write (). Лимит записи вступает в силу только после того, как объект IO::SessionData будет отмечен как готовый для чтения или записи дополнительных данных.



2014-09-02 01:05:39

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


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


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


РЕКОМЕНДУЕМ

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