예제 #1
0
        // Token: 0x06001D5E RID: 7518 RVA: 0x00084B14 File Offset: 0x00082D14
        public static bool ExitLogRepair(Guid dbGuid)
        {
            LogRepair.Tracer.TraceDebug <Guid>(0L, "ExitLogRepair({0})", dbGuid);
            bool result;

            lock (LogRepair.s_globalLock)
            {
                RegistryStateIO registryStateIO = new RegistryStateIO(null, dbGuid.ToString(), false);
                LogRepairMode   logRepairMode;
                registryStateIO.TryReadEnum <LogRepairMode>("LogRepairMode", LogRepairMode.Off, out logRepairMode);
                if (logRepairMode == LogRepairMode.ReplayPending)
                {
                    registryStateIO.WriteEnum <LogRepairMode>("LogRepairMode", LogRepairMode.Off, true);
                    registryStateIO.WriteLong("LogRepairRetryCount", 0L, true);
                    result = true;
                }
                else if (logRepairMode == LogRepairMode.Enabled)
                {
                    LogRepair.Tracer.TraceDebug <Guid>(0L, "ExitLogRepair({0}) skipped because another corruption was reported", dbGuid);
                    result = false;
                }
                else
                {
                    result = true;
                }
            }
            return(result);
        }
예제 #2
0
 // Token: 0x06001D5D RID: 7517 RVA: 0x00084A68 File Offset: 0x00082C68
 public static void EnableLogRepair(Guid dbGuid)
 {
     LogRepair.Tracer.TraceDebug <Guid>(0L, "EnableLogRepair({0})", dbGuid);
     lock (LogRepair.s_globalLock)
     {
         RegistryStateIO registryStateIO = new RegistryStateIO(null, dbGuid.ToString(), false);
         LogRepairMode   logRepairMode;
         registryStateIO.TryReadEnum <LogRepairMode>("LogRepairMode", LogRepairMode.Off, out logRepairMode);
         if (logRepairMode != LogRepairMode.Enabled)
         {
             registryStateIO.WriteEnum <LogRepairMode>("LogRepairMode", LogRepairMode.Enabled, true);
             if (logRepairMode == LogRepairMode.Off)
             {
                 registryStateIO.WriteLong("LogRepairRetryCount", 0L, true);
             }
         }
         else
         {
             LogRepair.Tracer.TraceDebug <Guid>(0L, "EnableLogRepair({0}) skipped because already enabled", dbGuid);
         }
     }
 }