/* * filecounter.h --- file-based unique ID generator * nca-073-9 * * Copyright (c) 1996-2000 by Netcetera AG. * Copyright (c) 2001 by Apache Software Foundation. * All rights reserved. * * See the file "license.terms" for information on usage and * redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * @(#) $Id$ * */ #include "args.h" #include "filelock.h" #include "log.h" #include "request.h" #include "tcl.h" #ifndef FILECOUNTER_H #define FILECOUNTER_H #define WEB_FILECOUNTER_MAXVAL 2147483647 #define WEB_FILECOUNTER_MINVAL 0 #define WEB_FILECOUNTER_INCR 1 #define WEB_FILECOUNTER_SEED 0 #define WEB_FILECOUNTER_WRAP 0 /* -------------------------------------------------------------------------- * SeqNoGenerator * --------------------------------------------------------------------------*/ typedef struct SeqNoGenerator { char *fileName; char *handleName; int seed; int minValue; int maxValue; int incrValue; int currValue; int mask; int doWrap; int hasCurrent; } SeqNoGenerator; SeqNoGenerator *createSeqNoGenerator(RequestData * requestData, Tcl_Obj * hn, Tcl_Obj * fn, Tcl_Obj * seed, Tcl_Obj * min, Tcl_Obj * max, Tcl_Obj * incr, Tcl_Obj * mask, Tcl_Obj * wrap); int deleteSeqNoGenerator(SeqNoGenerator * seqnogen); int destroySeqNoGenerator(ClientData clientData); int nextSeqNo(Tcl_Interp * interp, SeqNoGenerator * seqnogen, int *seqno, int next); /* -------------------------------------------------------------------------- * The function to register with TCL * ------------------------------------------------------------------------*/ int filecounter(ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj * CONST objv[]); int Web_Filecounter(ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj * objv[]); int filecounter_Init(Tcl_Interp * interp); #endif