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 + -
显示快捷键?