2 openisis - an open implementation of the CDS/ISIS database
3 Version 0.8.x (patchlevel see file Version)
4 Copyright (C) 2001-2003 by Erik Grziwotz, erik@openisis.org
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with this library; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 see README for more information
25 $Id: lses.h,v 1.8 2003/04/10 13:43:44 kripke Exp $
39 Ios *io[LSES_FILE_MAX];
40 int hash; /* -value of name */
41 struct Ses *nxt; /* chain in hash */
42 int accnt; /* # accesses */
47 Rec *prop; /* session state */
48 Rec *res; /* a reusable result */
49 struct Con *cur; /* current connection */
50 struct Con *que; /* connection queue */
51 /* actually this is followed by internal members ... */
56 get the Session for the current thread.
57 if it doesn't have one, one is created.
60 extern void sSet ( Ses *ses );
63 #define SESDECL Session ses = sGet();
64 #define SESGET() sGet()
65 #define SESSET(s) sSet(s)
70 #define SESSET(s) do { ses = (s); } while (0)
73 extern void lses_init ();
74 extern void lses_fini ();
78 get or create session by name (of len nlen).
79 name will be cleaned of control chars (<32).
80 touch atime (and ctime on new) with now (if not 0).
81 clean and reuse sessions with atime < expire (if not 0)
83 extern Ses *cSesByName ( char *name, int nlen, Tm *now, Tm *expire );