示例#1
0
		/// <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);
		}
示例#2
0
		/// <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);
示例#3
0
		// 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);
		}
示例#4
0
        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;
            }
        }