108 lines
2.3 KiB
C
108 lines
2.3 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1996 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
expinfo.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Defines the CExpirationPolicy class that maintains all properties about an
|
||
|
expiration policy.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Magnus Hedlund (MagnusH) --
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _EXPINFO_INCLUDED_
|
||
|
#define _EXPINFO_INCLUDED_
|
||
|
|
||
|
// Dependencies:
|
||
|
|
||
|
#include "cmultisz.h"
|
||
|
|
||
|
typedef struct _NNTP_EXPIRE_INFO NNTP_EXPIRE_INFO, * LPNNTP_EXPIRE_INFO;
|
||
|
|
||
|
//
|
||
|
// Changed flags:
|
||
|
//
|
||
|
|
||
|
#define CHNG_EXPIRE_SIZE 0x00000001
|
||
|
#define CHNG_EXPIRE_TIME 0x00000002
|
||
|
#define CHNG_EXPIRE_NEWSGROUPS 0x00000004
|
||
|
#define CHNG_EXPIRE_ID 0x00000008
|
||
|
#define CHNG_EXPIRE_POLICY_NAME 0x00000010
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// Defaults:
|
||
|
|
||
|
#define DEFAULT_EXPIRE_SIZE ( 500 ) // 500 megabytes
|
||
|
#define DEFAULT_EXPIRE_TIME ( 24 * 7 ) // One week
|
||
|
#define DEFAULT_EXPIRE_NEWSGROUPS ( _T ("\0") ) // Empty list
|
||
|
#define DEFAULT_EXPIRE_POLICY_NAME ( _T ("") ) // No name
|
||
|
|
||
|
DWORD GetExpireId ( const LPWSTR wszKey );
|
||
|
BOOL IsKeyValidExpire ( const LPWSTR wszKey );
|
||
|
|
||
|
//$-------------------------------------------------------------------
|
||
|
//
|
||
|
// Class:
|
||
|
//
|
||
|
// CExpirationPolicy
|
||
|
//
|
||
|
// Description:
|
||
|
//
|
||
|
// Maintains properties about a expire & communicates with the metabase.
|
||
|
//
|
||
|
// Interface:
|
||
|
//
|
||
|
//
|
||
|
//
|
||
|
//--------------------------------------------------------------------
|
||
|
|
||
|
class CExpirationPolicy
|
||
|
{
|
||
|
public:
|
||
|
CExpirationPolicy ( );
|
||
|
~CExpirationPolicy ( );
|
||
|
|
||
|
void Destroy ();
|
||
|
|
||
|
const CExpirationPolicy & operator= ( const CExpirationPolicy & Expire );
|
||
|
inline const CExpirationPolicy & operator= ( const NNTP_EXPIRE_INFO & Expire ) {
|
||
|
FromExpireInfo ( &Expire );
|
||
|
return *this;
|
||
|
}
|
||
|
|
||
|
BOOL CheckValid ();
|
||
|
|
||
|
HRESULT ToExpireInfo ( LPNNTP_EXPIRE_INFO pExpireInfo );
|
||
|
void FromExpireInfo ( const NNTP_EXPIRE_INFO * pExpireInfo );
|
||
|
|
||
|
HRESULT Add ( LPCWSTR strServer, DWORD dwInstance);
|
||
|
HRESULT Set ( LPCWSTR strServer, DWORD dwInstance);
|
||
|
// HRESULT Get ( LPCWSTR strServer, DWORD dwInstance);
|
||
|
HRESULT Remove ( LPCWSTR strServer, DWORD dwInstance);
|
||
|
|
||
|
// expire Properties:
|
||
|
public:
|
||
|
DWORD m_dwExpireId;
|
||
|
|
||
|
CComBSTR m_strPolicyName;
|
||
|
DWORD m_dwSize;
|
||
|
DWORD m_dwTime;
|
||
|
CMultiSz m_mszNewsgroups;
|
||
|
|
||
|
private:
|
||
|
// Don't call the copy constructor:
|
||
|
CExpirationPolicy ( const CExpirationPolicy & );
|
||
|
};
|
||
|
|
||
|
#endif // _EXPINFO_INCLUDED_
|
||
|
|