termsender.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2006  SRI International
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00017  *
00018  * SRI International: 333 Ravenswood Ave, Menlo Park, CA 94025
00019  */
00020 
00021 #ifndef TERMSENDER_H
00022 #define TERMSENDER_H
00023 
00024 #include "libicl.h"
00025 #include "glib.h"
00026 
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif
00030 
00031   struct TermSenderStruct;
00032   typedef struct TermSenderStruct TermSender;
00033 
00034   typedef void (*TermSenderSendTerm)(TermSender*, ICLTerm*);
00035   typedef void (*TermSenderCleanup)(TermSender*);
00036 
00037   enum TermSenderTypeEnum {
00038     UNKNOWNTERMSENDERTYPE = -1,
00039     STRINGTERMSENDERTYPE = 0,
00040     BINARYTERMSENDERTYPE = 1
00041   }
00042   ;
00043   typedef enum TermSenderTypeEnum TermSenderType;
00044 
00045   enum TermSenderErrorNum {
00046     TERMSENDER_BININVALIDELEMENT = -102,
00047     TERMSENDER_BINUNKNOWNTYPETWICE = -101,
00048     TERMSENDER_BINUNKNOWNTYPEONCE = -100,
00049     TERMSENDER_BADTRANSLATION = -4,
00050     TERMSENDER_NOTINITIALIZED = -3,
00051     TERMSENDER_BADSEND = -2,
00052     TERMSENDER_NULLTOSEND = -1,
00053     TERMSENDER_OKAY = 0
00054   }
00055   ;
00056 
00057   EXTERN TermSender* termSender_create();
00058   EXTERN void termSender_free(TermSender* t);
00062   EXTERN int termSender_sendTerm(TermSender* sender, ICLTerm* term);
00063 
00064   EXTERN void termSender_setError(TermSender* t, gint errnum);
00065   EXTERN gint termSender_getError(TermSender* t);
00066   EXTERN void termSender_setSocket(TermSender* t, gint newsocket);
00067   EXTERN gint termSender_getSocket(TermSender* t);
00068   EXTERN void termSender_setType(TermSender* t, TermSenderType type);
00069   EXTERN TermSenderType termSender_getType(TermSender* t);
00070   EXTERN void termSender_setSenderSpecificData(TermSender* t, gpointer g);
00071   EXTERN gpointer termSender_getSenderSpecificData(TermSender* t);
00072   EXTERN void termSender_setSendTermCallback(TermSender* t, TermSenderSendTerm s);
00073   EXTERN void termSender_setCleanupCallback(TermSender* t, TermSenderCleanup c);
00074 
00075 #ifdef __cplusplus
00076 }
00077 #endif
00078 
00079 #endif

Generated on Wed May 23 17:20:13 2007 using doxygen 1.5.2