示例#1
0
        /// <inheritdoc/>
        protected override SourceFile CreateSourceFile(string fileName, ScriptTarget languageVersion, bool allowBackslashesInPathInterpolation)
        {
            var result = base.CreateSourceFile(fileName, languageVersion, allowBackslashesInPathInterpolation);

            result.PathTable = m_pathTable;
            return(result);
        }
示例#2
0
        /// <inheritdoc/>
        protected override SourceFile CreateSourceFile(string fileName, ScriptTarget languageVersion, bool allowBackslashesInPathInterpolation)
        {
            var sourceFile = base.CreateSourceFile(fileName, languageVersion, allowBackslashesInPathInterpolation);

            sourceFile.SetSerializedAst(m_serializedAstContent, m_serializedAstLength);

            return(sourceFile);
        }
示例#3
0
 /// <summary>
 /// 强制移除
 /// </summary>
 /// <param name="CMD">CM.</param>
 /// <param name="target">Target.</param>
 public void UnRegisterLogicFunc(int CMD, ScriptTarget target = ScriptTarget.Sharp)
 {
     if (this.ScriptDic.ContainsKey(CMD))
     {
         SimpleDictionary <int, ScriptPkg> dic = this.ScriptDic[CMD];
         if (dic.ContainsKey((int)target))
         {
             dic[(int)target].Dispose();
             dic.RemoveKey((int)target);
         }
     }
 }
示例#4
0
        public override void RemoveToPool()
        {
            base.RemoveToPool();
            if (this._Gparams != null)
            {
                //KObjectPool.mIns.Push(this._Gparams);
                this._Gparams = null;
            }

            if (this._Initparams != null)
            {
                KObjectPool.mIns.Push(this._Initparams);
                this._Initparams = null;
            }

            if (this._RParams != null)
            {
                KObjectPool.mIns.Push(this._RParams);
                this._RParams = null;
            }

            this.target = ScriptTarget.Unknown;
        }
示例#5
0
        public DeploymentActionResource AddOrUpdateScriptAction(string name, ScriptAction scriptAction, ScriptTarget scriptTarget)
        {
            var action = AddOrUpdateAction(name);

            action.ActionType = "Octopus.Script";
            action.Properties.Clear();
            action.Properties["Octopus.Action.RunOnServer"]         = scriptTarget == ScriptTarget.Server ? "true" : "false";
            action.Properties["Octopus.Action.Script.Syntax"]       = scriptAction.Syntax.ToString();
            action.Properties["Octopus.Action.Script.ScriptSource"] = scriptAction.Source.ToString();

            RequiresPackagesToBeAcquired = scriptAction.Source == ScriptSource.Package;

            switch (scriptAction.Source)
            {
            case ScriptSource.Inline:
                string scriptBody   = null;
                var    inlineScript = scriptAction as InlineScriptAction;
                if (inlineScript != null)
                {
                    scriptBody = inlineScript.GetScriptBody();
                }
                var inlineScriptFromFileInAssembly = scriptAction as InlineScriptActionFromFileInAssembly;
                if (inlineScriptFromFileInAssembly != null)
                {
                    scriptBody = inlineScriptFromFileInAssembly.GetScriptBody();
                }

                if (scriptBody == null)
                {
                    throw new NotSupportedException($"{scriptAction.GetType().Name} is not a supported Script Action type yet...");
                }

                action.Properties.Add("Octopus.Action.Script.ScriptBody", scriptBody);
                break;

            case ScriptSource.Package:
                var packageScript = (ScriptActionFromFileInPackage)scriptAction;
                action.Properties.Add("Octopus.Action.Package.PackageId", packageScript.PackageId);
                action.Properties.Add("Octopus.Action.Package.FeedId", packageScript.PackageFeedId);
                action.Properties.Add("Octopus.Action.Script.ScriptFileName", packageScript.ScriptFilePath);
                break;
            }

            return(action);
        }
示例#6
0
        public void RegisterLogicFunc(MethodInfo method, int CMD, string MethodName, object attvalue, ScriptTarget target)
        {
            if (ScriptDic.ContainsKey(CMD))
            {
                SimpleDictionary <int, ScriptPkg> dic = this.ScriptDic[CMD];
                if (dic.ContainsKey((int)target))
                {
                    LogMgr.LogErrorFormat("重复注册逻辑函数 {0}", CMD);
                }
                else
                {
                    if (target == ScriptTarget.Sharp)
                    {
                        dic[(int)target] = ScriptPkg.CreateSharp(method, MethodName);
                    }
                    else if (target == ScriptTarget.Lua)
                    {
#if TOLUA
                        dic[(int)target] = ScriptPkg.CreateLua(attvalue);
#else
                        throw new FrameWorkException("Missing Lua");
#endif
                    }
                }
            }
            else
            {
                SimpleDictionary <int, ScriptPkg> dic = new SimpleDictionary <int, ScriptPkg>();
                if (target == ScriptTarget.Sharp)
                {
                    dic[(int)target] = ScriptPkg.CreateSharp(method, MethodName);
                }
                else if (target == ScriptTarget.Lua)
                {
#if TOLUA
                    dic[(int)target] = ScriptPkg.CreateLua(attvalue);
#else
                    LogMgr.LogError("Missing Lua");
#endif
                }

                this.ScriptDic.Add(CMD, dic);
            }
        }
        public DeploymentActionResource AddOrUpdateScriptAction(string name, ScriptAction scriptAction, ScriptTarget scriptTarget)
        {
            var action = AddOrUpdateAction(name);

            action.ActionType = "Octopus.Script";
            action.Properties.Clear();
            action.Properties["Octopus.Action.RunOnServer"] = scriptTarget == ScriptTarget.Server ? "true" : "false";
            action.Properties["Octopus.Action.Script.Syntax"] = scriptAction.Syntax.ToString();
            action.Properties["Octopus.Action.Script.ScriptSource"] = scriptAction.Source.ToString();

            RequiresPackagesToBeAcquired = scriptAction.Source == ScriptSource.Package;

            switch (scriptAction.Source)
            {
                case ScriptSource.Inline:
                    string scriptBody = null;
                    var inlineScript = scriptAction as InlineScriptAction;
                    if (inlineScript != null)
                    {
                        scriptBody = inlineScript.GetScriptBody();
                    }
                    var inlineScriptFromFileInAssembly = scriptAction as InlineScriptActionFromFileInAssembly;
                    if (inlineScriptFromFileInAssembly != null)
                    {
                        scriptBody = inlineScriptFromFileInAssembly.GetScriptBody();
                    }

                    if (scriptBody == null) throw new NotSupportedException($"{scriptAction.GetType().Name} is not a supported Script Action type yet...");

                    action.Properties.Add("Octopus.Action.Script.ScriptBody", scriptBody);
                    break;

                case ScriptSource.Package:
                    var packageScript = (ScriptActionFromFileInPackage) scriptAction;
                    action.Properties.Add("Octopus.Action.Package.PackageId", packageScript.PackageId);
                    action.Properties.Add("Octopus.Action.Package.FeedId", packageScript.PackageFeedId);
                    action.Properties.Add("Octopus.Action.Script.ScriptFileName", packageScript.ScriptFilePath);
                    break;
            }

            return action;
        }