Exemple #1
0
        ServiceData RegisterService(FinalConfiguration finalConfig, IServiceInfo s)
        {
            ServiceData data;

            if (_services.TryGetValue(s.ServiceFullName, out data))
            {
                return(data);
            }

            //Set default status
            ConfigurationStatus serviceStatus = finalConfig.GetStatus(s.ServiceFullName);
            // Handle generalization.
            ServiceData dataGen = null;

            if (s.Generalization != null)
            {
                dataGen = RegisterService(finalConfig, s.Generalization);
            }
            Debug.Assert((s.Generalization == null) == (dataGen == null));
            if (dataGen == null)
            {
                data = new ServiceData(this, s, serviceStatus);
                _serviceFamilies.Add(data.Family);
            }
            else
            {
                data = new ServiceData(s, dataGen, serviceStatus);
            }
            _services.Add(s.ServiceFullName, data);
            return(data);
        }
Exemple #2
0
        PluginData RegisterPlugin(FinalConfiguration finalConfig, IPluginInfo p)
        {
            PluginData data;

            if (_plugins.TryGetValue(p.PluginFullName, out data))
            {
                return(data);
            }

            ConfigurationStatus pluginStatus = finalConfig.GetStatus(p.PluginFullName);
            ServiceData         service      = p.Service != null ? _services[p.Service.ServiceFullName] : null;

            if (service == null)
            {
                ++_independentPluginsCount;
            }
            data = new PluginData(this, p, service, pluginStatus);
            _plugins.Add(p.PluginFullName, data);
            return(data);
        }