2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
14 #include <afs/param.h>
19 #include "svr_syncvldb.h"
20 #include "propcache.h"
24 * DEFINITIONS ________________________________________________________________
30 * PROTOTYPES _________________________________________________________________
34 BOOL CALLBACK Server_SyncVLDB_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
35 void Server_SyncVLDB_OnInitDialog (HWND hDlg, LPIDENT lpi);
36 void Server_SyncVLDB_OnOK (HWND hDlg, LPIDENT lpi);
37 void Server_SyncVLDB_OnEndTask_Init (HWND hDlg, LPTASKPACKET ptp);
41 * ROUTINES ___________________________________________________________________
45 void Server_SyncVLDB (LPIDENT lpi)
48 if ((hCurrent = PropCache_Search (pcSVR_SYNCVLDB, lpi)) != NULL)
54 ModelessDialogParam (IDD_SVR_SYNCVLDB, NULL, (DLGPROC)Server_SyncVLDB_DlgProc, (LPARAM)lpi);
59 BOOL CALLBACK Server_SyncVLDB_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
61 if (AfsAppLib_HandleHelp (IDD_SVR_SYNCVLDB, hDlg, msg, wp, lp))
64 if (msg == WM_INITDIALOG)
65 SetWindowLongPtr (hDlg, DWLP_USER, lp);
68 if ((lpi = (LPIDENT)GetWindowLongPtr (hDlg, DWLP_USER)) != NULL)
73 PropCache_Add (pcSVR_SYNCVLDB, lpi, hDlg);
74 Server_SyncVLDB_OnInitDialog (hDlg, lpi);
79 if ((ptp = (LPTASKPACKET)lp) != NULL)
81 if (ptp->idTask == taskAGG_FIND_GHOST)
82 Server_SyncVLDB_OnEndTask_Init (hDlg, ptp);
91 Server_SyncVLDB_OnOK (hDlg, lpi);
102 PropCache_Delete (pcSVR_SYNCVLDB, lpi);
111 void Server_SyncVLDB_OnInitDialog (HWND hDlg, LPIDENT lpi)
113 if (lpi->fIsServer())
115 TCHAR szServer[ cchNAME ];
116 lpi->GetServerName (szServer);
118 LPTSTR pszText = FormatString (IDS_SYNCVLDB_SVR_DESC, TEXT("%s"), szServer);
119 SetDlgItemText (hDlg, IDC_SYNC_DESC, pszText);
120 FreeString (pszText);
121 pszText = FormatString (IDS_SYNCVLDB_SVR_DESC2, TEXT("%s"), szServer);
122 SetDlgItemText (hDlg, IDC_SYNC_DESC2, pszText);
123 FreeString (pszText);
125 ShowWindow (hDlg, SW_SHOW);
127 else // (lpi->fIsAggregate())
129 TCHAR szServer[ cchNAME ];
130 lpi->GetServerName (szServer);
131 TCHAR szAggregate[ cchNAME ];
132 lpi->GetAggregateName (szAggregate);
134 LPTSTR pszText = FormatString (IDS_SYNCVLDB_AGG_DESC, TEXT("%s%s"), szServer, szAggregate);
135 SetDlgItemText (hDlg, IDC_SYNC_DESC, pszText);
136 FreeString (pszText);
137 pszText = FormatString (IDS_SYNCVLDB_AGG_DESC2, TEXT("%s%s"), szServer, szAggregate);
138 SetDlgItemText (hDlg, IDC_SYNC_DESC2, pszText);
139 FreeString (pszText);
141 StartTask (taskAGG_FIND_GHOST, hDlg, lpi);
146 void Server_SyncVLDB_OnEndTask_Init (HWND hDlg, LPTASKPACKET ptp)
148 if (ptp->rc && (!(TASKDATA(ptp)->wGhost & GHOST_HAS_SERVER_ENTRY)))
150 LPIDENT lpi = (LPIDENT)( ptp->lpUser );
152 TCHAR szServer[ cchNAME ];
153 lpi->GetServerName (szServer);
154 TCHAR szAggregate[ cchNAME ];
155 lpi->GetAggregateName (szAggregate);
157 ErrorDialog (0, IDS_ERROR_CANT_SYNC_GHOST_AGGREGATE, TEXT("%s%s"), szServer, szAggregate);
158 DestroyWindow (hDlg);
162 ShowWindow (hDlg, SW_SHOW);
166 void Server_SyncVLDB_OnOK (HWND hDlg, LPIDENT lpi)
168 LPSVR_SYNCVLDB_PARAMS lpp = New (SVR_SYNCVLDB_PARAMS);
169 lpp->lpi = (LPIDENT)GetWindowLongPtr (hDlg, DWLP_USER);
171 StartTask (taskSVR_SYNCVLDB, NULL, lpp);