⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scwfntqueue.c

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 C
字号:
/*__________________________________________________________________________
 Copyright (C) 2002 PGP Corporation
 All rights reserved.
 
 $Id: SCwfNTqueue.c,v 1.3 2002/11/09 04:26:16 wjb Exp $
__________________________________________________________________________*/
#include "precomp.h"

SMQUEUE *InitSMQueue(int delay)
{
	SMQUEUE *smq;
	int memamt;

	smq=(SMQUEUE *)malloc(sizeof(SMQUEUE));
	memset(smq,0x00,sizeof(SMQUEUE));
	smq->delay=delay;
	smq->smqmax=delay+100;

	memamt=smq->smqmax*sizeof(SLACKMOVE);

	smq->sm=(SLACKMOVE *)malloc(memamt);
	memset(smq->sm,0x00,memamt);

	return smq;
}

void DestroySMQueue(SMQUEUE *smq)
{
	// Free up memory
	while(smq->length!=0)
	{
		free(smq->sm[smq->start].name);
		smq->length--;
		smq->start=(smq->start+1)%(smq->smqmax);
	}

	free(smq->sm);
	free(smq);
}

BOOL PutSMOnQueue(SMQUEUE *smq,SLACKMOVE *sm)
{
	if(smq->length==smq->smqmax)
		return FALSE;

	smq->sm[smq->end].name=sm->name;
	smq->sm[smq->end].Vcn=sm->Vcn;
	smq->sm[smq->end].Orig=sm->Orig;
	smq->sm[smq->end].Size=sm->Size;
	smq->length++;
	smq->end=(smq->end+1)%(smq->smqmax);

	return TRUE;
}

BOOL GetSMOffQueue(SMQUEUE *smq,SLACKMOVE *sm,BOOL bCleanup)
{
	if((smq->length<smq->delay)&&(!bCleanup))
		return FALSE;

	if(smq->length==0)
		return FALSE;

	sm->name=smq->sm[smq->start].name;
	sm->Vcn=smq->sm[smq->start].Vcn;
	sm->Orig=smq->sm[smq->start].Orig;
	sm->Size=smq->sm[smq->start].Size;

	smq->length--;
	smq->start=(smq->start+1)%(smq->smqmax);

	return TRUE;
}

/*__Editor_settings____

	Local Variables:
	tab-width: 4
	End:
	vi: ts=4 sw=4
	vim: si
_____________________*/

⌨️ 快捷键说明

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