Esempio n. 1
0
 private void CreateBundleLoader()
 {
     if (_loader == null)
     {
         _loader = BundleLoaderProxyFactory.CreateBundleLoader(Bundle, Framework);
     }
 }
Esempio n. 2
0
        /// <summary>
        /// 获取类加载器
        /// </summary>
        /// <returns></returns>
        public IClassLoader GetClassLoader()
        {
            BundleLoaderProxy curProxy = GetLoaderProxy();
            IBundleLoader     loader   = curProxy == null ? null : curProxy.BundleLoader;
            IClassLoader      bcl      = loader == null ? null : curProxy.CreateBundleLoader();

            return(bcl);
        }
Esempio n. 3
0
 /// <summary>
 /// 创建插件加载器
 /// </summary>
 internal IBundleLoader CreateBundleLoader()
 {
     if (bundleLoader != null)
     {
         return(bundleLoader);
     }
     bundleLoader = new BundleLoaderImpl(bundle);
     return(bundleLoader);
 }
Esempio n. 4
0
        /// <summary>
        /// 加载资源
        /// </summary>
        /// <param name="resourceName"></param>
        /// <param name="loadMode"></param>
        /// <returns></returns>
        public override object LoadResource(string resourceName, ResourceLoadMode loadMode)
        {
            IBundleLoader loader = this.BundleLoader;

            if (loader == null)
            {
                return(null);
            }
            object result = loader.LoadResource(resourceName, loadMode);

            return(result);
        }
Esempio n. 5
0
        protected void Init(IBundleLoader bundleLoader)
        {
            bundleLoader.LoadBundleSync(bundleName);
            xDoc = XDocument.Parse(bundleLoader.GetText(bundleName, xmlName).text);

            if (xDoc.Root != null)
            {
                ImportContexts();
                DefineBeans();
            }

            bundleLoader.UnloadBundle(bundleName, false);
        }
Esempio n. 6
0
        /// <summary>
        /// 获取上下文
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static XmlContext GetContext(string bundleName, string xmlName)
        {
            IBundleLoader bundleLoader = ApplicationContext.context.GetSingleton(typeof(IBundleLoader)) as IBundleLoader;

            XmlContext context;

            if (!contextDict.TryGetValue(bundleName + xmlName, out context))
            {
                context = new XmlContext(bundleName, xmlName);
                context.Init(bundleLoader);
                contextDict.Add(bundleName + xmlName, context);
            }
            return(context);
        }
Esempio n. 7
0
        /// <summary>
        /// 加载指定的类名的类型
        /// </summary>
        /// <param name="className"></param>
        /// <returns></returns>
        public override Type LoadClass(string className)
        {
            IBundleLoader loader = this.BundleLoader;

            if (loader == null)
            {
                throw new Exception();
            }
            try
            {
                return(loader.LoadClass(className));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplication server,
                              IShamanLogger logger, IBundleLoader bundleLoader, IShamanComponents shamanComponents, IRoomControllerFactory roomControllerFactory)
        {
            bundleLoader.LoadBundle();
            var gameBundle = bundleLoader.LoadTypeFromBundle <IGameBundle>();

            gameBundle.OnInitialize(shamanComponents);
            var bundledRoomControllerFactory = gameBundle.GetRoomControllerFactory();

            if (bundledRoomControllerFactory == null)
            {
                throw new NullReferenceException("Game bundle returned null factory");
            }

            ((IBundleRoomControllerRegistry)roomControllerFactory).RegisterBundleRoomController(bundledRoomControllerFactory);

            base.ConfigureGame(app, env, server, logger);
        }
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplication server,
                              IShamanLogger logger, IMatchMaker matchMaker, IServerActualizer serverActualizer, IMatchMakerServerInfoProvider serverInfoProvider, IBundleLoader bundleLoader)
        {
            serverActualizer.Start(Convert.ToInt32(Configuration["LauncherSettings:ActualizationIntervalMs"]));

            base.ConfigureMm(app, env, server, logger, matchMaker, serverInfoProvider, bundleLoader);
        }
        /// <summary>
        /// MM related middleware configuration
        /// </summary>
        /// <param name="app"></param>
        /// <param name="env"></param>
        /// <param name="server"></param>
        /// <param name="logger"></param>
        /// <param name="matchMaker"></param>
        /// <param name="serverInfoProvider"></param>
        /// <param name="bundleLoader"></param>
        public void ConfigureMm(IApplicationBuilder app, IHostingEnvironment env, IApplication server,
                                IShamanLogger logger, IMatchMaker matchMaker, IMatchMakerServerInfoProvider serverInfoProvider, IBundleLoader bundleLoader)
        {
            //load bundle
            bundleLoader.LoadBundle().Wait();

            //resolve main bundle type and configure it
            //in case of matchmaker we can load bundle during this stage
            var resolver = bundleLoader.LoadTypeFromBundle <IMmResolver>();

            RoomPropertiesProvider.RoomPropertiesProviderImplementation = resolver.GetRoomPropertiesProvider();
            resolver.Configure(matchMaker);

            //start game server info provider - gathers info about game servers connected to this matchmaker
            serverInfoProvider.Start();

            base.ConfigureCommon(app, env, server, logger);
        }
Esempio n. 11
0
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplication server,
                              IServerActualizer serverActualizer, IShamanLogger logger, IBundleLoader bundleLoader,
                              IShamanComponents shamanComponents, IRoomControllerFactory roomControllerFactory)
        {
            //todo extract in one place
            serverActualizer.Start(Convert.ToInt32(Configuration["ServerSettings:ActualizationIntervalMs"]));

            bundleLoader.LoadBundle();
            var gameBundle = bundleLoader.LoadTypeFromBundle <IGameBundle>();

            gameBundle.OnInitialize(shamanComponents);
            var bundledRoomControllerFactory = gameBundle.GetRoomControllerFactory();

            if (bundledRoomControllerFactory == null)
            {
                throw new NullReferenceException("Game bundle returned null factory");
            }

            ((IBundleRoomControllerRegistry)roomControllerFactory).RegisterBundleRoomController(bundledRoomControllerFactory);

            base.ConfigureGame(app, env, server, logger);
        }
Esempio n. 12
0
 void Awake()
 {
     loader = ApplicationContext.context.GetSingleton(typeof(IBundleLoader)) as IBundleLoader;
 }
 public BundleSettingsFromBundleLoaderProvider(IBundleLoader bundleLoader)
 {
     _bundleLoader = bundleLoader;
 }
Esempio n. 14
0
 public AbstractRuntimeLoader(IBundleLoader ownerLoader)
 {
     Owner = ownerLoader;
 }
Esempio n. 15
0
 public DependencyBundleLoader(IDependentBundleConstraint requireConstraintMetadata, IBundleLoader ownerLoader) : base(ownerLoader)
 {
     if (requireConstraintMetadata == null)
     {
         throw new ArgumentNullException();
     }
     Dependency = requireConstraintMetadata;
 }
Esempio n. 16
0
 public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplication server,
                       IShamanLogger logger, IMatchMaker matchMaker, IMatchMakerServerInfoProvider serverInfoProvider, IBundleLoader bundleLoader)
 {
     base.ConfigureMm(app, env, server, logger, matchMaker, serverInfoProvider, bundleLoader);
 }