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;
	}
Esempio n. 2
0
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;
    }
Esempio n. 3
0
list_node_t* DLLCALL msgQueueLastNode(msg_queue_t* q)
{
	return listLastNode(msgQueueReadList(q));
}