termreader.c
来自「SRI international 发布的OAA框架软件」· C语言 代码 · 共 171 行
C
171 行
#include "termreader.h"
#include <stdlib.h>
#include "libicl.h"
struct TermReaderStruct
{
TermReaderGetNext getNext;
TermReaderType type;
gint listenSocket;
gint error;
TermReaderCleanup cleanup;
gpointer readerSpecificData;
}
;
TermReader* termReader_create()
{
TermReader* t = (TermReader*)malloc(sizeof(TermReader));
t->getNext = NULL;
t->type = UNKNOWNTERMREADERTYPE;
t->listenSocket = -1;
t->error = TERMREADER_OKAY;
t->cleanup = NULL;
t->readerSpecificData = NULL;
return t;
}
void termReader_free(TermReader* t)
{
if(t->cleanup != NULL) {
t->cleanup(t);
}
free(t);
}
ICLTerm* termReader_getNextTerm(TermReader* t, double timeout)
{
if(t->getNext != NULL) {
return t->getNext(t, timeout);
}
else {
t->error = TERMREADER_NOTINITIALIZED;
return NULL;
}
}
void termReader_setError(TermReader* t, gint errnum)
{
t->error = errnum;
}
gint termReader_getError(TermReader* t)
{
return t->error;
}
void termReader_setSocket(TermReader* t, gint newsocket)
{
t->listenSocket = newsocket;
}
gint termReader_getSocket(TermReader* t)
{
return t->listenSocket;
}
void termReader_setType(TermReader* t, TermReaderType type)
{
t->type = type;
}
TermReaderType termReader_getType(TermReader* t)
{
return t->type;
}
void termReader_setReaderSpecificData(TermReader* t, gpointer g)
{
t->readerSpecificData = g;
}
gpointer termReader_getReaderSpecificData(TermReader* t)
{
return t->readerSpecificData;
}
void termReader_setGetNextCallback(TermReader* t, TermReaderGetNext g)
{
t->getNext = g;
}
void termReader_setCleanupCallback(TermReader* t, TermReaderCleanup c)
{
t->cleanup = c;
}
/**
* @defgroup TermSendRecv Term Sending and Receiving
*
* Some text about this module.
*
* @{
*/
/**
* @file termsender.h
*/
/**
* @file termsender.c
*/
/**
* @file binarytermsender.h
*/
/**
* @file binarytermsender.c
*/
/**
* @file binarytermtypes.h
*/
/**
* @file stringtermsender.h
*/
/**
* @file termreader.h
*/
/**
* @file termreader.c
*/
/**
* @file binarytermreader.h
*/
/**
* @file binarytermreader.c
*/
/**
* @file stringtermreader.h
*/
/**
* @file stringtermsender.c
*/
/**
* @file glibtojava.h
*/
/**
* @file glibtojava.c
*/
/**
* @file javadistoglib.h
*/
/**
* @file javadistoglib.c
*/
/**
* @}
*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?