BufferedStream *utilOpenBufferedStream(char *pFileName) { int nLen; BufferedStream *p; BufferedStream obf; UINT32 count = 0; LNKLST_NODE *crnt; crnt = listFirstNode(&list); while (crnt != NULL) { p = (BufferedStream *)crnt->payload; if(strcmp(p->cFileName, pFileName)==0) { return p; } crnt = listNextNode(crnt); } nLen = strlen(pFileName); if(nLen<sizeof(obf.cFileName)-1) STRCPY(obf.cFileName, pFileName); else { strncpy(obf.cFileName, pFileName, sizeof(obf.cFileName)-1); obf.cFileName[sizeof(obf.cFileName)-1]=0; } obf.nBytes=0; obf.nTotalBytes=0; if(listAppend(&list, &obf, sizeof(obf))) { crnt = listLastNode(&list); p = (BufferedStream *)crnt->payload; return p; } return NULL; }
static stream_t *getStream(int nstream) { stream_t stt, *pstt; LNKLST_NODE *node; node = listFirstNode(streamList); while (node != NULL) { pstt = node->payload; if(pstt->nstream==nstream) break; node = listNextNode(node); } if(node==NULL) { stt.t = 0.; stt.nstream = nstream; listAppend(streamList, &stt, sizeof(stt)); node = listLastNode(streamList); } return (stream_t *)node->payload; }
list_node_t* DLLCALL msgQueueLastNode(msg_queue_t* q) { return listLastNode(msgQueueReadList(q)); }