00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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