Example #1
0
void Exit(int code)
{
  if (code == 0) Dbg(DBGGEN, DBGOK, "normal exit");
  else Dbg(DBGGEN, DBGBAD, "exiting with code %d", code);
  MemCheckPrint();
  DiscourseFree(StdDiscourse);
  LearnClose();
  StreamClose(Log);
  StreamClose(Display);
  Log = stdout;
  Dbg(DBGGEN, DBGOK, "exit");
  exit(code);
}
Example #2
0
void BinDiffClose(void *in) {
	stream_p original = ((bindiff_p)(in))->in1;
	stream_p modified = ((bindiff_p)(in))->in2;
	diffdata_p   data = (diffdata_p)(((bindiff_p)(in))->userdata);
	
	StreamClose(original);
	StreamClose(modified);
	if(data) {
		xd3_close_stream(&data->stream);
		xd3_free_stream(&data->stream);
		free(data);
		((bindiff_p)(in))->userdata = NULL;
	}
}
Example #3
0
File: io.c Project: AxFab/axlibc
int close (int fd)
{
  int ret;

  SYS_RET ( ret, StreamClose (fd) );
  return 0;
}
Example #4
0
static void OutputArrayValues(parsercontext *p, const tchar_t *name, tchar_t *values[], size_t size)
{
	tchar_t Path[MAXPATH];
	tchar_t Value[MAXPATH];
	textwriter Output, StringOutput;
	size_t i;

	stprintf_s(Value, TSIZEOF(Value), T("res_%s"), name);

	for (i=0; i<size; ++i)
	{
		stprintf_s(Path, TSIZEOF(Path), T("values-%s"), values[i]);

		FolderCreate((nodecontext*)p, Path);
		if (PathIsFolder((nodecontext*)p, Path))
		{
			tcscat_s(Path, TSIZEOF(Path), T("/resinfo.xml"));
			memset(&Output,0,sizeof(Output));
			Output.Stream = StreamOpen(p, Path, SFLAG_WRONLY|SFLAG_CREATE);

			TextElementXML(p, &Output, T("resources"));

			TextElementBegin(&StringOutput, &Output, T("string"));
			TextAttrib(&StringOutput, T("name"), Value, TYPE_STRING);
			TcsToUpper(Path, TSIZEOF(Path), values[i]);
			TextElementEndData(&StringOutput, Path);

			TextElementEnd(&Output);

			StreamClose(Output.Stream);
		}
	}
}
Example #5
0
void ProveIt(char *goal_filename,
             char *rule_filename,
             char *fact_filename,
             char *output_filename)
{
  Obj		*goal;
  ObjList	*rules;
  ObjList	*facts;
  Proof		*proofs;
  FILE		*outstream;

  if (NULL == (outstream = StreamOpen(output_filename, "w+"))) {
    return;
  }
  goal = ObjFileRead(goal_filename);
  if (goal == NULL) {
    return;
  }
  rules = ObjListFileRead(rule_filename);
  facts = ObjListFileRead(fact_filename);
  fprintf(outstream, "input goal = ");
  ObjPrint(outstream, goal);
  fputc(NEWLINE, outstream);
  fprintf(outstream, "input rules =\n");
  ObjListPrint(outstream, rules);
  fprintf(outstream, "input facts =\n");
  ObjListPrint(outstream, facts);
  if (Prove1(&TsNA, NULL, goal, rules, facts, 1, 0, &proofs)) {
    fprintf(outstream, "found proofs:\n");
    ProofPrintAll(outstream, proofs);
  } else {
    fprintf(outstream, "did not find proofs\n");
  }
  StreamClose(outstream);
}
Example #6
0
static void LoadTXT(const tchar_t* FileName,void* Buffer)
{
	stream* p = StreamOpen(FileName,0);
	if (p)
	{
		StringAddText(Buffer,p->Read(p,Buffer,MAXTEXT));
		StreamClose(p);
	}
}
int
FileRepConnServer_CreateConnection()
{
	int			status = STATUS_OK;

	port = (Port *) calloc(1, sizeof(Port));
	if (port == NULL)
	{
		ereport(ERROR,
				(errcode(ERRCODE_OUT_OF_MEMORY),
				 (errmsg("not enough memory to create connection"))));
		return status;
	}

	status = StreamConnection(listenSocket[0], port);
	if (status != STATUS_OK)
	{
		ereport(WARNING,
				(errcode_for_socket_access(),
				 errmsg("could not accept connection: %m"),
				 FileRep_errcontext()));

		if (port->sock >= 0)
		{
			StreamClose(port->sock);
		}
		ConnFree();
	}
	else
	{
		/*
		 * MPP-14225: On NIC failure, filerep receiver process's recv() system
		 * call will take hours to timeout, depending on the TCP timeout. Add
		 * SO_RCVTIMEO timeout to filerep receiver process's socket to avoid
		 * this.
		 */
		struct timeval tv;

		tv.tv_sec = file_rep_socket_timeout;
		tv.tv_usec = 0;			/* Not initializing this can cause strange
								 * errors */

		if (setsockopt(port->sock, SOL_SOCKET, SO_RCVTIMEO, (char *) &tv, sizeof(struct timeval)) == -1)
			ereport(WARNING,
					(errcode_for_socket_access(),
					 errmsg("could not set receive timeout on socket")));

		/* set TCP keep-alive parameters for FileRep connection */
		(void) pq_setkeepalivesidle(gp_filerep_tcp_keepalives_idle, port);
		(void) pq_setkeepalivesinterval(gp_filerep_tcp_keepalives_interval, port);
		(void) pq_setkeepalivescount(gp_filerep_tcp_keepalives_count, port);

		MyProcPort = port;
	}

	return status;
}
Example #8
0
void DbgLogClear()
{
  StreamClose(Log);
  Log = stdout; /* REALLY */
  if (NULL == (Log = StreamOpen("log", "w+"))) Log = stdout;
#ifdef MACOS
#else
  if (Log != stdout) setvbuf(Log, NULL, _IONBF, 0L);
#endif
}
Example #9
0
Object* SerializerLoad(Serializer* serializer)
{
	if( !serializer->load ) return nullptr;
	if( !serializer->stream ) return nullptr;

	Object* object = serializer->load(serializer);
	StreamClose(serializer->stream);

	return object;
}
Example #10
0
bool SerializerSave(Serializer* serializer, const Object* object)
{
	if( !serializer->save ) return false;
	if( !serializer->stream ) return false;
	
	serializer->save(serializer, object);
	StreamClose(serializer->stream);

	serializer->object = nullptr;

	return true;
}
Example #11
0
void
FileRepConnServer_CloseConnection(void)
{
	if (port != NULL) {
		secure_close(port);

		if (port->sock >= 0) {
			/* to close socket (file descriptor) */
			StreamClose(port->sock);
			port->sock = -1;
		}	
		ConnFree();
	}
}
Example #12
0
int TA_TaggerPrune1(char *fn, TaggerWords *tw, Channel *ch)
{
  int		cnt, spliced;
  long		wordnum;
  char		word[PHRASELEN], tag[FEATLEN];
  size_t	pos;
  int		firstchar;
  FILE		*stream;
  PNode		*pn, *prev;

  if (NULL == (stream = StreamOpen(fn, "r"))) {
    return(0);
  }
  wordnum = 0L;
  pn = ch->pnf->first;
  prev = NULL;
  while (pn) {
    if (!TA_TaggedWordRead(stream, word, tag)) break;
    Dbg(DBGGEN, DBGHYPER, "<%s>.<%s>", word, tag);
    if (wordnum >= tw->len) {
      Dbg(DBGGEN, DBGBAD, "TA_TaggerPrune1 length mismatch");
      break;
    }
    if (!PennIsPunct(tag)) {
      pos = tw->positions[wordnum];
      firstchar = tw->firstchars[wordnum];
      TA_TaggerPrune2(pn, prev, 0, pos, firstchar, ch, word, tag, NULL, NULL,
                      &cnt, &spliced);
      if ((spliced > 0) &&
          (spliced < cnt) && /* Don't rule out all words. */
          (cnt > 1)) { /* Don't rule out the only instance of a word. */
        TA_TaggerPrune2(pn, prev, 1, pos, firstchar, ch, word, tag, &pn, &prev,
                        NULL, NULL);
      }
    }
    wordnum++;
  }

  StreamClose(stream);
  return(1);
}
Example #13
0
int TA_TaggerWriteInput(char *fn, TaggerWords *tw, Channel *ch)
{
  int		eoschar;
  size_t	pos;
  PNode		*pn;
  FILE		*stream;

  if (NULL == (stream = StreamOpen(fn, "w+"))) {
    return(0);
  }
  pos = 0;
  pn = ch->pnf->first;
  while (pos < ch->len) {
    if (NULL == (pn = PNodeGetNext(pn, pos))) break;
    if (pn->type == PNTYPE_END_OF_SENT) {
      eoschar = ch->buf[pn->lowerb];
      TA_TaggerWriteSentence(stream, tw, ch, pos, pn->lowerb, eoschar);
    }
    pos = pn->upperb+1;
  }
  StreamClose(stream);
  return(1);
}
Example #14
0
void String_Init()
{
	void* Buffer;

	StringAlloc();

	Buffer = malloc(MAXTEXT);
	if (Buffer)
	{
#ifdef NO_PLUGINS
		{
			int n;
			HANDLE Module = GetModuleHandle(NULL);
			HRSRC Rsrc = FindResource(Module,MAKEINTRESOURCE(2000),T("LANGTAR"));
			if (Rsrc)
			{
				int Size = SizeofResource(Module,Rsrc);
				HGLOBAL Global = LoadResource(Module,Rsrc);
				if (Global)
				{
					void* p = LockResource(Global);
					if (p)
					{
						stream* Stream = StreamOpenMem(p,Size);
						if (Stream)
						{
							LoadTGZ(Stream,Buffer);
							StreamCloseMem(Stream);
						}
					}
				}
			}
			for (n=2000;(Rsrc = FindResource(Module,MAKEINTRESOURCE(n),T("LANG")))!=NULL;++n)
			{
				int Size = SizeofResource(Module,Rsrc);
				HGLOBAL Global = LoadResource(Module,Rsrc);
				if (Global)
				{
					void* p = LockResource(Global);
					if (p)
						StringAddText(p,Size);
				}
			}
		}

#endif
#ifndef NO_LANG
		{
			tchar_t Path[MAXPATH];
			stream* p;

			GetModulePath(Path,T("common.dll"));
			tcscat_s(Path,TSIZEOF(Path),T("language.tgz"));
			p = StreamOpen(Path,0);
			if (p)
			{
				LoadTGZ(p,Buffer);
				StreamClose(p);
			}

			GetModulePath(Path,T("common.dll"));
			FindFiles(Path,T("*.txt"),LoadTXT,Buffer);
		}
#endif
		free(Buffer);
	}
}
Example #15
0
static void OutputValues(parsercontext *p, size_t size, size_t night, size_t density, size_t touchscreen, size_t keyboard, size_t textinput, size_t navstate, size_t navmethod)
{
	tchar_t Path[MAXPATH];
	textwriter Output, StringOutput;

	stprintf_s(Path, TSIZEOF(Path), T("values")
		T("-%s")
//		T("-%s")
		T("-%s")
//		T("-%s")
//		T("-%s")
//		T("-%s")
//		T("-%s")
//		T("-%s")
		,Size[size]
//		,Night[night]
		,Density[density]
//		,TouchScreen[touchscreen]
//		,Keyboard[keyboard]
//		,TextInput[textinput]
//		,NavigationState[navstate]
//		,NavigationMethod[navmethod]
		);

	FolderCreate((nodecontext*)p, Path);
	if (PathIsFolder((nodecontext*)p, Path))
	{
		tcscat_s(Path, TSIZEOF(Path), T("/resinfo.xml"));
		memset(&Output,0,sizeof(Output));
		Output.Stream = StreamOpen(p, Path, SFLAG_WRONLY|SFLAG_CREATE);

		TextElementXML(p, &Output, T("resources"));

		TextElementBegin(&StringOutput, &Output, T("string"));
		TextAttrib(&StringOutput, T("name"), T("res_size"), TYPE_STRING);
		TcsToUpper(Path, TSIZEOF(Path), Size[size]);
		TextElementEndData(&StringOutput, Path);

		TextElementBegin(&StringOutput, &Output, T("string"));
		TextAttrib(&StringOutput, T("name"), T("res_night"), TYPE_STRING);
		TcsToUpper(Path, TSIZEOF(Path), Night[night]);
		TextElementEndData(&StringOutput, Path);

		TextElementBegin(&StringOutput, &Output, T("string"));
		TextAttrib(&StringOutput, T("name"), T("res_density"), TYPE_STRING);
		TcsToUpper(Path, TSIZEOF(Path), Density[density]);
		TextElementEndData(&StringOutput, Path);

		TextElementBegin(&StringOutput, &Output, T("string"));
		TextAttrib(&StringOutput, T("name"), T("res_touchscreen"), TYPE_STRING);
		TcsToUpper(Path, TSIZEOF(Path), TouchScreen[touchscreen]);
		TextElementEndData(&StringOutput, Path);

		TextElementBegin(&StringOutput, &Output, T("string"));
		TextAttrib(&StringOutput, T("name"), T("res_keyboard"), TYPE_STRING);
		TcsToUpper(Path, TSIZEOF(Path), Keyboard[keyboard]);
		TextElementEndData(&StringOutput, Path);

		TextElementBegin(&StringOutput, &Output, T("string"));
		TextAttrib(&StringOutput, T("name"), T("res_textinput"), TYPE_STRING);
		TcsToUpper(Path, TSIZEOF(Path), TextInput[textinput]);
		TextElementEndData(&StringOutput, Path);

		TextElementBegin(&StringOutput, &Output, T("string"));
		TextAttrib(&StringOutput, T("name"), T("res_navstate"), TYPE_STRING);
		TcsToUpper(Path, TSIZEOF(Path), NavigationState[navstate]);
		TextElementEndData(&StringOutput, Path);

		TextElementBegin(&StringOutput, &Output, T("string"));
		TextAttrib(&StringOutput, T("name"), T("res_navmethod"), TYPE_STRING);
		TcsToUpper(Path, TSIZEOF(Path), NavigationMethod[navmethod]);
		TextElementEndData(&StringOutput, Path);

		TextElementEnd(&Output);

		StreamClose(Output.Stream);
	}
}