177 lines
3.5 KiB
C
177 lines
3.5 KiB
C
#ifndef _RPLPULL_
|
|
#define _RPLPULL_
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*++
|
|
|
|
Copyright (c) 1989 Microsoft Corporation
|
|
|
|
Module Name:
|
|
rplpull.h
|
|
|
|
|
|
Abstract:
|
|
|
|
|
|
|
|
|
|
|
|
Functions:
|
|
|
|
|
|
|
|
Portability:
|
|
|
|
|
|
This header is portable.
|
|
|
|
Author:
|
|
|
|
Pradeep Bahl (PradeepB) Jan-1993
|
|
|
|
|
|
|
|
Revision History:
|
|
|
|
Modification Date Person Description of Modification
|
|
------------------ ------- ---------------------------
|
|
|
|
--*/
|
|
|
|
/*
|
|
includes
|
|
*/
|
|
#include "wins.h"
|
|
#include "rpl.h"
|
|
/*
|
|
defines
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
macros
|
|
*/
|
|
|
|
/*
|
|
externs
|
|
*/
|
|
|
|
|
|
extern HANDLE RplPullCnfEvtHdl; //handle to event signaled by main
|
|
//thread when a configuration change
|
|
//has to be given to the Pull handler
|
|
//thread
|
|
|
|
|
|
|
|
#if 0
|
|
extern BOOL fRplPullAddDiffInCurrRplCycle;
|
|
|
|
extern BOOL fRplPullTriggeredWins; //indicates that during the current
|
|
//replication cycle, one or more
|
|
//WINS's were triggered. This
|
|
//when TRUE, then if the above
|
|
//"AddDiff.." flag is TRUE, it means
|
|
//that the PULL thread should trigger
|
|
//all PULL Pnrs that have an INVALID
|
|
//metric in their UpdateCount field
|
|
//(of the RPL_CONFIG_T struct)
|
|
|
|
extern BOOL fRplPullTrigger;//Indication to the PULL thread to
|
|
//trigger Pull pnrs since one or more
|
|
//address changed. fRplPullTriggerWins
|
|
//has got be FALSE when this is true
|
|
#endif
|
|
|
|
//
|
|
// indicates whether the pull thread sent a continue signal to the SC
|
|
//
|
|
extern BOOL fRplPullContinueSent;
|
|
|
|
//
|
|
// This array is indexed by the id. of an RQ server that has entries in
|
|
// our database. Each owner's max. version number is stored in this array
|
|
//
|
|
extern PRPL_VERS_NOS_T pRplPullOwnerVersNo;
|
|
|
|
extern DWORD RplPullCnfMagicNo;
|
|
|
|
extern DWORD RplPullMaxNoOfWins; //slots in the RplPullOwnerVersNo
|
|
|
|
/*
|
|
typedef definitions
|
|
*/
|
|
|
|
typedef struct _PUSHPNR_DATA_T {
|
|
DWORD PushPnrId; //id of the Push Pnr
|
|
COMM_ADD_T WinsAdd; //address of the Push Pnr
|
|
PRPL_CONFIG_REC_T pPullCnfRec; //configuration record.
|
|
COMM_HDL_T DlgHdl; //Hdl of dlg with Push Pnr
|
|
BOOL fPrsConn; //indicates whether dlg is persistent
|
|
DWORD NoOfMaps; //no of IP address to Version No.
|
|
//Maps sent by the Push Pnr
|
|
PRPL_ADD_VERS_NO_T pAddVers; //maps
|
|
|
|
DWORD RplType; //type of replication
|
|
BYTE fDlgStarted; //indicates whether the dlg has
|
|
//been started
|
|
BOOL fToUse;
|
|
VERS_NO_T MaxVersNoToGet;
|
|
} PUSHPNR_DATA_T, *PPUSHPNR_DATA_T;
|
|
|
|
typedef struct _PUSHPNR_TO_PULL_FROM_T {
|
|
PPUSHPNR_DATA_T pPushPnrData;
|
|
VERS_NO_T VersNo; //max version number for an owner
|
|
} PUSHPNR_TO_PULL_FROM_T, *PPUSHPNR_TO_PULL_FROM_T;
|
|
|
|
/*
|
|
function declarations
|
|
*/
|
|
|
|
extern DWORD RplPullInit(LPVOID);
|
|
|
|
extern
|
|
VOID
|
|
RplPullPullEntries(
|
|
PCOMM_HDL_T pDlgHdl,
|
|
DWORD OwnerId,
|
|
VERS_NO_T MaxVersNo,
|
|
VERS_NO_T MinVersNo,
|
|
WINS_CLIENT_E Client_e,
|
|
LPBYTE *ppRspBuff,
|
|
BOOL fUpdCntrs,
|
|
DWORD RplType
|
|
);
|
|
|
|
|
|
extern
|
|
STATUS
|
|
RplPullRegRepl(
|
|
LPBYTE pName,
|
|
DWORD NameLen,
|
|
DWORD Flag,
|
|
DWORD OwnerId,
|
|
VERS_NO_T VersNo,
|
|
DWORD NoOfAdds,
|
|
PCOMM_ADD_T pNodeAdd,
|
|
PCOMM_ADD_T pOwnerWinsAdd,
|
|
DWORD RplType
|
|
);
|
|
|
|
VOID
|
|
RplPullAllocVersNoArray(
|
|
PRPL_VERS_NOS_T *ppRplOwnerVersNo,
|
|
DWORD CurrentNo
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif //_RPLPULL_
|