windows-nt/Source/XPSP1/NT/admin/pchealth/upload/server/isapi/purgeengine.h
2020-09-26 16:20:57 +08:00

84 lines
2.7 KiB
C++

/******************************************************************************
Copyright (c) 2000 Microsoft Corporation
Module Name:
PurgeEngine.h
Abstract:
This file contains the declaration of the MPCPurgeEngine class,
that controls the cleaning of the temporary directories.
Revision History:
Davide Massarenti (Dmassare) 07/12/99
created
******************************************************************************/
#if !defined(__INCLUDED___ULSERVER___PURGEENGINE_H___)
#define __INCLUDED___ULSERVER___PURGEENGINE_H___
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
struct MPCPurge_SessionSummary // Hungarian: pss
{
MPC::wstring m_szJobID;
double m_dblLastModified;
DWORD m_dwCurrentSize;
};
struct MPCPurge_ClientSummary // Hungarian: pcs
{
typedef std::list<MPCPurge_SessionSummary> List;
typedef List::iterator Iter;
typedef List::const_iterator IterConst;
MPC::wstring m_szPath;
List m_lstSessions;
DWORD m_dwFileSize;
double m_dblLastModified;
MPCPurge_ClientSummary( /*[in]*/ const MPC::wstring& szPath );
bool GetOldestSession( /*[out]*/ Iter& itSession );
};
class MPCPurgeEngine
{
typedef std::list<MPCPurge_ClientSummary> List;
typedef List::iterator Iter;
typedef List::const_iterator IterConst;
MPC::wstring m_szURL;
MPCServer* m_mpcsServer;
DWORD m_dwQueueSizeMax;
DWORD m_dwQueueSizeThreshold;
DWORD m_dwMaximumJobAge;
double m_dblMaximumJobAge;
List m_lstClients;
HRESULT AnalyzeFolders ( /*[in]*/ MPC::FileSystemObject* fso, /*[in/out]*/ DWORD& dwTotalSize );
HRESULT AddClient ( /*[in]*/ const MPC::wstring& szPath, /*[in/out]*/ DWORD& dwTotalSize );
HRESULT RemoveOldJobs ( /*[in/out]*/ DWORD& dwTotalSize );
HRESULT RemoveOldestJob ( /*[in/out]*/ DWORD& dwTotalSize );
HRESULT RemoveEmptyClients( /*[in/out]*/ DWORD& dwTotalSize );
HRESULT RemoveSession ( /*[in]*/ MPCClient& mpccClient ,
/*[in/out]*/ bool& fInitialized ,
/*[in]*/ Iter itClient ,
/*[in]*/ MPCPurge_ClientSummary::Iter& itSession ,
/*[in/out]*/ DWORD& dwTotalSize );
public:
HRESULT Process();
};
#endif // !defined(__INCLUDED___ULSERVER___PURGEENGINE_H___)