termsender.c

来自「SRI international 发布的OAA框架软件」· C语言 代码 · 共 99 行

C
99
字号
#include "termsender.h"
#include <stdlib.h>

struct TermSenderStruct 
{
  TermSenderSendTerm sendTerm;
  TermSenderCleanup cleanup;
  TermSenderType type;
  gint sendSocket;
  gint error;
  gpointer senderSpecificData;
}
;

TermSender* termSender_create() 
{
  TermSender* t = (TermSender*)malloc(sizeof(TermSender));
  t->sendTerm = NULL;
  t->cleanup = NULL;
  t->type = UNKNOWNTERMSENDERTYPE;
  t->sendSocket = -1;
  t->error = TERMSENDER_OKAY;
  t->senderSpecificData = NULL;
  return t;
}

void termSender_free(TermSender* t) 
{
  if(t->cleanup != NULL) {
    t->cleanup(t);
  }
  free(t);
}

int termSender_sendTerm(TermSender* sender, ICLTerm* term) 
{
  if(sender->sendTerm != NULL) {
    sender->sendTerm(sender, term);
    if(sender->error != TERMSENDER_OKAY) {
      return -1;
    }
  }
  else {
    sender->error = TERMSENDER_NOTINITIALIZED;
    return -1;
  }
  return 0;
}

void termSender_setError(TermSender* t, gint errnum) 
{
  t->error = errnum;
}

gint termSender_getError(TermSender* t) 
{
  return t->error;
}

void termSender_setSocket(TermSender* t, gint newsocket) 
{
  t->sendSocket = newsocket;
}

gint termSender_getSocket(TermSender* t) 
{
  return t->sendSocket;
}

void termSender_setType(TermSender* t, TermSenderType type) 
{
  t->type = type;
}

TermSenderType termSender_getType(TermSender* t) 
{
  return t->type;
}

void termSender_setSenderSpecificData(TermSender* t, gpointer g) 
{
  t->senderSpecificData = g;
}

gpointer termSender_getSenderSpecificData(TermSender* t) 
{
  return t->senderSpecificData;
}

void termSender_setSendTermCallback(TermSender* t, TermSenderSendTerm s) 
{
  t->sendTerm = s;
}

void termSender_setCleanupCallback(TermSender* t, TermSenderCleanup c) 
{
  t->cleanup = c;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?