Beispiel #1
0
        public VariableTag MakeVariableTag(int type, int count)
        {
            global::System.IntPtr cPtr = C4dApiPINVOKE.BaseObject_MakeVariableTag__SWIG_1(swigCPtr, type, count);
            VariableTag           ret  = (cPtr == global::System.IntPtr.Zero) ? null : new VariableTag(cPtr, false);

            return(ret);
        }
Beispiel #2
0
        public Tag Parse(TemplateParser parser, TokenCollection tc)
        {
            if ((tc.Count == 1 && tc.First.TokenKind == TokenKind.TextData) ||
                (tc.Count > 3 && tc.First.TokenKind == TokenKind.TextData && tc[1].TokenKind == TokenKind.LeftBracket && tc.Last.TokenKind == TokenKind.RightBracket && (tc[2].TokenKind == TokenKind.Number || tc[2].TokenKind == TokenKind.TextData || (tc[2].TokenKind == TokenKind.StringStart && tc[tc.Count - 2].TokenKind == TokenKind.StringEnd))))
            {
                VariableTag tag = new VariableTag();
                tag.Name = tc.First.Text;
                if (tc.Count > 1)
                {
                    int start = 2;
                    for (int i = 2; i < tc.Count; ++i)
                    {
                        if (tc[i].TokenKind == TokenKind.RightBracket)
                        {
                            tag.Index.Add(parser.Read(new TokenCollection(tc, start, i - 1)));
                        }
                        else if (tc[i].TokenKind == TokenKind.LeftBracket)
                        {
                            start = i + 1;
                        }
                    }
                }
                return(tag);
            }

            return(null);
        }
Beispiel #3
0
        public static VariableTag Alloc(int type, int count)
        {
            global::System.IntPtr cPtr = C4dApiPINVOKE.VariableTag_Alloc(type, count);
            VariableTag           ret  = (cPtr == global::System.IntPtr.Zero) ? null : new VariableTag(cPtr, false);

            return(ret);
        }
 /// <summary>
 /// Will only add a new tag to the list if it is not already present in the list
 /// </summary>
 /// <param name="tag"></param>
 /// <returns>A VariabeState with the updated list</returns>
 public VariableState AddTag(VariableTag tag)
 {
     if (!tags.Contains(tag))
     {
         tags.Add(tag);
     }
     return(this);
 }
Beispiel #5
0
 public void AddTag(string variableAccess, VariableTag httpCookieSecure)
 {
     try
     {
         Variables[variableAccess].AddTag(httpCookieSecure);
     }
     catch (KeyNotFoundException e) {
     }
 }
Beispiel #6
0
        /// <summary>
        /// 分析标签
        /// </summary>
        /// <param name="parser">TemplateParser</param>
        /// <param name="tc">Token集合</param>
        /// <returns></returns>
        public Tag Parse(TemplateParser parser, TokenCollection tc)
        {
            if (tc.Count == 1 &&
                tc.First.TokenKind == TokenKind.TextData)
            {
                VariableTag tag = new VariableTag();
                tag.Name = tc.First.Text;
                return(tag);
            }

            return(null);
        }
        public void AddTag(string variableAccess, VariableTag httpCookieSecure)
        {
            if (DebugMode)
            {
                Logger.Log($"Adding tag '{httpCookieSecure}' to  {variableAccess}");
            }

            if (VariableStates.TryGetValue(variableAccess, out var variable))
            {
                variable.AddTag(httpCookieSecure);
            }
        }
Beispiel #8
0
 public void AddTag(string variableAccess, VariableTag httpCookieSecure)
 {
     try
     {
         if (DebugMode)
         {
             SGLogging.Log(string.Format("Adding tag '{1}' to  {0}", variableAccess, httpCookieSecure));
         }
         Variables[variableAccess].AddTag(httpCookieSecure);
     }
     catch (KeyNotFoundException e) {
     }
 }
Beispiel #9
0
        /// <summary>
        /// Validates data items are registered with the DataContext.
        /// Loads them if the given key is not found.
        /// </summary>
        public void ConfirmDataItemsRegistered()
        {
            string viewContext = MyRootMaster.GetViewString(ViewMask);

            for (int i = 0; i < Controls.Count; i++)
            {
                if (Controls[i] is BaseDataControl)
                {
                    if (Controls[i] is OsHttpRequest)
                    {
                        OsHttpRequest ctl = (OsHttpRequest)Controls[i];
                        MyDataContext.RegisterDataItem(ctl, viewContext,
                                                       ctl.UseClientDataResolver, false, false);
                    }
                    else
                    {
                        MyDataContext.RegisterDataItem((BaseDataControl)Controls[i], viewContext,
                                                       ((BaseDataControl)Controls[i]).UseClientDataResolver, true, false);
                    }
                }
                else if (Controls[i] is VariableTag)
                {
                    VariableTag osvar = (VariableTag)Controls[i];
                    if (MyDataContext.MasterData.ContainsKey(osvar.VariableKey))
                    {
                        if (null == MyDataContext.MasterData[osvar.VariableKey].Data)
                        {
                            MyDataContext.MasterData[osvar.VariableKey].Data = osvar.GetVariableValue();
                        }
                    }
                    else
                    {
                        MyDataContext.RegisterDataItem(osvar.VariableKey, osvar.GetVariableValue());
                    }
                }
            }
        }
Beispiel #10
0
 public t FindByTag<t>(VariableTag tag) where t : RtsVariable
 {
     return (t)Collections.FirstOrDefault(p => p.Tag.Equals(tag));
 }
Beispiel #11
0
 public VariableState AddTag(VariableTag tag)
 {
     tags.Add(tag);
     return(this);
 }
Beispiel #12
0
 public t FindVariable <t>(VariableTag tag) where t : RtsVariable
 {
     return(Variables.FindByTag <t>(tag));
 }
Beispiel #13
0
        public Tag Parse(TemplateParser parser, TokenCollection tc)
        {
            if (ParserHelpers.IsEqual(tc.First.Text, Field.KEY_ARRAY))
            {
                if (tc.Count > 2 &&
                    (tc[1].TokenKind == TokenKind.LeftParentheses) &&
                    tc.Last.TokenKind == TokenKind.RightParentheses)
                {
                    int               pos   = 0;
                    int               begin = 2;
                    int               end;
                    Tag               tmp;
                    ArrayTag          tag  = new ArrayTag();
                    Stack <TokenKind> last = new Stack <TokenKind>();
                    for (int i = 2; i < tc.Count; ++i)
                    {
                        if ((tc[i].TokenKind == TokenKind.Comma && last.Count == 0) || i == (tc.Count - 1))
                        {
                            end = i - 1;
                            tmp = parser.Read(new TokenCollection(tc, begin, end));
                            if (tmp is ExpressionTag || tmp is SetTag)
                            {
                                if (tmp is SetTag)
                                {
                                    SetTag      set = (SetTag)tmp;
                                    VariableTag var = new VariableTag();
                                    var.Name = set.Name;
                                    object val = var.Parse(parser.Context);
                                    if (val != null)
                                    {
                                        if (val is string)
                                        {
                                            tag.Set((string)val, set.Value, parser.Context);
                                        }
                                        else if (VariableTag.IsNumber(val))
                                        {
                                            tag.Set((int)val, set.Value, parser.Context);
                                        }
                                        else
                                        {
                                            throw new ParseException(string.Concat("array key type is error:", tc), parser.Context.CurrentPath, tc.First.BeginLine, tc.First.BeginColumn);
                                        }
                                    }
                                    else
                                    {
                                        throw new ParseException(string.Concat("array key is null referer:", tc), parser.Context.CurrentPath, tc.First.BeginLine, tc.First.BeginColumn);
                                    }
                                }
                                else if (tmp.Children[0] is StringTag)
                                {
                                    tag.Set(((StringTag)tmp.Children[0]).Value, tmp.Children[2], parser.Context);
                                }
                                else if (tmp.Children[0] is NumberTag)
                                {
                                    tag.Set((int)((NumberTag)tmp.Children[0]).Value, tmp.Children[2], parser.Context);
                                }
                                else
                                {
                                    throw new ParseException(string.Concat("array key type is error:", tc), parser.Context.CurrentPath, tc.First.BeginLine, tc.First.BeginColumn);
                                }
                            }
                            else
                            {
                                tag.Set(pos, tmp, parser.Context);
                                ++pos;
                            }
                            begin = i + 1;
                        }
                        else if (tc[i].TokenKind == TokenKind.StringStart)
                        {
                            last.Push(TokenKind.StringStart);
                        }
                        else if (tc[i].TokenKind == TokenKind.LeftParentheses)
                        {
                            last.Push(TokenKind.LeftParentheses);
                        }
                        else if (tc[i].TokenKind == TokenKind.StringEnd && last.Peek() == TokenKind.StringStart)
                        {
                            last.Pop();
                        }
                        else if (tc[i].TokenKind == TokenKind.RightParentheses && last.Peek() == TokenKind.LeftParentheses)
                        {
                            last.Pop();
                        }
                    }
                    return(tag);
                }
            }

            return(null);
        }
Beispiel #14
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(VariableTag obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }