Ejemplo n.º 1
0
        public void MultiEntitiesInitPipelines()
        {
            EntitySpider context = new DefaultEntitySpider();

            context.Identity  = (Guid.NewGuid().ToString("N"));
            context.ThreadNum = 1;
            context.AddPipeline(new MySqlEntityPipeline("Database='mysql';Data Source=localhost;User ID=root;Password=;Port=3306;SslMode=None;"));
            context.AddPipeline(new MySqlFileEntityPipeline());
            context.AddPipeline(new ConsoleEntityPipeline());
            context.AddPipeline(new JsonFileEntityPipeline());

            context.AddStartUrl("http://baidu.com");

            context.AddEntityType <Entity13>();
            context.AddEntityType <Entity12>();

            context.Run("running-test");

            var entityPipelines = context.GetPipelines();

            Assert.Equal(4, entityPipelines.Count);

            var pipeline1 = (MySqlEntityPipeline)entityPipelines[0];

            Assert.Equal("Database='mysql';Data Source=localhost;User ID=root;Password=;Port=3306;SslMode=None;", pipeline1.ConnectionStringSettings.ConnectionString);

            Assert.Equal("MySqlFileEntityPipeline", entityPipelines[1].GetType().Name);
            Assert.Equal("ConsoleEntityPipeline", entityPipelines[2].GetType().Name);
            Assert.Equal("JsonFileEntityPipeline", entityPipelines[3].GetType().Name);

            var pipelines = context.GetPipelines();

            Assert.Equal(4, pipelines.Count);
            IEntityPipeline pipeline = (IEntityPipeline)pipelines[0];

            //entityPipelines = pipeline.GetEntityPipelines();
            //Assert.Equal(4, entityPipelines.Count);
            //pipeline1 = (MySqlEntityPipeline)entityPipelines[0];
            //Assert.Equal("test", pipeline1.GetSchema().Database);
            //Assert.Equal("table13", pipeline1.GetSchema().Name);

            using (MySqlConnection conn = new MySqlConnection("Database='mysql';Data Source=localhost;User ID=root;Password=;Port=3306;SslMode=None;"))
            {
                conn.Execute($"DROP table test.table12");
                conn.Execute($"DROP table test.table13");
            }
        }
Ejemplo n.º 2
0
        public void MultiEntitiesInitPipelines()
        {
            EntitySpider context = new EntitySpider(new Site());

            context.SetIdentity(Guid.NewGuid().ToString("N"));
            context.SetThreadNum(1);
            context.AddPipeline(new MySqlEntityPipeline("Database='test';Data Source=localhost;User ID=root;Password=1qazZAQ!;Port=3306"));
            context.AddPipeline(new MySqlFileEntityPipeline());
            context.AddPipeline(new ConsoleEntityPipeline());
            context.AddPipeline(new JsonFileEntityPipeline());

            context.AddStartUrl("http://baidu.com");
            context.AddEntityType(typeof(Entity13));
            context.AddEntityType(typeof(Entity12));
            context.Run("running-test");

            var entityPipelines = context.Pipelines;

            Assert.AreEqual(4, entityPipelines.Count);

            var pipeline1 = (MySqlEntityPipeline)entityPipelines[0];

            Assert.AreEqual("Database='test';Data Source=localhost;User ID=root;Password=1qazZAQ!;Port=3306", pipeline1.ConnectString);

            Assert.AreEqual("MySqlFileEntityPipeline", entityPipelines[1].GetType().Name);
            Assert.AreEqual("ConsoleEntityPipeline", entityPipelines[2].GetType().Name);
            Assert.AreEqual("JsonFileEntityPipeline", entityPipelines[3].GetType().Name);

            var pipelines = context.GetPipelines();

            Assert.AreEqual(4, pipelines.Count);
            IEntityPipeline pipeline = (IEntityPipeline)pipelines[0];

            //entityPipelines = pipeline.GetEntityPipelines();
            //Assert.AreEqual(4, entityPipelines.Count);
            //pipeline1 = (MySqlEntityPipeline)entityPipelines[0];
            //Assert.AreEqual("db", pipeline1.GetSchema().Database);
            //Assert.AreEqual("table13", pipeline1.GetSchema().Name);

            using (MySqlConnection conn = new MySqlConnection("Database='mysql';Data Source=localhost;User ID=root;Password=1qazZAQ!;Port=3306"))
            {
                conn.Execute($"DROP table db.table12");
                conn.Execute($"DROP table db.table13");
            }
        }
Ejemplo n.º 3
0
 public EntityPipeline(string entityName, IEntityPipeline pipeline)
 {
     _entityName = entityName;
     _pipeline   = pipeline;
     pipeline.Initialize();
 }
Ejemplo n.º 4
0
        public LegacyEntityPipelineSetup(MonoBehaviour hostBehaviour, IEntityPipeline entityPipeline, ISpatialCommunicator spatialCommunicator, IMutableUniverse universe, ILegacyEntityPipelineConfiguration config, IEntitySpawnLimiter spawnLimiter)
        {
            this.entityPipeline = entityPipeline;
            IPrefabFactory <GameObject> prefabFactory;

            if (!config.UsePrefabPooling && config.AssetsToPrePool != null && config.AssetsToPrePool.Any())
            {
                Debug.LogError("There are prefabs specified for pre-pooling, but prefab pooling is not enabled - pooling will occur");
            }

            bool preloaderHasFactory = false;

            if (config.UsePrefabPooling || config.AssetsToPrecache != null || config.AssetsToPrePool != null)
            {
                preloaderHasFactory = true;
#pragma warning disable 0612
                assetPreloader = new AssetPreloader(hostBehaviour,
                                                    config.TemplateProvider,
                                                    config.AssetsToPrecache,
                                                    config.AssetsToPrePool,
                                                    config.MaxConcurrentPrecacheConnections);
#pragma warning restore 0612
                assetPreloader.PrecachingCompleted += () =>
                {
                    if (config.OnPrecachingCompleted != null)
                    {
                        config.OnPrecachingCompleted();
                    }
                };

                assetPreloader.PrecachingProgress += progress =>
                {
                    if (config.OnPrecacheProgress != null)
                    {
                        config.OnPrecacheProgress(progress);
                    }
                };
            }

            if (preloaderHasFactory && config.UsePrefabPooling)
            {
                prefabFactory = assetPreloader.PrefabFactory;
            }
            else
            {
                prefabFactory = new UnityPrefabFactory();
            }

            criticalSectionPipelineBlock = new CriticalSectionPipelineBlock();

            throttledEntityDispatcher = new ThrottledEntityDispatcher(universe, spawnLimiter, config.Metrics);

            legacyEntityCreator = new LegacyEntityCreator(
                config.TemplateProvider,
                spatialCommunicator,
                prefabFactory,
                universe,
                config.EntityComponentInterestOverridesUpdater,
                config.InterestedComponentUpdaterProvider,
                config.Metrics);

            legacyComponentPipeline = new LegacyComponentPipeline(universe);

            entityComponentUpdater = new EntityComponentUpdater(universe);

            templateProvider = config.TemplateProvider;
        }