Mercurial > noffle
view src/database.h @ 183:c912e8288164 noffle
[svn] * src/client.c: Only bail out of fetching multiple articles if the
connection fails. If we do get a status from the upstream server
note it and see what is reported for the next article. Otherwise
failure to retrieve one article will cause all successive article
fetches to fail even through they would succeed if tried.
* src/lock.c: Fix assert in lazy locking. If another noffle signalled us
to release the lock at the next close, and then repeats the signal so that
it arrives during LOCK_closeDatabases, the signal handler was trying
to close the databases again.
author | bears |
---|---|
date | Tue, 15 May 2001 13:07:53 +0100 |
parents | 3c71e28c8eef |
children | 52f467c7213b |
line wrap: on
line source
/* database.h Article database. $Id: database.h 183 2000-07-25 12:14:54Z bears $ */ #ifndef DB_H #define DB_H #if HAVE_CONFIG_H #include <config.h> #endif #if TIME_WITH_SYS_TIME #include <sys/time.h> #include <time.h> #else #if HAVE_SYS_TIME_H #include <sys/time.h> #else #include <time.h> #endif #endif #include "common.h" #include "dynamicstring.h" #include "over.h" /* Article status flags: */ #define DB_INTERESTING 0x01 /* Was article ever tried to read? */ #define DB_NOT_DOWNLOADED 0x02 /* Not fully downloaded */ #define DB_RETRIEVING_FAILED 0x04 /* Retrieving of article failed */ /* Open database for r/w. Locking must be done by the caller! */ Bool Db_open( void ); void Db_close( void ); /* Creates an database entry for the article from the overview information. Xref is replaced by grp:numb. */ Bool Db_prepareEntry( const Over *ov, const char *grp, int numb ); /* Store full article. Can only be used after Db_prepareEntry. */ Bool Db_storeArt( const char *msgId, const char *artTxt ); void Db_setStatus( const char *msgId, int status ); void Db_updateLastAccess( const char *msgId ); /* Xref header line without hostname */ void Db_setXref( const char *msgId, const char *xref ); const char * Db_header( const char *msgId ); const char * Db_body( const char *msgId ); int Db_status( const char *msgId ); /* Get last modification time of entry. Returns -1, if msgId non-existing. */ time_t Db_lastAccess( const char *msgId ); /* Value of the References header line */ const char * Db_ref( const char *msgId ); /* Value of the From header line */ const char * Db_from( const char *msgId ); /* Value of the Date header line */ const char * Db_date( const char *msgId ); /* Xref header line without hostname */ const char * Db_xref( const char *msgId ); /* Overview - need to del_Over result when finished with */ Over * Db_over( const char *msgId ); Bool Db_contains( const char *msgId ); /* Delete entry from database */ void Db_delete( const char *msgId ); Bool Db_first( const char** msgId ); Bool Db_next( const char** msgId ); /* Expire all articles that have not been accessed for a number of days determined by their group membership and noffle configuration. */ Bool Db_expire( void ); #endif