X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=include%2Fstorage.h;fp=include%2Fstorage.h;h=0000000000000000000000000000000000000000;hb=f8e8b4f4647f437f8931663fcfb5efe711d98d5e;hp=c92db0fa2afa598ebee78823340f422db3c7be2f;hpb=b7a32e2d73e3ab1add8208d3e157f7269a31ef4d;p=innduct.git diff --git a/include/storage.h b/include/storage.h deleted file mode 100644 index c92db0f..0000000 --- a/include/storage.h +++ /dev/null @@ -1,100 +0,0 @@ -/* $Id: storage.h 5933 2002-12-07 09:47:17Z rra $ -** -** Here be declarations related to the storage subsystem. -*/ - -#ifndef __STORAGE_H__ -#define __STORAGE_H__ - -/* We've probably already included this; only include it if we need it. */ -#ifndef __CONFIG_H__ -# include "config.h" -#endif - -#include -#include - -#define STORAGE_TOKEN_LENGTH 16 - -/* This is the type of an empty token. Tokens with this type will be - returned when errors occur */ -#define TOKEN_EMPTY 255 - -typedef enum {RETR_ALL, RETR_HEAD, RETR_BODY, RETR_STAT} RETRTYPE; -typedef enum {SM_RDWR, SM_PREOPEN} SMSETUP; - -#define NUM_STORAGE_CLASSES 256 -typedef unsigned char STORAGECLASS; -typedef unsigned char STORAGETYPE; - -typedef struct token { - STORAGETYPE type; - STORAGECLASS class; - char token[STORAGE_TOKEN_LENGTH]; -} TOKEN; - -typedef struct { - unsigned char type; /* Method that retrieved the article */ - const char *data; /* Where the requested data starts */ - struct iovec *iov; /* writev() style vector */ - int iovcnt; /* writev() style count */ - size_t len; /* Length of the requested data */ - unsigned char nextmethod; /* Next method to try when iterating over the - spool */ - void *private; /* A pointer to method specific data */ - time_t arrived; /* The time when the article arrived */ - time_t expires; /* The time when the article will be expired */ - char *groups; /* Where Newsgroups header starts */ - int groupslen; /* Length of Newsgroups header */ - TOKEN *token; /* A pointer to the article's TOKEN */ -} ARTHANDLE; - /* SMstore uses iov* but not data,len - * SMretrieve sets type data,len private data is in wire format - */ - -#define SMERR_NOERROR 0 -#define SMERR_INTERNAL 1 -#define SMERR_UNDEFINED 2 -#define SMERR_NOENT 3 -#define SMERR_TOKENSHORT 4 -#define SMERR_NOBODY 5 -#define SMERR_UNINIT 6 -#define SMERR_CONFIG 7 -#define SMERR_BADHANDLE 8 -#define SMERR_BADTOKEN 9 -#define SMERR_NOMATCH 10 - -extern int SMerrno; -extern char *SMerrorstr; - -typedef enum {SELFEXPIRE, SMARTNGNUM, EXPENSIVESTAT} PROBETYPE; -typedef enum {SM_ALL, SM_HEAD, SM_CANCELEDART} FLUSHTYPE; - -struct artngnum { - char *groupname; - ARTNUM artnum; -}; - -BEGIN_DECLS - -char * TokenToText(const TOKEN token); -TOKEN TextToToken(const char *text); -bool IsToken(const char *text); -char * ToWireFmt(const char *article, size_t len, size_t *newlen); -char * FromWireFmt(const char *article, size_t len, size_t *newlen); - -bool SMsetup(SMSETUP type, void *value); -bool SMinit(void); -TOKEN SMstore(const ARTHANDLE article); -ARTHANDLE * SMretrieve(const TOKEN token, const RETRTYPE amount); -ARTHANDLE * SMnext(const ARTHANDLE *article, const RETRTYPE amount); -void SMfreearticle(ARTHANDLE *article); -bool SMcancel(TOKEN token); -bool SMprobe(PROBETYPE type, TOKEN *token, void *value); -bool SMflushcacheddata(FLUSHTYPE type); -void SMprintfiles(FILE *file, TOKEN token, char **xref, int ngroups); -void SMshutdown(void); - -END_DECLS - -#endif