/// <summary>
 /// Reloads the storage component.
 /// </summary>
 /// <param name="berkeleyDbConfig">The berkeley db config.</param>
 /// <param name="relayComponent">The relay component.</param>
 private static void ReloadStorageComponent(BerkeleyDbConfig berkeleyDbConfig, IRelayComponent relayComponent)
 {
     if (relayComponent is BerkeleyDbComponent)
     {
         (relayComponent as BerkeleyDbComponent).ReloadConfig(berkeleyDbConfig);
     }
     else
     {
         throw new Exception("Reload of CacheIndexStoreV3 Failed. Expected underlying storage to be a BDB component.");
     }
 }
        /// <summary>
        /// Initialize Store
        /// </summary>
        /// <param name="config">BerkeleyDb Config</param>
        public void Initialize(object config)
        {
            BerkeleyDbConfig bdbConfig = (BerkeleyDbConfig)config;

            store.Initialize(InstanceName, bdbConfig);

            string perfInstanceName = RetrievePerfCounterInstanceName(bdbConfig.EnvironmentConfig.HomeDirectory);

            this.perfCounterInstanceName = perfInstanceName;

            BerkeleyBinaryStorePerformanceCounters.Instance.InitializeCounters(this.perfCounterInstanceName);
        }
        /// <summary>
        /// Initializes the storage component.
        /// </summary>
        /// <param name="berkeleyDbConfig">The berkeley db config.</param>
        /// <returns>Storage Component</returns>
        private static IRelayComponent InitializeStorageComponent(BerkeleyDbConfig berkeleyDbConfig)
        {
            // create and init bdb component
            BerkeleyDbComponent bdbComponent = new BerkeleyDbComponent();

            try
            {
                bdbComponent.Initialize(berkeleyDbConfig, COMPONENT_NAME, null);
            }
            catch (Exception ex)
            {
                LoggingUtil.Log.ErrorFormat("Failed to Initialize BerkeleyDbComponent : {0}", ex);
                throw ex;
            }
            return(bdbComponent);
        }
        /// <summary>
        /// Initializes the storage component.
        /// </summary>
        /// <param name="berkeleyDbConfig">The berkeley db config.</param>
        /// <returns>IBinaryStorage Component</returns>
        private static IBinaryStorage InitializeStorageComponent(BerkeleyDbConfig berkeleyDbConfig)
        {
            // create and init bdb component
            IBinaryStorage bdbComponent = new BerkeleyBinaryStore();

            try
            {
                bdbComponent.Initialize(berkeleyDbConfig);
            }
            catch (Exception ex)
            {
                LoggingUtil.Log.ErrorFormat("Failed to Initialize BerkeleyDbComponent : {0}", ex);
                throw ex;
            }

            return(bdbComponent);
        }
 /// <summary>
 /// Reloads the storage component.
 /// </summary>
 /// <param name="berkeleyDbConfig">The berkeley db config.</param>
 /// <param name="relayComponent">The relay component.</param>
 private static void ReloadStorageComponent(BerkeleyDbConfig berkeleyDbConfig, IBinaryStorage binaryStorage)
 {
     binaryStorage.Reinitialize(berkeleyDbConfig);
 }