internal PersistentDataStoreBuilder(IPersistentDataStoreAsyncFactory coreAsyncFactory) { _coreFactory = null; _coreAsyncFactory = coreAsyncFactory; }
/// <summary> /// Returns a configurable factory for a persistent data store. /// </summary> /// <remarks> /// <para> /// This method takes an <see cref="IPersistentDataStoreFactory"/> that is provided by /// some persistent data store implementation (i.e. a database integration), and converts /// it to a <see cref="PersistentDataStoreBuilder"/> which can be used to add /// caching behavior. You can then pass the <see cref="PersistentDataStoreBuilder"/> /// object to <see cref="ConfigurationBuilder.DataStore(IDataStoreFactory)"/> to use this /// configuration in the SDK. Example usage: /// </para> /// <code> /// var myStore = Components.PersistentDataStore(Redis.FeatureStore()) /// .CacheTtl(TimeSpan.FromSeconds(45)); /// var config = Configuration.Builder(sdkKey) /// .DataStore(myStore) /// .Build(); /// </code> /// <para> /// The method is overloaded because some persistent data store implementations /// use <see cref="IPersistentDataStoreFactory"/> while others use /// <see cref="IPersistentDataStoreAsyncFactory"/>. /// </para> /// </remarks> /// <param name="storeFactory">the factory for the underlying data store</param> /// <returns>a <see cref="PersistentDataStoreBuilder"/></returns> public static PersistentDataStoreBuilder PersistentDataStore(IPersistentDataStoreAsyncFactory storeFactory) { return(new PersistentDataStoreBuilder(storeFactory)); }