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
24 $Id: openisistcl.h,v 1.12 2003/06/06 12:38:39 mawag Exp $
33 EXTERN int openIsisTclInit _ANSI_ARGS_ ( ( Tcl_Interp *interp ) );
35 /** @return session id on success, -1 on error
37 EXTERN int openIsisTclNewSession _ANSI_ARGS_ ( ( Tcl_Interp *ip ) );
39 /** @return boolean ok
41 EXTERN int openIsisTclGetSession _ANSI_ARGS_ ( (int sessid, Tcl_Interp **ip ) );
44 interface needed by "main-threaded" server:
45 - create commands for records "req", "res", "ses"
46 - bind Recs to those commands and set "the" session.
47 all recs are dynamic and can be assumed to belong to "the" session.
48 should be discarded by "the" session when extended.
49 the "req" record must not be modified
50 (since it's real owner session might be working in parallel).
51 modification would require "copy-on-write".
54 the same game with multiple openIsisTclSessions,
55 each with one interp (constant)
58 create record command slot
59 on a clean session, ids are guaranteed to increment 0,1 ...
60 @param fdt optional name of fdt rec cmd
61 return slot id >=0 or err <0
63 EXTERN int openIsisTclCreateRecCmd (
64 int sid, const char *nam, const char *fdt, int flg );
66 set/get cnt records to/from slots specified by ids
68 EXTERN int openIsisTclSetRecs ( int oitses, int cnt,
69 const int *ids, OpenIsisRec **recs );
70 EXTERN int openIsisTclGetRecs ( int oitses, int cnt,
71 const int *ids, OpenIsisRec **recs );
74 set session to ses and eval command in oitses' interp
75 if recs is not 0, set cnt recs as specified by ids
76 (as created by openIsisTclCreateRecCmd)
78 EXTERN int openIsisTclEval ( int sid,
79 int cnt, const int *ids, OpenIsisRec **recs, char *script );
82 #endif /* OPENISISTCL */