[sisyphus] GNU mailutils & maildrop
Виктор С. Грищенко
=?iso-8859-1?q?gritzko_=CE=C1_post=2Edcn=2Eru?=
Ср Окт 15 18:13:50 MSD 2003
Здравствуйте!
Понадобился мне MDA c поддержкой Sieve, однако Cyrus целиком непремлем - не
нравится его нетривиальный формат хранения. Подходящего варианта нет, дошёл
уже до просмотра исходников с целью установить объём работ по доработке.
Смотрел maildrop. То, что удивило после postfix - довольно сумбурная манера
письма. Общаий подход плоский, С-шный. Однако написано всё на С++ почему-то.
После этого смотрел GNU mailutils. Это просто злой фельетон. Общий подход -
универсальный, объектный, абстрактно-полиморфный. Используются подсчёт ссылок
(простой вариант сборки мусора), события, URI. Написано на С! О, боги!!!
Вот, например, инициализация объекта:
-------поехали-------
int
_mailbox_maildir_init (mailbox_t mailbox)
{
if (mailbox == NULL)
return EINVAL;
/* Overloading the defaults. */
mailbox->_destroy = maildir_destroy;
mailbox->_open = maildir_open;
mailbox->_close = maildir_close;
/* Overloading of the entire mailbox object methods. */
mailbox->_get_message = maildir_get_message;
mailbox->_append_message = maildir_append_message;
mailbox->_messages_count = maildir_messages_count;
mailbox->_messages_recent = maildir_messages_recent;
mailbox->_message_unseen = maildir_message_unseen;
mailbox->_expunge = maildir_expunge;
mailbox->_save_attributes = maildir_save_attributes;
mailbox->_uidvalidity = maildir_uidvalidity;
mailbox->_uidnext = maildir_uidnext;
mailbox->_scan = maildir_scan;
mailbox->_is_updated = maildir_is_updated;
mailbox->_get_size = maildir_get_size;
return 0; /* okdoke */
}
-------приехали-------
Это Maildir, реализация абстрактного хранилища почты.
Этакий конструктор: mailbox->_get_size - указатель на функцию,
maildir_get_size - функция. Реализуем таблицу виртуальных функций, таким
образом.
СТРАУСТРУПП ПОЛЫСЕЛ НАПРАСНО!!!
--
Виктор С. Грищенко
Отогнав врагов, Бэнкей явился перед господином и, держа алебарду
под мышкой, сказал:
- Вот и я.
Судья Ёсицуне читал восьмую книгу "Лотосовой сутры". Он спросил:
- Как дела?
Подробная информация о списке рассылки Sisyphus