From: "Виктор С. Грищенко" <gritzko@post.dcn.ru> To: "sisyphus@altlinux.ru" <sisyphus@altlinux.ru> Subject: [sisyphus] GNU mailutils & maildrop Date: Wed, 15 Oct 2003 20:13:50 +0600 Message-ID: <200310152013.50621.gritzko@post.dcn.ru> (raw) Здравствуйте! Понадобился мне 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 - функция. Реализуем таблицу виртуальных функций, таким образом. СТРАУСТРУПП ПОЛЫСЕЛ НАПРАСНО!!! -- Виктор С. Грищенко Отогнав врагов, Бэнкей явился перед господином и, держа алебарду под мышкой, сказал: - Вот и я. Судья Ёсицуне читал восьмую книгу "Лотосовой сутры". Он спросил: - Как дела?
next reply other threads:[~2003-10-15 14:13 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2003-10-15 14:13 Виктор С. Грищенко [this message] 2003-10-15 15:15 ` Dmitry V. Levin 2003-10-15 17:42 ` [sisyphus] [JT] " Serge Pavlovsky
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=200310152013.50621.gritzko@post.dcn.ru \ --to=gritzko@post.dcn.ru \ --cc=sisyphus@altlinux.ru \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git