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
26 $Id: lcli.h,v 1.8 2003/05/06 21:01:21 mawag Exp $
27 OpenIsis client side of communication
30 typedef struct CliChnl {
35 /** open channel and connect to server.
36 @return 0 success, <0 error code
38 extern int cliConnect (CliChnl *ch, const char *hostname, int port);
42 extern void cliClose (CliChnl *ch);
44 /** serialize and write record.
45 @return number of bytes written, <0 error code
47 extern int cliWrite (CliChnl *ch, Rec *rec);
49 /** deserialize record from stream using plain protocol.
50 @param str input stream
51 @param stat internal state, must be initialized with 0 before first call
52 @param rec address of record to fill
53 @return 0 - more input needed, 1 - done, <0 error code
55 extern int cliPlain (Stream str, int *stat, Rec **rec);
57 /** read and deserialize record.
58 @return deserialized record, 0 on error
60 extern Rec* cliRead (CliChnl *ch);