示例#1
0
        public override bool FilterItem(TracerItem item)
        {
            if (item is EnumTracerItem == false)
            {
                return(true);
            }

            lock (this)
            {
                foreach (EnumStruct enumStruct in _filteredOutEnums)
                {
                    if (((EnumTracerItem)item).EnumType == enumStruct.EnumType)
                    {
                        return(false);
                    }
                }

                EnumStruct enumStruct2 = GetEnumStruct(_allEnums, ((EnumTracerItem)item).EnumType);
                if (enumStruct2 != null)
                {
                    return(enumStruct2.Values[((EnumTracerItem)item).ValueIndex]);
                }
                else
                {
                    return(true);
                }
            }
        }
示例#2
0
 public bool IsEnumValueFiltered(Type enumType, int valueIndex)
 {
     lock (this)
     {
         EnumStruct enumStruct = GetEnumStruct(_allEnums, enumType);
         return(enumStruct.Values[valueIndex]);
     }
 }
示例#3
0
        public void EnumTStructTest()
        {
            MemoryBufferAddressSpace dataSource = new MemoryBufferAddressSpace(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 });
            Reader     reader = new Reader(dataSource);
            EnumStruct s      = reader.Read <EnumStruct>(1);

            Assert.Equal(FooEnum.ThreeTwo, s.E);
            Assert.Equal(0x09080706, s.X);
        }
示例#4
0
        public void SetEnumTypeValueFiltered(Type enumType, int valueIndex, bool filtered)
        {
            lock (this)
            {
                EnumStruct enumStruct = GetEnumStruct(_allEnums, enumType);
                enumStruct.Values[valueIndex] = filtered;
            }

            RaiseFilterUpdatedEvent(false);
        }
示例#5
0
        public void EqualsEnum()
        {
            var typeInfo = FastEquality.CreateTypeInfo(typeof(EnumStruct));

            var a = new EnumStruct {
                nephew = Nephew.Huey
            };
            var b = new EnumStruct {
                nephew = Nephew.Dewey
            };

            Assert.IsTrue(FastEquality.Equals(a, a, typeInfo));
            Assert.IsFalse(FastEquality.Equals(a, b, typeInfo));
        }
示例#6
0
        public void SetEnumTypeFiltered(Type enumType, bool filtered)
        {
            EnumStruct enumStruct;

            lock (this)
            {
                enumStruct = GetEnumStruct(_allEnums, enumType);
            }

            if (enumStruct == null)
            {
                enumStruct          = new EnumStruct();
                enumStruct.EnumType = enumType;
                enumStruct.Values   = new bool[Enum.GetNames(enumType).Length];
                for (int i = 0; i < enumStruct.Values.Length; i++)
                {
                    enumStruct.Values[i] = true;
                }

                lock (this)
                {
                    _allEnums.Add(enumStruct);
                }
            }

            lock (this)
            {
                if (filtered)
                {
                    if (_filteredOutEnums.Contains(enumStruct) == false)
                    {
                        _filteredOutEnums.Add(enumStruct);
                    }
                }
                else
                {
                    _filteredOutEnums.Remove(enumStruct);
                }
            }

            RaiseFilterUpdatedEvent(false);
        }
示例#7
0
        protected void OutputOneEnumStruct(EnumStruct es)
        {
            if (!AppUtil.IsEmptyString(es.Desc))
            {
                cur_stream_.WriteComment(es.Desc, 0);
            }

            //enum defined
            cur_stream_.WriteString(String.Format("enum {0}", es.Name), 0);
            cur_stream_.WriteString("{", 0);

            foreach (EnumItem it in es.Items)
            {
                if (!AppUtil.IsEmptyString(it.Desc))
                {
                    cur_stream_.WriteComment(it.Desc, 1);
                }

                if (it.HasSetValue)
                {
                    if (it.IsHexValue)
                    {
                        cur_stream_.WriteString(String.Format("{0} ={1},", it.Name, it.HexValue), 1);
                    }
                    else
                    {
                        cur_stream_.WriteString(String.Format("{0} ={1},", it.Name, it.Value), 1);
                    }
                }
                else
                {
                    cur_stream_.WriteString(String.Format("{0},", it.Name), 1);
                }
            }

            cur_stream_.WriteString("};", 0);
        }
示例#8
0
		private static Hashtable BuildEnumerations(UPnPStateVariable[] SV)
		{
			Hashtable h = new Hashtable();
			Hashtable hlist = new Hashtable();
			EnumStruct d;
			VarData vd;
			string t;
	
			foreach(UPnPStateVariable V in SV)
			{
				if(V.AllowedStringValues!=null)
				{
					vd = new VarData();
					vd.VariableName = V.Name;
					vd.Enumerations = new ArrayList();
					hlist.Add(V.Name,vd);
					h.Clear();

					foreach(string val in V.AllowedStringValues)
					{
						t = val.ToUpper();
						t = t.Replace("-","_");
						t = t.Replace("+","_");
						t = t.Replace(" ","_");
						t = t.Replace(":","_");
						if(IsNumeric(t[0])==true)
						{
							t = "_" + t;
						}

						if(h.ContainsKey(t)==true)
						{
							t = val.ToUpper();
							t = t.Replace("-","_minus_");
							t = t.Replace("+","_plus_");
							t = t.Replace(" ","_");
							t = t.Replace(":","_colon_");
						}
						h.Add(t,t);
						d = new EnumStruct();
						d.EnumName = t;
						d.EnumValue = val;
						((VarData)hlist[V.Name]).Enumerations.Add(d);
					}
				}
			}
			return(hlist);
		}
        public void SetEnumTypeFiltered(Type enumType, bool filtered)
        {
            EnumStruct enumStruct;
            lock (this)
            {
               enumStruct = GetEnumStruct(_allEnums, enumType);
            }

            if (enumStruct == null)
            {
                enumStruct = new EnumStruct();
                enumStruct.EnumType = enumType;
                enumStruct.Values = new bool[Enum.GetNames(enumType).Length];
                for (int i = 0; i < enumStruct.Values.Length; i++)
                {
                    enumStruct.Values[i] = true;
                }

                lock (this)
                {
                    _allEnums.Add(enumStruct);
                }
            }

            lock (this)
            {
                if (filtered)
                {
                    if (_filteredOutEnums.Contains(enumStruct) == false)
                    {
                        _filteredOutEnums.Add(enumStruct);
                    }
                }
                else
                {
                    _filteredOutEnums.Remove(enumStruct);
                }
            }

            RaiseFilterUpdatedEvent();
        }