//----------------------------------------------------------------------------- // dbRestore //----------------------------------------------------------------------------- /// <summary> /// Restores a previously backed up database. The <paramref name="sBackupPath"/> parameter /// and the <paramref name="restoreClient"/> parameter are mutually exclusive. If the /// <paramref name="restoreClient"/> parameter is null, then the backup data will be read from /// <paramref name="sBackupPath"/>. If <paramref name="restoreClient"/> is non-null, /// <paramref name="sBackupPath"/> is ignored. /// </summary> /// <param name="sDbPath"> /// The name of the control file of the database to restore. /// </param> /// <param name="sDataDir"> /// The data file directory. For more information see <see cref="dbCreate"/>. /// </param> /// <param name="sRflDir"> /// The roll-forward log file directory. For more information see <see cref="dbCreate"/>. /// </param> /// <param name="sBackupPath"> /// The path to the backup files. This may be null. If /// non-null, it specifies the directory where the backup files which are /// to be restored are found. If null, the <paramref name="restoreClient"/> parameter must be /// non-null. /// </param> /// <param name="sPassword"> /// Password for the backup. If non-null, the database key in /// the backup was wrapped in a password instead of the local NICI storage /// key. This allows the database to be restored to a different machine if /// desired. If null, the database can only be restored to the same machine /// where it originally existed. /// </param> /// <param name="restoreClient"> /// An object implementing the <see cref="RestoreClient"/> interface. This may be null. If /// non-null, it is an object that knows how to get the backup data. /// </param> /// <param name="restoreStatus"> /// An object implementing <see cref="RestoreStatus"/> interface. This may be null. If /// non-null, it is a callback object whose methods will be called to report /// restore progress. /// </param> public void dbRestore( string sDbPath, string sDataDir, string sRflDir, string sBackupPath, string sPassword, RestoreClient restoreClient, RestoreStatus restoreStatus) { RCODE rc; RestoreClientDelegate restoreClientDelegate = null; RestoreClientCallback fnRestoreClient = null; RestoreStatusDelegate restoreStatusDelegate = null; RestoreStatusCallback fnRestoreStatus = null; if (restoreClient != null) { restoreClientDelegate = new RestoreClientDelegate( restoreClient); fnRestoreClient = new RestoreClientCallback( restoreClientDelegate.funcRestoreClient); } if (restoreStatus != null) { restoreStatusDelegate = new RestoreStatusDelegate( restoreStatus); fnRestoreStatus = new RestoreStatusCallback( restoreStatusDelegate.funcRestoreStatus); } if ((rc = xflaim_DbSystem_dbRestore( m_pDbSystem, sDbPath, sDataDir, sRflDir, sBackupPath, sPassword, fnRestoreClient, fnRestoreStatus)) != 0) { throw new XFlaimException( rc); } }
public RestoreClientDelegate( RestoreClient restoreClient) { m_restoreClient = restoreClient; }