一个文件名队列

来源:互联网 发布:java登录功能实现 编辑:程序博客网 时间:2024/05/09 17:15

 

#define     FILENAME_SIZE      33class FILE_NAME_NODE {public: ADDFILE_INFO_T m_FileName; FILE_NAME_NODE * m_pNextFileName;};typedef FILE_NAME_NODE* PFILE_NAME_NODE///////////////////////////////////////////class FILE_NAME_QUEUE{public: FILE_NAME_QUEUE(); ~FILE_NAME_QUEUE();    BOOL FilenameAdd(ADDFILE_INFO_T addfile);//add one to the end     UINT FilenameDel();       // delete the firstpublic:    PFILE_NAME_NODE pBeginFileName;    PFILE_NAME_NODE pEndFileName;    BOOL isEmpty; CCriticalSection critical_section;protected: FILE_NAME_NODE m_FileNameNode[FILENAME_SIZE];};///////////////////////////////////////////#include "FileName.h"FILE_NAME_QUEUE::FILE_NAME_QUEUE(){ pBeginFileName=m_FileNameNode; pEndFileName=m_FileNameNode; for (int i=0;i<(FILENAME_SIZE-1);i++) {  m_FileNameNode[i].m_pNextFileName=&m_FileNameNode[i+1]; } m_FileNameNode[FILENAME_SIZE-1].m_pNextFileName=m_FileNameNode; isEmpty=TRUE;}FILE_NAME_QUEUE::~FILE_NAME_QUEUE(){// do nothing ,system default process}BOOL FILE_NAME_QUEUE::FilenameAdd(ADDFILE_INFO_T addfile){ critical_section.Lock(); pEndFileName->m_FileName=addfile; pEndFileName=pEndFileName->m_pNextFileName; if (pEndFileName==pBeginFileName) {  critical_section.Unlock();  return FALSE; } isEmpty=FALSE; critical_section.Unlock(); return TRUE;}UINT FILE_NAME_QUEUE::FilenameDel(){//pBeginFileName->m_FileName/*=NULL*/; critical_section.Lock(); pBeginFileName=pBeginFileName->m_pNextFileName; if (pBeginFileName==pEndFileName) {  isEmpty=TRUE;  critical_section.Unlock();  return 1;  } critical_section.Unlock(); return 0;}
	
				
		
原创粉丝点击