xio.dll
Умеет читать с
http, ftp, cddb. Причем с позиционированием по файлу и
read-ahead буффером. Эмулирует функции работы с файлом. Т.е.
вместо использования fopen, fread, fwrite - используешь
xio_fopen, xio_fread и т.п. Я смотрю, что для многих заданий
ecolabs она бы пригодилась.
Что умеет XIO / Features
1. Чтение с HTTP (в том числе icecast и shoutcast)
2. Чтение с FTP
3. Чтение с CDDB (тоже ведь может понадобиться)
3. Перемещение по файлу. Т.е. возможна докачка файлов.
4. Имеет опциональный read-ahead буфер.
6. При использовании буфера динамически управляет приоритетом
треда чтения данных, чтобы обеспечить равномерное поступление данных.
7. Возможно рулить тайм-аутом подключения.
8. Работает через HTTP/FTP прокси (типа сквида)
9. Имеет интерфейс, базирующийся на C runtime. Т.е. имеет набор
функций вида: xio_fopen, xio_fread, xio_fclose и т.п.
(всего около 40 функций)
10. Достаточно легкое подключение новых протоколов.
Область применения:
где-то это крутые понты (типа, как для PM123 возможность играть файлы с FTP), а где то - крайне необходимая вещь.
- Любая программа легким движением руки разработчика сможет открыть файло с фтп или http.
- движок для download managera, причем многопоточного
- движок для утилиты синхронизации файлов на фтп (есть у вас в задании)
- если есть сорцы dsync и они на c, можно быстро добавить возможность использования его с FTP...
- да, shoutcast и icecast - оно тоже умеет
(icecast - почти тоже самое, доп поля там только в http хидере. а в shoutcast в поток данных вплетаются
информационные теги.)
- вот представь, сделали, к примеру, todo менеджер. А он могет хранить файлы на ftp. Т.е. опаньки - и дома
и на работе одна и таже инфа. Дешево и сердито. И, главное, современно.
Restrictions
Чего не умеет и не будет уметь, если останется в рамках PM123:
- 1. Получение списка файлов.
- 2. Запись на HTTP и FTP.
Todo:
- Там добавить файлы > 4GB и запись на FTP и HTTP.
- мультиязычность для сообщений об ошибках...
- (надо добавить > 4GB, запись на FTP и HTTP, и какие то аналоги
DosFinFirst/DosFindNext):
Вопросы:
- Чтение запись на FTP.. получается можно легко делать FTP-клиентов
- А что такое чтение http с помощью fread, а запись разве бывает fwrite??
|