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.
|
|
/*++
� 1998 Seagate Software, Inc. All rights reserved.
Module Name:
Wsbdbsys.h
Abstract:
The CWsbDbSys class.
Author:
Ron White [ronw] 7-May-1997
Revision History:
--*/
#ifndef _WSBDBSYS_
#define _WSBDBSYS_
#include "wsbdb.h"
#include "wsbdbses.h"
#include "resource.h"
#define IDB_DB_FILE_SUFFIX L"jet"
// Default no. of Jet sessions per process is currently 128 which may not be enough for HSM
#define IDB_MAX_NOF_SESSIONS 32
/*++
Class Name:
CWsbDbSys
Class Description:
The IDB system object. One must be created for each process that wants to use the IDB system. The Init method needs to be called after the object is created.
--*/
class CWsbDbSys : public IWsbDbSys, public IWsbDbSysPriv, public CComObjectRoot, public CComCoClass<CWsbDbSys,&CLSID_CWsbDbSys> { friend class CWsbDb; friend class CWsbDbSes;
public: CWsbDbSys() {} BEGIN_COM_MAP( CWsbDbSys ) COM_INTERFACE_ENTRY( IWsbDbSys ) COM_INTERFACE_ENTRY( IWsbDbSysPriv ) END_COM_MAP( )
DECLARE_REGISTRY_RESOURCEID( IDR_CWsbDbSys )
// CComObjectRoot
public: STDMETHOD(FinalConstruct)(void); void FinalRelease(void);
// IWsbDbSys
public: STDMETHOD(Backup)(OLECHAR* path, ULONG flags); STDMETHOD(Init)(OLECHAR* path, ULONG flags); STDMETHOD(Terminate)(void); STDMETHOD(NewSession)(IWsbDbSession** ppSession); STDMETHOD(GetGlobalSession)(IWsbDbSession** ppSession); STDMETHOD(Restore)(OLECHAR* fromPath, OLECHAR* toPath); STDMETHOD(IncrementChangeCount)(void);
// IWsbDbSysPriv
public: STDMETHOD(DbAttachedAdd)(OLECHAR* name, BOOL attach); STDMETHOD(DbAttachedEmptySlot)(void); STDMETHOD(DbAttachedInit)(void); STDMETHOD(DbAttachedRemove)(OLECHAR* name);
// Internal
STDMETHOD(AutoBackup)(void);
// Data
private: HANDLE m_AutoThread; CWsbStringPtr m_BackupPath; // File path for backup directory
CWsbStringPtr m_InitPath; // File path from Init() call
LONG m_ChangeCount; // Count of DB changes since last backup
FILETIME m_LastChange; // Time of last DB change
CComPtr<IWsbDbSession> m_pWsbDbSession; // A global Jet session for this Jet instance
HANDLE m_BackupEvent; // An event to sync Jet backups
HANDLE m_terminateEvent; // An event for signaling termination to the auto-backup thread
BOOL m_bLogErrors; // Whether to log errors or not
BOOL m_jet_initialized; JET_INSTANCE m_jet_instance; };
HRESULT wsb_db_jet_check_error(LONG jstat, char *fileName, DWORD lineNo); HRESULT wsb_db_jet_fix_path(OLECHAR* path, OLECHAR* ext, char** new_path);
// Capture FILE/LINE info on a JET error
#define jet_error(_jstat) \
wsb_db_jet_check_error(_jstat, __FILE__, __LINE__)
#endif // _WSBDBSYS_
|