Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

120 lines
3.7 KiB

/********************************************************************
Copyright (c) 1999 Microsoft Corporation
Module Name:
ContentStoreMgr.h
Abstract:
Content Store manager
Revision History:
DerekM created 07/12/99
Dmassare rewrote 12/15/1999
********************************************************************/
#if !defined(__INCLUDED___PCH___CONTENTSTOREMGR_H___)
#define __INCLUDED___PCH___CONTENTSTOREMGR_H___
#include <MPC_main.h>
#include <MPC_trace.h>
#include <MPC_COM.h>
#include <MPC_utils.h>
#include <MPC_xml.h>
#include <MPC_logging.h>
#include <MPC_streams.h>
class CPCHContentStore : public MPC::NamedMutexWithState // Hungarian: cs
{
struct SharedState
{
DWORD dwRevision;
DWORD dwSize;
};
struct Entry
{
MPC::wstring szURL;
MPC::wstring szOwnerID;
MPC::wstring szOwnerName;
bool operator<( /*[in]*/ const Entry& en ) const;
int compare ( /*[in]*/ LPCWSTR wszSearch ) const;
};
class CompareEntry
{
public:
bool operator()( /*[in]*/ const Entry& entry, /*[in]*/ const LPCWSTR wszURL ) const;
};
typedef std::vector<Entry> EntryVec;
typedef EntryVec::iterator EntryIter;
typedef EntryVec::const_iterator EntryIterConst;
DWORD m_dwLastRevision;
EntryVec m_vecData;
MPC::NamedMutexWithState* m_mapData;
DWORD m_dwDataLen;
bool m_fDirty;
bool m_fSorted;
bool m_fMaster;
void Sort ();
void Cleanup();
void Map_Release ();
HRESULT Map_Generate();
HRESULT Map_Read ();
HRESULT SaveDirect( /*[in]*/ MPC::Serializer& stream );
HRESULT LoadDirect( /*[in]*/ MPC::Serializer& stream );
HRESULT Load ();
HRESULT Save ();
SharedState* State();
HRESULT Find( /*[in]*/ LPCWSTR wszURL, /*[in]*/ LPCWSTR wszVendorID, /*[out]*/ EntryIter& it );
public:
CPCHContentStore( /*[in]*/ bool fMaster );
~CPCHContentStore();
////////////////////////////////////////////////////////////////////////////////
static CPCHContentStore* s_GLOBAL;
static HRESULT InitializeSystem( /*[in]*/ bool fMaster );
static void FinalizeSystem ( );
////////////////////////////////////////////////////////////////////////////////
HRESULT Acquire( );
HRESULT Release( /*[in]*/ bool fSave = false );
HRESULT Add ( /*[in]*/ LPCWSTR wszURL, /*[in]*/ LPCWSTR wszVendorID, /*[in]*/ LPCWSTR wszVendorName );
HRESULT Remove ( /*[in]*/ LPCWSTR wszURL, /*[in]*/ LPCWSTR wszVendorID, /*[in]*/ LPCWSTR wszVendorName );
HRESULT IsTrusted( /*[in]*/ LPCWSTR wszURL, /*[out]*/ bool& fTrusted , /*[out]*/ MPC::wstring *pszVendorID = NULL, /*[in]*/ bool fUseStore = true );
};
/////////////////////////////////////////////////////////////////////////////
// error codes
#define E_PCH_PROVIDERID_DO_NOT_MATCH _HRESULT_TYPEDEF_(0x80062001)
#define E_PCH_CONTENT_STORE_NOT_INITIALIZED _HRESULT_TYPEDEF_(0x80062002)
#define E_PCH_URI_EXISTS _HRESULT_TYPEDEF_(0x80062003)
#define E_PCH_URI_DOES_NOT_EXIST _HRESULT_TYPEDEF_(0x80062004)
#define E_PCH_CONTENT_STORE_IN_MODIFY_MODE _HRESULT_TYPEDEF_(0x80062005)
#define E_PCH_CONTENT_STORE_IN_LOOKUP_MODE _HRESULT_TYPEDEF_(0x80062006)
#endif // !defined(__INCLUDED___PCH___CONTENTSTOREMGR_H___)