Строки 62-70. Метод to_session(). Данный метод выполняет противоположное действие. Выполняется проверка, не является ли параметр объектом IO::Session; если он является таковым, то возвращается в неизменном виде. В ином случае осуществляется проверка параметра с помощью функции fileno ( ) , и если он похож на дескриптор файла, то применяется в качестве ключа хеша sessions для выборки объекта IO::Session, который соответствует данному дескриптору.
Строки 71-92. Метод activate ( ) отвечает за добавление дескриптора файла к соответствующему объекту IO::Select, если объект IO::SessionData, соответствующий этому дескриптору, указывает, что он должен выполнить операцию ввода-вывода. Этот метод может также применяться для перевода дескриптора в неактивное состояние. Первым параметром метода может быть либо объект IO::SessionData, либо дескриптор файла, поэтому его выполнение начинается с вызова метода to_handle () для преобразования параметра (каким бы он ни был) в дескриптор файла. Вторым параметром является одна из строк “read” или “write”. Если это строка “read”, значит, метод применяется к объекту IO::Select, хранящемуся под ключом readers. В ином случае метод применяется к объекту writers. Соответствующий объект IO::Select копируется в локальную переменную.
В зависимости от того, требует ли вызывающая процедура перевести дескриптор в активное или неактивное состояние, данный дескриптор файла либо добавляется к набору IO::Select, либо удаляется из него. В любом случае возвращается предыдущая установка активизации для дескриптора файла.
2014-09-14 14:20:43
это интересно С развитием различных IT технологий важным прогрессивным сегментом на данный день является VoIP. Как известно внедрение ip телефонии в нашу жизнь намного упрощает и удешевляет связь. Еще недавно данная технология использовалась как альтернатива обычной телефонной связи, а теперь с применением передовых кодеков и явным улучшением качества сигнала данный вид используют повсеместно, в том числе и сотовые операторы.