Exemple #1
0
 //loader : CustomLoader, filepath参数:(ref类型)输入是require的参数,如果需要支持调试,需要输出真实路径。
 //                        返回值:如果返回null,代表加载该源下无合适的文件,否则返回UTF8编码的byte[]
 public void AddLoader(CustomLoader loader)
 {
     if (!customLoaders.Contains(loader))
     {
         customLoaders.Add(loader);
     }
 }
Exemple #2
0
        void Awake()
        {
            luaTSrc = luaEnv.NewTable();
            CustomLoader.AddLoader(luaEnv);
            luaEnv.DoString("require('Utils.Global')");

            // 为每个脚本设置一个独立的环境,可一定程度上防止脚本间全局变量、函数冲突
            LuaTable meta = luaEnv.NewTable();

            meta.Set("__index", luaEnv.Global);
            luaTSrc.SetMetaTable(meta);
            meta.Dispose();

            luaTSrc.Set("self", this);
            foreach (var injection in injections)
            {
                luaTSrc.Set(injection.name, injection.value);
            }

            luaEnv.DoString(m_srcLua.text, m_srcLua.name, luaTSrc);
            Action luaAwake = luaTSrc.Get <Action>("Awake");

            luaTSrc.Get("Start", out luaStart);
            luaTSrc.Get("Enable", out luaEnable);
            luaTSrc.Get("Diable", out luaDisable);
            luaTSrc.Get("Update", out luaUpdate);
            luaTSrc.Get("OnAppPause", out luaOnAppPause);
            luaTSrc.Get("OnDestroy", out luaOnDestroy);

            luaAwake?.Invoke();
        }
            public override void Append(ISqlCommand command)
            {
                if (_prefixLoader == null)
                {
                    var prefixQuery = (SqlQueryImpl)((ISession)Session)
                                      // this SQL query fragment will prepend every SELECT query in multiquery/multicriteria
                                      .CreateSQLQuery("\nOPEN :crsr FOR\n")
                                      // this "exotic" parameter type will actually mean output refcursor
                                      .SetParameter("crsr", 0, new DecimalType(new SqlType(DbType.VarNumeric)));

                    _prefixQueryParameters = prefixQuery.GetQueryParameters();

                    var querySpecification = prefixQuery.GenerateQuerySpecification(_prefixQueryParameters.NamedParameters);

                    _prefixLoader = new CustomLoader(new SQLCustomQuery(querySpecification.SqlQueryReturns, querySpecification.QueryString,
                                                                        querySpecification.QuerySpaces, Session.Factory), Session.Factory);
                }

                var prefixCommand = _prefixLoader.CreateSqlCommand(_prefixQueryParameters, Session);

                Commands.Add(prefixCommand);
                Commands.Add(command);

                _sqlStringBuilder.Add(prefixCommand.Query);
                _sqlStringBuilder.Add(command.Query).Add(";");
            }
Exemple #4
0
        public SqlTranslator(ISQLQuery sqlQuery, ISessionFactoryImplementor sessionFactory)
        {
            var sqlQueryImpl = (SqlQueryImpl)sqlQuery;
            NativeSQLQuerySpecification sqlQuerySpec = sqlQueryImpl.GenerateQuerySpecification(sqlQueryImpl.NamedParams);
            var sqlCustomQuery = new SQLCustomQuery(sqlQuerySpec.SqlQueryReturns, sqlQuerySpec.QueryString, sqlQuerySpec.QuerySpaces, sessionFactory);

            loader = new CustomLoader(sqlCustomQuery, sessionFactory);
        }
Exemple #5
0
        public void ParameterCustomLoader()
        {
            CustomLoader loader = new CustomLoader();

            using (var reader = new TypefaceReader(loader))
            {
                Assert.IsNotNull(reader);
                Assert.IsNotNull(reader.Loader);
                Assert.IsInstanceOfType(reader.Loader, typeof(CustomLoader), "The custom constructor should be set so it can be used");
            }
        }
Exemple #6
0
        public override void ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results)
        {
            using (BeginProcess())
            {
                var loader = new CustomLoader(customQuery, Factory);

                var success = false;
                try
                {
                    ArrayHelper.AddAll(results, loader.List(this, queryParameters));
                    success = true;
                }
                finally
                {
                    AfterOperation(success);
                }
                temporaryPersistenceContext.Clear();
            }
        }
Exemple #7
0
        public override async Task ListCustomQueryAsync(ICustomQuery customQuery, QueryParameters queryParameters, IList results, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();
            using (BeginProcess())
            {
                var loader = new CustomLoader(customQuery, Factory);

                var success = false;
                try
                {
                    ArrayHelper.AddAll(results, await(loader.ListAsync(this, queryParameters, cancellationToken)).ConfigureAwait(false));
                    success = true;
                }
                finally
                {
                    await(AfterOperationAsync(success, cancellationToken)).ConfigureAwait(false);
                }
                temporaryPersistenceContext.Clear();
            }
        }
Exemple #8
0
        public override void ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results)
        {
            using (new SessionIdLoggingContext(SessionId))
            {
                CheckAndUpdateSessionStatus();

                CustomLoader loader = new CustomLoader(customQuery, Factory);

                bool success = false;
                try
                {
                    ArrayHelper.AddAll(results, loader.List(this, queryParameters));
                    success = true;
                }
                finally
                {
                    AfterOperation(success);
                }
                temporaryPersistenceContext.Clear();
            }
        }
        public override void ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results)
        {
            using (BeginProcess())
            {
                // We need to flush the batcher. Otherwise it may have pending operations which will not already have reached the database,
                // and the query may yield stale data.
                Flush();

                var loader = new CustomLoader(customQuery, Factory);

                var success = false;
                try
                {
                    ArrayHelper.AddAll(results, loader.List(this, queryParameters));
                    success = true;
                }
                finally
                {
                    AfterOperation(success);
                }
                temporaryPersistenceContext.Clear();
            }
        }
        public override async Task ListCustomQueryAsync(ICustomQuery customQuery, QueryParameters queryParameters, IList results, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();
            using (BeginProcess())
            {
                // We need to flush the batcher. Otherwise it may have pending operations which will not already have reached the database,
                // and the query may yield stale data.
                await(FlushAsync(cancellationToken)).ConfigureAwait(false);

                var loader = new CustomLoader(customQuery, Factory);

                var success = false;
                try
                {
                    ArrayHelper.AddAll(results, await(loader.ListAsync(this, queryParameters, cancellationToken)).ConfigureAwait(false));
                    success = true;
                }
                finally
                {
                    await(AfterOperationAsync(success, cancellationToken)).ConfigureAwait(false);
                }
                temporaryPersistenceContext.Clear();
            }
        }
Exemple #11
0
 //loader : CustomLoader�� filepath��������ref���ͣ�������require�IJ����������Ҫ֧�ֵ��ԣ���Ҫ�����ʵ·����
 //                        ����ֵ���������null���������ظ�Դ���޺��ʵ��ļ������򷵻�UTF8�����byte[]
 public void AddLoader(CustomLoader loader)
 {
     customLoaders.Add(loader);
 }
Exemple #12
0
 public void RemoveLoad(CustomLoader loader)
 {
     customLoaders.Remove(loader);
 }
Exemple #13
0
 public static void RegisterCustomLoader(Type loadedType, CustomLoader function)
 {
     customLoaders[loadedType] = function;
 }
Exemple #14
0
 public static void AddLoader(CustomLoader loader)
 {
     LuaFile.AddLoader(loader);
 }
 public ContentHelper(ContentManager contentmanager = null, CustomLoader customLoader = null, string extention =null)
 {
     this.contentmanager = contentmanager;
     this.customLoader = customLoader;
     if (!string.IsNullOrEmpty(extention)) { SupportedExtentions.Add(extention); }
 }