view src/content.h @ 165:8ea6b5ddc5a5 noffle

[svn] * src/lock.h,src/lock.c,src/noffle.c: Add lazy lock release. Only release the lock and close the databases if (a) another process signals us SIGUSR1 indicating it wants the lock, or (b) it is explicitly requested by a call to new function Lock_syncDatabases(). When waiting for the lock, SIGUSR1 the holding process every second. This is all an attempt to minimise the number of times we need to close and open the database. When (ha!) the database is replaced by something that can handle multiple simultaneous writers (with appropriate locking) this won't be necessary.
author bears
date Thu, 25 Jan 2001 13:38:31 +0000
parents 5ecb646acf97
children ffb1848a39db
line wrap: on
line source

/*
  content.h

  Contents of a newsgroup
  - list of article overviews for selected group.

  The overviews of all articles of a group are stored in an overview file,
  filename SPOOLDIR/overview/GROUPNAME. One entire overview file is read
  and cached in memory, at a time.

  $Id: content.h 55 2000-05-06 16:56:50Z bears $ 
*/

#ifndef CONT_H
#define CONT_H

#if HAVE_CONFIG_H
#include <config.h>
#endif

#include "over.h"

/*
  Try to read overviews from overview file for group <grp>.
  Fill with fake articles, if something goes wrong.
*/
void
Cont_read( const char *grp );

/*
  Append overview to current list and increment the current
  group's last article counter. Ownership of the ptr is transfered
  to content
*/
void
Cont_app( Over *ov );

/* Write content */
void
Cont_write( void );

Bool
Cont_validNumb( int numb );

const Over *
Cont_get( int numb );

void
Cont_delete( int numb );

int
Cont_first( void );

int
Cont_last( void );

int
Cont_find( const char *msgId );

const char *
Cont_grp( void );

Bool
Cont_nextGrp( Str result );

Bool
Cont_firstGrp( Str result );

void
Cont_expire( void );

#endif