public static ResourceFactoryRegistry <T> GetResourceFactoryRegistry <T>(this IGrainContext context, bool createIfNotExists = false) { ResourceFactoryRegistry <T> result = context.GetComponent <ResourceFactoryRegistry <T> >(); if (createIfNotExists && result == null) { result = new ResourceFactoryRegistry <T>(); context.SetComponent(result); } return(result); }
public static ResourceFactoryRegistry <T> GetResourceFactoryRegistry <T>(this IGrainActivationContext context, bool createIfNotExists = false) { string resourceFactoryRegistryName = ResourceFactoryRegistryName <T>(); ResourceFactoryRegistry <T> result = (context.Items.TryGetValue(resourceFactoryRegistryName, out object resourceFactoryRegistryObj)) ? (ResourceFactoryRegistry <T>)resourceFactoryRegistryObj : default(ResourceFactoryRegistry <T>); if (createIfNotExists && result == null) { context.Items[resourceFactoryRegistryName] = result ?? (result = new ResourceFactoryRegistry <T>()); } return(result); }
public TransactionManagerExtension(IGrainActivationContext context) { this.factories = context.GetResourceFactoryRegistry <ITransactionManager>(); this.managers = new Dictionary <string, ITransactionManager>(); }
public static void RegisterResourceFactory <T>(this IGrainActivationContext context, string name, Func <T> factory) { ResourceFactoryRegistry <T> registry = context.GetResourceFactoryRegistry <T>(true); registry[name] = factory; }
public TransactionalResourceExtension(IGrainContextAccessor contextAccessor) { this.factories = contextAccessor.GrainContext.GetResourceFactoryRegistry <ITransactionalResource>(); this.resources = new Dictionary <string, ITransactionalResource>(); }