示例#1
0
        public Conductor(ICoreProcessFactory coreProcessFactory, ICoreLinkFactory coreLinkFactory,
                         ICoreControllerFactory coreControllerFactory, ICoreProxyFactory coreProxyFactory,
                         IModelUpdaterFactory modelUpdaterFactory, IModelProviderFactory modelProviderFactory,
                         ICharmdRunner charmdRunner)
        {
            m_coreProcessFactory    = coreProcessFactory;
            m_coreLinkFactory       = coreLinkFactory;
            m_coreControllerFactory = coreControllerFactory;
            m_coreProxyFactory      = coreProxyFactory;
            m_modelUpdaterFactory   = modelUpdaterFactory;
            m_charmdRunner          = charmdRunner;

            ModelProvider = modelProviderFactory.Create(this);
        }
示例#2
0
        public void Add(IModelProviderFactory factory)
        {
            var factoryTypeName  = factory.GetType().Name;
            var providerNickname = GetProviderDictionaryKey(factoryTypeName);

            if (_providers.ContainsKey(providerNickname))
            {
                Log.Debug("Model Provider already registered for {0} -- skipping...", providerNickname);
                return;
            }

            _providers.Add(providerNickname, factory);

            Log.Info("Added model provider factory {0} ({1})",
                     providerNickname, factoryTypeName);
        }
示例#3
0
        public IModelProvider Create(string provider)
        {
            Log.Debug("Creating model provider for {0}...", provider);

            IModelProviderFactory factory = GetProviderFactory(provider);

            if (factory != null)
            {
                Log.Debug("Found registered model provider {0}", factory.GetType().Name);
            }
            else
            {
                Log.Warn("Could not find {0} -- falling back to default model provider factory",
                         provider);

                factory = DefaultFactory;
            }

            Log.Debug("Creating {0}...", factory.GetType().Name);

            return(factory.Create());
        }
 /// <summary>
 /// Configures the <see cref="IModelProviderFactory"/> to use the <see cref="MemoryModelProvider"/>
 /// </summary>
 /// <remarks>Note: The <see cref="MemoryModelProvider"/> does not support all storage options. In
 /// particular it has no persistance mechanism except from storing back to IFC/IfcXml.
 /// If you require 'random access' without always holding the model in memory, another
 /// ModelProvider may be required. See Xbim.IO.Esent.HeuristicModelProvider.
 /// </remarks>
 /// <param name="providerFactory">The <see cref="IModelProviderFactory"/> to configure</param>
 /// <returns>The <see cref="IModelProviderFactory"/></returns>
 public static IModelProviderFactory UseMemoryModelProvider(this IModelProviderFactory providerFactory)
 {
     providerFactory.Use(() => new MemoryModelProvider());
     return(providerFactory);
 }
 /// <summary>
 /// Configures the <see cref="IModelProviderFactory"/> to use the <see cref="HeuristicModelProvider"/>
 /// </summary>
 /// <remarks>This provider gives the best performance and functionality tradeoff by using both the
 /// <see cref="EsentModel"/> and <see cref="IO.Memory.MemoryModel"/></remarks>
 /// <param name="providerFactory">The <see cref="IModelProviderFactory"/> to configure</param>
 /// <returns>The <see cref="IModelProviderFactory"/></returns>
 public static IModelProviderFactory UseHeuristicModelProvider(this IModelProviderFactory providerFactory)
 {
     providerFactory.Use(() => new HeuristicModelProvider());
     return(providerFactory);
 }
示例#6
0
 public COBieModelProviderFactory()
 {
     inner = new DefaultModelProviderFactory();
 }