485 lines
12 KiB
C++
485 lines
12 KiB
C++
/**********************************************************************/
|
|
/** Microsoft LAN Manager **/
|
|
/** Copyright(c) Microsoft Corp., 1990, 1991 **/
|
|
/**********************************************************************/
|
|
|
|
/*
|
|
lmoerepl.hxx
|
|
This file contains the class declarations for the REPL_EDIR0_ENUM,
|
|
REPL_EDIR1_ENUM, REPL_EDIR2_ENUM, REPL_IDIR0_ENUM, and
|
|
REPL_IDIR1_ENUM classes and their associated iterators.
|
|
and FILE3_ENUM_ITER classes.
|
|
|
|
FILE HISTORY:
|
|
KeithMo 26-Feb-1992 Created for the Server Manager.
|
|
|
|
*/
|
|
|
|
#ifndef _LMOEREPL_HXX_
|
|
#define _LMOEREPL_HXX_
|
|
|
|
|
|
#include "lmoenum.hxx"
|
|
#include "string.hxx"
|
|
|
|
|
|
//
|
|
// Export directory enumerators.
|
|
//
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_EDIR_ENUM
|
|
|
|
SYNOPSIS: Base class for replicator export directory enumerations.
|
|
|
|
INTERFACE: REPL_EDIR_ENUM - Class constructor.
|
|
|
|
~REPL_EDIR__ENUM - Class destructor.
|
|
|
|
CallAPI - Invoke the enumeration API.
|
|
|
|
PARENT: LOC_LM_ENUM
|
|
|
|
USES: NLS_STR
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_EDIR_ENUM : public LOC_LM_ENUM
|
|
{
|
|
private:
|
|
virtual APIERR CallAPI( BYTE ** ppbBuffer,
|
|
UINT * pcEntriesRead );
|
|
|
|
protected:
|
|
REPL_EDIR_ENUM( const TCHAR * pszServer,
|
|
UINT Level );
|
|
|
|
}; // class REPL_EDIR_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_EDIR0_ENUM
|
|
|
|
SYNOPSIS: Info level 0 replicator export directory enumerator.
|
|
|
|
INTERFACE: REPL_EDIR0_ENUM - Class constructor.
|
|
|
|
~REPL_EDIR0_ENUM - Class destructor.
|
|
|
|
|
|
PARENT: REPL_EDIR_ENUM
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_EDIR0_ENUM : public REPL_EDIR_ENUM
|
|
{
|
|
public:
|
|
REPL_EDIR0_ENUM( const TCHAR * pszServer );
|
|
|
|
}; // class REPL_EDIR0_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_EDIR0_ENUM_OBJ
|
|
|
|
SYNOPSIS: This is basically the return type from the
|
|
REPL_EDIR0_ENUM_ITER iterator.
|
|
|
|
INTERFACE: REPL_EDIR0_ENUM_OBJ - Class constructor.
|
|
|
|
~REPL_EDIR0_ENUM_OBJ - Class destructor.
|
|
|
|
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
|
|
|
|
QueryDirName - Returns the directory name.
|
|
|
|
PARENT: ENUM_OBJ_BASE
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_EDIR0_ENUM_OBJ : public ENUM_OBJ_BASE
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Provide properly-casted buffer Query/Set methods.
|
|
//
|
|
|
|
const REPL_EDIR_INFO_0 * QueryBufferPtr( VOID ) const
|
|
{ return (const REPL_EDIR_INFO_0 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
|
|
|
|
VOID SetBufferPtr( const REPL_EDIR_INFO_0 * pBuffer )
|
|
{ ENUM_OBJ_BASE::SetBufferPtr( (const BYTE *)pBuffer ); }
|
|
|
|
//
|
|
// Accessors.
|
|
//
|
|
|
|
DECLARE_ENUM_ACCESSOR( QueryDirName, const TCHAR *, rped0_dirname );
|
|
|
|
}; // class REPL_EDIR0_ENUM_OBJ
|
|
|
|
DECLARE_LM_ENUM_ITER_OF( REPL_EDIR0, REPL_EDIR_INFO_0 );
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_EDIR1_ENUM
|
|
|
|
SYNOPSIS: Info level 1 replicator export directory enumerator.
|
|
|
|
INTERFACE: REPL_EDIR1_ENUM - Class constructor.
|
|
|
|
~REPL_EDIR1_ENUM - Class destructor.
|
|
|
|
PARENT: REPL_EDIR_ENUM
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_EDIR1_ENUM : public REPL_EDIR_ENUM
|
|
{
|
|
public:
|
|
REPL_EDIR1_ENUM( const TCHAR * pszServer );
|
|
|
|
}; // class REPL_EDIR1_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_EDIR1_ENUM_OBJ
|
|
|
|
SYNOPSIS: This is basically the return type from the
|
|
REPL_EDIR1_ENUM_ITER iterator.
|
|
|
|
INTERFACE: REPL_EDIR1_ENUM_OBJ - Class constructor.
|
|
|
|
~REPL_EDIR1_ENUM_OBJ - Class destructor.
|
|
|
|
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
|
|
|
|
QueryDirName - Returns the directory name.
|
|
|
|
QueryIntegrity - Returns the directory integrity.
|
|
|
|
QueryExtent - Returns the directory extent.
|
|
|
|
PARENT: ENUM_OBJ_BASE
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_EDIR1_ENUM_OBJ : public ENUM_OBJ_BASE
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Provide properly-casted buffer Query/Set methods.
|
|
//
|
|
|
|
const REPL_EDIR_INFO_1 * QueryBufferPtr( VOID ) const
|
|
{ return (const REPL_EDIR_INFO_1 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
|
|
|
|
VOID SetBufferPtr( const REPL_EDIR_INFO_1 * pBuffer )
|
|
{ ENUM_OBJ_BASE::SetBufferPtr( (const BYTE *)pBuffer ); }
|
|
|
|
//
|
|
// Accessors.
|
|
//
|
|
|
|
DECLARE_ENUM_ACCESSOR( QueryDirName, const TCHAR *, rped1_dirname );
|
|
DECLARE_ENUM_ACCESSOR( QueryIntegrity, ULONG, rped1_integrity );
|
|
DECLARE_ENUM_ACCESSOR( QueryExtent, ULONG, rped1_extent );
|
|
|
|
}; // class REPL_EDIR1_ENUM_OBJ
|
|
|
|
DECLARE_LM_ENUM_ITER_OF( REPL_EDIR1, REPL_EDIR_INFO_1 );
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_EDIR2_ENUM
|
|
|
|
SYNOPSIS: Info level 2 replicator export directory enumerator.
|
|
|
|
INTERFACE: REPL_EDIR2_ENUM - Class constructor.
|
|
|
|
~REPL_EDIR2_ENUM - Class destructor.
|
|
|
|
PARENT: REPL_EDIR_ENUM
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_EDIR2_ENUM : public REPL_EDIR_ENUM
|
|
{
|
|
public:
|
|
REPL_EDIR2_ENUM( const TCHAR * pszServer );
|
|
|
|
}; // class REPL_EDIR2_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_EDIR2_ENUM_OBJ
|
|
|
|
SYNOPSIS: This is basically the return type from the
|
|
REPL_EDIR2_ENUM_ITER iterator.
|
|
|
|
INTERFACE: REPL_EDIR2_ENUM_OBJ - Class constructor.
|
|
|
|
~REPL_EDIR2_ENUM_OBJ - Class destructor.
|
|
|
|
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
|
|
|
|
QueryDirName - Returns the directory name.
|
|
|
|
QueryIntegrity - Returns the directory integrity.
|
|
|
|
QueryExtent - Returns the directory extent.
|
|
|
|
QueryLockCount - Returns the directory lock count.
|
|
|
|
QueryLockTime - Returns the directory lock time.
|
|
|
|
PARENT: ENUM_OBJ_BASE
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_EDIR2_ENUM_OBJ : public ENUM_OBJ_BASE
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Provide properly-casted buffer Query/Set methods.
|
|
//
|
|
|
|
const REPL_EDIR_INFO_2 * QueryBufferPtr( VOID ) const
|
|
{ return (const REPL_EDIR_INFO_2 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
|
|
|
|
VOID SetBufferPtr( const REPL_EDIR_INFO_2 * pBuffer )
|
|
{ ENUM_OBJ_BASE::SetBufferPtr( (const BYTE *)pBuffer ); }
|
|
|
|
//
|
|
// Accessors.
|
|
//
|
|
|
|
DECLARE_ENUM_ACCESSOR( QueryDirName, const TCHAR *, rped2_dirname );
|
|
DECLARE_ENUM_ACCESSOR( QueryIntegrity, ULONG, rped2_integrity );
|
|
DECLARE_ENUM_ACCESSOR( QueryExtent, ULONG, rped2_extent );
|
|
DECLARE_ENUM_ACCESSOR( QueryLockCount, ULONG, rped2_lockcount );
|
|
DECLARE_ENUM_ACCESSOR( QueryLockTime, ULONG, rped2_locktime );
|
|
|
|
}; // class REPL_EDIR2_ENUM_OBJ
|
|
|
|
DECLARE_LM_ENUM_ITER_OF( REPL_EDIR2, REPL_EDIR_INFO_2 );
|
|
|
|
|
|
//
|
|
// Import directory enumerators.
|
|
//
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_IDIR_ENUM
|
|
|
|
SYNOPSIS: Base class for replicator export directory enumerations.
|
|
|
|
INTERFACE: REPL_IDIR_ENUM - Class constructor.
|
|
|
|
~REPL_IDIR__ENUM - Class destructor.
|
|
|
|
CallAPI - Invoke the enumeration API.
|
|
|
|
PARENT: LOC_LM_ENUM
|
|
|
|
USES: NLS_STR
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_IDIR_ENUM : public LOC_LM_ENUM
|
|
{
|
|
private:
|
|
virtual APIERR CallAPI( BYTE ** ppbBuffer,
|
|
UINT * pcEntriesRead );
|
|
|
|
protected:
|
|
REPL_IDIR_ENUM( const TCHAR * pszServer,
|
|
UINT Level );
|
|
|
|
}; // class REPL_IDIR_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_IDIR0_ENUM
|
|
|
|
SYNOPSIS: Info level 0 replicator export directory enumerator.
|
|
|
|
INTERFACE: REPL_IDIR0_ENUM - Class constructor.
|
|
|
|
~REPL_IDIR0_ENUM - Class destructor.
|
|
|
|
PARENT: REPL_IDIR_ENUM
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_IDIR0_ENUM : public REPL_IDIR_ENUM
|
|
{
|
|
public:
|
|
REPL_IDIR0_ENUM( const TCHAR * pszServer );
|
|
|
|
}; // class REPL_IDIR0_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_IDIR0_ENUM_OBJ
|
|
|
|
SYNOPSIS: This is basically the return type from the
|
|
REPL_IDIR0_ENUM_ITER iterator.
|
|
|
|
INTERFACE: REPL_IDIR0_ENUM_OBJ - Class constructor.
|
|
|
|
~REPL_IDIR0_ENUM_OBJ - Class destructor.
|
|
|
|
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
|
|
|
|
QueryDirName - Returns the directory name.
|
|
|
|
PARENT: ENUM_OBJ_BASE
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_IDIR0_ENUM_OBJ : public ENUM_OBJ_BASE
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Provide properly-casted buffer Query/Set methods.
|
|
//
|
|
|
|
const REPL_IDIR_INFO_0 * QueryBufferPtr( VOID ) const
|
|
{ return (const REPL_IDIR_INFO_0 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
|
|
|
|
VOID SetBufferPtr( const REPL_IDIR_INFO_0 * pBuffer )
|
|
{ ENUM_OBJ_BASE::SetBufferPtr( (const BYTE *)pBuffer ); }
|
|
|
|
//
|
|
// Accessors.
|
|
//
|
|
|
|
DECLARE_ENUM_ACCESSOR( QueryDirName, const TCHAR *, rpid0_dirname );
|
|
|
|
}; // class REPL_IDIR0_ENUM_OBJ
|
|
|
|
DECLARE_LM_ENUM_ITER_OF( REPL_IDIR0, REPL_IDIR_INFO_0 );
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_IDIR1_ENUM
|
|
|
|
SYNOPSIS: Info level 1 replicator export directory enumerator.
|
|
|
|
INTERFACE: REPL_IDIR1_ENUM - Class constructor.
|
|
|
|
~REPL_IDIR1_ENUM - Class destructor.
|
|
|
|
PARENT: REPL_IDIR_ENUM
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_IDIR1_ENUM : public REPL_IDIR_ENUM
|
|
{
|
|
public:
|
|
REPL_IDIR1_ENUM( const TCHAR * pszServer );
|
|
|
|
}; // class REPL_IDIR1_ENUM
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
NAME: REPL_IDIR1_ENUM_OBJ
|
|
|
|
SYNOPSIS: This is basically the return type from the
|
|
REPL_IDIR1_ENUM_ITER iterator.
|
|
|
|
INTERFACE: REPL_IDIR1_ENUM_OBJ - Class constructor.
|
|
|
|
~REPL_IDIR1_ENUM_OBJ - Class destructor.
|
|
|
|
QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
|
|
|
|
QueryDirName - Returns the directory name.
|
|
|
|
QueryState - Returns the directory state.
|
|
|
|
QueryMasterName - Returns the directory master name.
|
|
|
|
QueryLastUpdateTime - Returns the time of the last update.
|
|
|
|
QueryLockCount - Returns the lock count.
|
|
|
|
QueryLockTime - Returns the lock time.
|
|
|
|
PARENT: ENUM_OBJ_BASE
|
|
|
|
HISTORY:
|
|
KeithMo 26-Feb-1992 Created
|
|
|
|
**************************************************************************/
|
|
DLL_CLASS REPL_IDIR1_ENUM_OBJ : public ENUM_OBJ_BASE
|
|
{
|
|
public:
|
|
|
|
//
|
|
// Provide properly-casted buffer Query/Set methods.
|
|
//
|
|
|
|
const REPL_IDIR_INFO_1 * QueryBufferPtr( VOID ) const
|
|
{ return (const REPL_IDIR_INFO_1 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
|
|
|
|
VOID SetBufferPtr( const REPL_IDIR_INFO_1 * pBuffer )
|
|
{ ENUM_OBJ_BASE::SetBufferPtr( (const BYTE *)pBuffer ); }
|
|
|
|
//
|
|
// Accessors.
|
|
//
|
|
|
|
DECLARE_ENUM_ACCESSOR( QueryDirName, const TCHAR *, rpid1_dirname );
|
|
DECLARE_ENUM_ACCESSOR( QueryState, ULONG, rpid1_state );
|
|
DECLARE_ENUM_ACCESSOR( QueryMasterName, const TCHAR *, rpid1_mastername );
|
|
DECLARE_ENUM_ACCESSOR( QueryLastUpdateTime, ULONG, rpid1_last_update_time );
|
|
DECLARE_ENUM_ACCESSOR( QueryLockCount, ULONG, rpid1_lockcount );
|
|
DECLARE_ENUM_ACCESSOR( QueryLockTime, ULONG, rpid1_locktime );
|
|
|
|
}; // class REPL_IDIR1_ENUM_OBJ
|
|
|
|
DECLARE_LM_ENUM_ITER_OF( REPL_IDIR1, REPL_IDIR_INFO_1 );
|
|
|
|
|
|
#endif // _LMOEREPL_HXX_
|