/* $Id: board.h,v 1.9 2005/08/17 14:36:09 bbs Exp $ */ #include #include typedef struct db_article_t { db_database_t *database; struct db_board_t const *board; fileheader_t header; } db_article_t; /* int db_Article_InitAssign(db_article_t *article, db_article_t *from); */ #define db_Article_InitAssign(article, from) ((*(article) = *(from)), 0) /* void db_Article_Done(db_article_t *article); */ #define db_Article_Done(article) (NULL) /* int db_Article_NumRecommend(db_article_t *article); */ #define db_Article_NumRecommend(article) ((int)(article)->header.recommend) const char *db_Article_Filename(const db_article_t *article); typedef struct db_board_t { db_database_t *database; unsigned boardid; boardheader_t *header; } db_board_t; extern int db_Board_InitFromID(db_board_t *board, db_database_t *db, unsigned id); /* int db_Board_InitAssign(db_board_t *board, db_board_t *from); */ #define db_Board_InitAssign(board, from) ((*(board) = *(from)), 0) #define db_Board_Done(board) /* do nothing */ #define db_Board_Name(board) ((board)->header->brdname) #define db_Board_Title(board) ((board)->header->title) #define db_Board_ID(board) ((board)->boardid) #define db_Board_Attribute(board, mask) ((board)->header->brdattr & (mask)) #define db_Board_isSublist(board) (db_Board_Attribute((board), BRD_GROUPBOARD)) #define db_Board_BoardMasters(board) ((board)->header->BM) extern int db_Board_Number(db_board_t const *board); extern int db_Board_List(db_board_t const *board, unsigned int from, unsigned int to, int (*callback)(db_article_t const *article, void *datum), void *datum); extern int db_Board_PostPerm(db_board_t const *board); extern int db_Board_Post(db_board_t *board, const char *title, const char *context, int signature, int local); extern int db_Board_Article(db_board_t const *board, unsigned int index, db_article_t *article);