/// <summary> /// Creates an environment. /// </summary> /// <param name="dbHome">The home directory of the new environment.</param> /// <param name="flags">The <see cref="EnvOpenFlags"/> used to open the new /// environment.</param> /// <returns>A new <see cref="Environment"/></returns> public static Environment Create(string dbHome, EnvOpenFlags flags) { return ConcreteFactory.Create<string, EnvOpenFlags, Environment>(dbHome, flags); }
/// <summary> /// Implementation for <see cref="Remove"/> using pseudosingleton. /// </summary> /// <param name="dbHome">The home directory of the environment to remove.</param> /// <param name="openFlags">The <see cref="EnvOpenFlags"/> to use for the removal.</param> /// <param name="force">if <see langword="true"/> then try to remove the environment even if /// other processes are using it; otherwise don't.</param> protected abstract void DoRemove(string dbHome, EnvOpenFlags openFlags, bool force);
// static methods /// <summary> /// Removes an environment. /// </summary> /// <param name="dbHome">The home directory of the environment to remove.</param> /// <param name="openFlags">The <see cref="EnvOpenFlags"/> to use for the removal.</param> /// <param name="force">if <see langword="true"/> then try to remove the environment even if /// other processes are using it; otherwise don't.</param> public static void Remove(string dbHome, EnvOpenFlags openFlags, bool force) { _pseudoSingleton.DoRemove(dbHome, openFlags, force); }
private void InitOpenFlags() { EnvOpenFlags openFlags = 0; if (EnvOpenFlagCollection == null) //nothing { return; } foreach (EnvironmentOpenFlags flag in EnvOpenFlagCollection) { switch (flag) { case EnvironmentOpenFlags.Create: openFlags |= EnvOpenFlags.Create; break; case EnvironmentOpenFlags.InitCDB: openFlags |= EnvOpenFlags.InitCDB; break; case EnvironmentOpenFlags.InitLock: openFlags |= EnvOpenFlags.InitLock; break; case EnvironmentOpenFlags.InitLog: openFlags |= EnvOpenFlags.InitLog; break; case EnvironmentOpenFlags.InitMPool: openFlags |= EnvOpenFlags.InitMPool; break; case EnvironmentOpenFlags.InitRep: openFlags |= EnvOpenFlags.InitRep; break; case EnvironmentOpenFlags.InitTxn: openFlags |= EnvOpenFlags.InitTxn; break; case EnvironmentOpenFlags.JoinEnv: openFlags |= EnvOpenFlags.JoinEnv; break; case EnvironmentOpenFlags.LockDown: openFlags |= EnvOpenFlags.LockDown; break; case EnvironmentOpenFlags.Private: openFlags |= EnvOpenFlags.Private; break; case EnvironmentOpenFlags.Recover: openFlags |= EnvOpenFlags.Recover; break; case EnvironmentOpenFlags.RecoverFatal: openFlags |= EnvOpenFlags.RecoverFatal; break; case EnvironmentOpenFlags.SystemMem: openFlags |= EnvOpenFlags.SystemMem; break; case EnvironmentOpenFlags.ThreadSafe: openFlags |= EnvOpenFlags.ThreadSafe; break; case EnvironmentOpenFlags.UseEnviron: openFlags |= EnvOpenFlags.UseEnviron; break; case EnvironmentOpenFlags.UseEnvironRoot: openFlags |= EnvOpenFlags.UseEnvironRoot; break; case EnvironmentOpenFlags.Register: openFlags |= EnvOpenFlags.Register; break; default: throw new ApplicationException("Unknown Env.OpenFlag '" + flag + "'"); } openFlagsField = openFlags; } }