internal IMembershipTable GetMembershipTable(GlobalConfiguration.LivenessProviderType livenessType) { IMembershipTable membershipTable; if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.MembershipTableGrain)) { membershipTable = GrainReference.FromGrainId(Constants.SystemMembershipTableId).Cast <IMembershipTableGrain>(); } else if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.SqlServer)) { membershipTable = new SqlMembershipTable(); } else if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.AzureTable)) { membershipTable = AssemblyLoader.LoadAndCreateInstance <IMembershipTable>(Constants.ORLEANS_AZURE_UTILS_DLL, logger); } else if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.ZooKeeper)) { membershipTable = AssemblyLoader.LoadAndCreateInstance <IMembershipTable>(Constants.ORLEANS_ZOOKEEPER_UTILS_DLL, logger); } else { throw new NotImplementedException("No membership table provider found for LivenessType=" + livenessType); } return(membershipTable); }
internal async Task <IMembershipTable> GetMembershipTable(Silo silo) { var config = silo.GlobalConfig; IMembershipTable membershipTable; GlobalConfiguration.LivenessProviderType livenessType = config.LivenessType; if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.MembershipTableGrain)) { membershipTable = MembershipTableFactory.Cast(GrainReference.FromGrainId(Constants.SystemMembershipTableId)); } else if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.SqlServer)) { membershipTable = await SqlMembershipTable.GetMembershipTable(config, true); } else if (livenessType.Equals(GlobalConfiguration.LivenessProviderType.AzureTable)) { membershipTable = await AzureBasedMembershipTable.GetMembershipTable(config, true); } else { throw new NotImplementedException("No membership table provider found for LivenessType=" + livenessType); } return(membershipTable); }