Updated account definition, added rss.c placeholder

This commit is contained in:
Pierre Pronchery 2006-11-03 07:30:36 +00:00
parent d05a0de5a6
commit d404678bc7
7 changed files with 86 additions and 6 deletions

View File

@ -1,4 +1,4 @@
TARGETS = mbox.a mbox.so pop3.a pop3.so imap4.a imap4.so
TARGETS = mbox.a mbox.so pop3.a pop3.so imap4.a imap4.so rss.a rss.so
PREFIX = /usr/local
DESTDIR =
LIBDIR = $(PREFIX)/lib
@ -36,17 +36,28 @@ imap4.a: $(imap4_OBJS)
imap4.so: $(imap4_OBJS)
$(LD) -o imap4.so $(imap4_OBJS)
mbox.o: mbox.c
rss_OBJS = rss.o
rss_CFLAGS = $(CFLAGSF) $(CFLAGS)
rss.a: $(rss_OBJS)
$(AR) rss.a $(rss_OBJS)
$(RANLIB) rss.a
rss.so: $(rss_OBJS)
$(LD) -o rss.so $(rss_OBJS)
mbox.o: mbox.c account.h
$(CC) $(mbox_CFLAGS) -c mbox.c
pop3.o: pop3.c
pop3.o: pop3.c account.h
$(CC) $(pop3_CFLAGS) -c pop3.c
imap4.o: imap4.c
imap4.o: imap4.c account.h
$(CC) $(imap4_CFLAGS) -c imap4.c
rss.o: rss.c account.h
$(CC) $(rss_CFLAGS) -c rss.c
clean:
$(RM) $(mbox_OBJS) $(pop3_OBJS) $(imap4_OBJS)
$(RM) $(mbox_OBJS) $(pop3_OBJS) $(imap4_OBJS) $(rss_OBJS)
distclean: clean
$(RM) $(TARGETS)
@ -59,6 +70,8 @@ install: all
$(INSTALL) -m 0755 pop3.so $(DESTDIR)$(LIBDIR)/pop3.so
$(INSTALL) -m 0644 imap4.a $(DESTDIR)$(LIBDIR)/imap4.a
$(INSTALL) -m 0755 imap4.so $(DESTDIR)$(LIBDIR)/imap4.so
$(INSTALL) -m 0644 rss.a $(DESTDIR)$(LIBDIR)/rss.a
$(INSTALL) -m 0755 rss.so $(DESTDIR)$(LIBDIR)/rss.so
uninstall:
$(RM) $(DESTDIR)$(LIBDIR)/mbox.a
@ -67,5 +80,7 @@ uninstall:
$(RM) $(DESTDIR)$(LIBDIR)/pop3.so
$(RM) $(DESTDIR)$(LIBDIR)/imap4.a
$(RM) $(DESTDIR)$(LIBDIR)/imap4.so
$(RM) $(DESTDIR)$(LIBDIR)/rss.a
$(RM) $(DESTDIR)$(LIBDIR)/rss.so
.PHONY: all clean distclean install uninstall

View File

@ -40,6 +40,7 @@ typedef struct _AccountFolder
typedef struct _AccountPlugin
{
char const * type;
char const * name;
AccountConfig * config;
AccountFolder ** (*folders)(void);
@ -54,9 +55,13 @@ typedef struct _Account
/* functions */
/* FIXME type should be automatically "account" and wrap plug-in engine */
Account * account_new(char const * type, char const * name);
void account_delete(Account * account);
/* accessors */
int account_set_title(Account * account, char const * title);
/* useful */
/* FIXME wrong we just need receive, then it calls callbacks */
AccountFolder ** account_folders(Account * account);

View File

@ -8,6 +8,7 @@
/* variables */
char const imap4_type[] = "IMAP4";
char const imap4_name[] = "IMAP4 server";
AccountConfig imap4_config[] =
@ -42,6 +43,7 @@ AccountFolder ** imap4_folders(void)
AccountPlugin account_plugin =
{
imap4_type,
imap4_name,
imap4_config,
imap4_folders

View File

@ -8,6 +8,7 @@
/* variables */
char const mbox_type[] = "MBOX";
char const mbox_name[] = "Local folder";
AccountConfig mbox_config[] =
@ -39,6 +40,7 @@ AccountFolder ** mbox_folders(void)
AccountPlugin account_plugin =
{
mbox_type,
mbox_name,
mbox_config,
mbox_folders

View File

@ -8,6 +8,7 @@
/* variables */
char const pop3_type[] = "POP3";
char const pop3_name[] = "POP3 server";
AccountConfig pop3_config[] =
@ -40,6 +41,7 @@ AccountFolder ** pop3_folders(void)
AccountPlugin account_plugin =
{
pop3_type,
pop3_name,
pop3_config,
pop3_folders

View File

@ -1,13 +1,29 @@
targets=mbox,pop3,imap4
targets=mbox,pop3,imap4,rss
[mbox]
type=library
sources=mbox.c
[mbox.c]
depends=account.h
[pop3]
type=library
sources=pop3.c
[pop3.c]
depends=account.h
[imap4]
type=library
sources=imap4.c
[imap4.c]
depends=account.h
[rss]
type=library
sources=rss.c
[rss.c]
depends=account.h

38
src/account/rss.c Normal file
View File

@ -0,0 +1,38 @@
/* $Id$ */
/* Copyright (c) 2006 The DeforaOS Project */
#include <stdlib.h>
#include "account.h"
/* variables */
char const rss_type[] = "RSS";
char const rss_name[] = "RSS reader";
AccountConfig rss_config[] =
{
{ "uri", "Address", ACT_STRING, NULL },
{ NULL, NULL, ACT_NONE, NULL }
};
/* functions */
AccountFolder ** rss_folders(void)
{
/* FIXME implement */
static AccountFolder feed = { AF_INBOX, "Feed" };
static AccountFolder * folders[] = { &feed, NULL };
return folders;
}
AccountPlugin account_plugin =
{
rss_type,
rss_name,
rss_config,
rss_folders
};