示例#1
0
        public virtual void Decode(Stream stream)
        {
            FieldMap fieldMap = new FieldMap();

            foreach (int current in this.Definition.Fields.Keys)
            {
                if (current < 0)
                {
                    this.Definition.Fields[current].Decode(stream);
                }
                else
                {
                    if (current == 0)
                    {
                        Bitmap bitmap = (Bitmap)this.Definition.Fields[current];
                        bitmap.Decode(stream);
                        List <int> decodedBitmap = bitmap.GetDecodedBitmap();
                        using (List <int> .Enumerator enumerator2 = decodedBitmap.GetEnumerator())
                        {
                            while (enumerator2.MoveNext())
                            {
                                int current2 = enumerator2.Current;
                                fieldMap.Add(current2);
                                fieldMap.Set(current2);
                            }
                            continue;
                        }
                    }
                    if (current == 1 && this.Definition.Fields[current].GetType() == typeof(Bitmap))
                    {
                        Bitmap bitmap2 = (Bitmap)this.Definition.Fields[current];
                        bitmap2.Decode(stream);
                        List <int> decodedBitmap2 = bitmap2.GetDecodedBitmap();
                        using (List <int> .Enumerator enumerator3 = decodedBitmap2.GetEnumerator())
                        {
                            while (enumerator3.MoveNext())
                            {
                                int current3 = enumerator3.Current;
                                fieldMap.Add(current3);
                                fieldMap.Set(current3);
                            }
                            continue;
                        }
                    }
                    if (fieldMap.Bits.ContainsKey(current))
                    {
                        this.Definition.Fields[current].Decode(stream);
                    }
                }
            }
        }
示例#2
0
        public static void CreateEntry(Type from, Type to)
        {
            if (FieldMaps.TryGetValue(from, out _))
            {
                return;
            }

            if (FieldMaps.TryGetValue(to, out _))
            {
                return;
            }

            var fromMap = new FieldMap();
            var toMap   = new FieldMap();

            var fields = GetFields(from);

            foreach (var field in fields)
            {
                fromMap.Add(field);
                var otherField = to.GetField(field.Name);
                if (otherField != null)
                {
                    toMap.Add(otherField);
                }
            }

            FieldMaps.Add(from, fromMap);
            FieldMaps.Add(to, toMap);
        }
示例#3
0
        public FieldMap Parse(string line)
        {
            var fieldMap        = new FieldMap();
            var fields          = typeof(LogEvent).GetFields();
            var lineFields      = line.Split(' ');
            var lineFieldsIndex = 0;

            foreach (var lineField in lineFields)
            {
                GetFieldAttributeByName(lineField, fields, (fieldAttribute, fieldInfo) =>
                {
                    fieldMap.Add(lineFieldsIndex, fieldAttribute.Convertor, fieldInfo);
                });
                lineFieldsIndex += 1;
            }
            return(fieldMap);
        }
示例#4
0
        private Schema.Field _GetField(int rowOffset, int colOffset)
        {
            if (_fieldMap == null)
            {
                _fieldMap = new FieldMap();
                foreach (var field in _schema)
                {
                    _fieldMap.Add(
                        field.rowOffset + "," + field.colOffset, field
                        );
                }
            }
            var k = rowOffset + "," + colOffset;

            Schema.Field v = null;
            _fieldMap.TryGetValue(k, out v);
            return(v);
        }
示例#5
0
        protected override void CreateTable(DbDataReader r)
        {
            string type = "text";

            FieldCount = r.FieldCount;
            Values     = new object[FieldCount];
            //InsterStrBuilder
            StringBuilder ISBer = new StringBuilder($@"INSERT INTO {brackets1}{tableName}{brackets2} (");

            for (int i = 0; i < r.FieldCount; i++)
            {
                ISBer.Append(brackets1);
                ISBer.Append(r.GetName(i));
                ISBer.Append(brackets2);
                ISBer.Append(",");
            }
            ISBer.Remove(ISBer.Length - 1, 1);
            ISBer.Append(") VALUES (");
            for (int i = 0; i < r.FieldCount; i++)
            {
                ISBer.Append("{" + i + "},");
            }
            ISBer.Remove(ISBer.Length - 1, 1);
            ISBer.Append(")");
            InsterStr = ISBer.ToString();

            //FieldMap
            for (int i = 0; i < r.FieldCount; i++)
            {
                FieldMap.Add(r.GetName(i), i);
            }

            var cmd = conn.CreateCommand();

            try
            {
                cmd.CommandText = GetCreateTableString(r, type, brackets1, brackets2);
                cmd.ExecuteNonQuery();
            }
            finally
            {
                cmd.Dispose();
            }
        }
示例#6
0
        private void InstantiateFields()
        {
            var i = 0;

            foreach (var field in _gameBoard.Fields)
            {
                var fieldView = _itemPool.GetField();

                // Find the node at the field's position and set it as a parent of this field
                fieldView.transform.SetParent(NodeMap[field.Position].transform);
                fieldView.Init(field, NodeMap[field.Position], NodeMap[field.ConnectedPosition]);
                fieldView.name = "Field " + i++;

                // Keep track of the field in grid space
                // Since fields are undirected, we should add the opposite direction as well
                FieldMap.Add(field.Position, field.Direction, fieldView);
                FieldMap.Add(field.ConnectedPosition, field.Direction.Opposite(), fieldView);
            }
        }