public void Initialize(IConfigSource config, IRegistryCore registry)
{
IConfig m_config = config.Configs["UniverseData"];
if (m_config != null)
{
StorageProvider = m_config.GetString("StorageProvider", StorageProvider);
ConnectionString = m_config.GetString("ConnectionString", ConnectionString);
}
IGenericData DataConnector = null;
if (StorageProvider == "MySQL")
//Allow for fallback when eData isn't set
{
MySQLDataLoader GenericData = new MySQLDataLoader();
DataConnector = GenericData;
}
else if (StorageProvider == "SQLite")
//Allow for fallback when Data isn't set
{
SQLiteLoader GenericData = new SQLiteLoader();
// set default data directory in case it is needed
var simBase = registry.RequestModuleInterface<ISimulationBase> ();
GenericData.DefaultDataPath = simBase.DefaultDataPath;
DataConnector = GenericData;
}
List<IUniverseDataPlugin> Plugins = UniverseModuleLoader.PickupModules<IUniverseDataPlugin>();
foreach (IUniverseDataPlugin plugin in Plugins)
{
try
{
plugin.Initialize(DataConnector == null ? null : DataConnector.Copy(), config, registry, ConnectionString);
}
catch (Exception ex)
{
if (MainConsole.Instance != null)
MainConsole.Instance.Warn("[Data Service]: Exception occurred starting data plugin " + plugin.Name + ", " + ex);
}
}
}