protected virtual void SerializeClass(IDataStruct value)
 {
     if (value is IVersionedData versionedData)
     {
         _writer.WriteByte(versionedData.Version);
     }
     value.Serialize(this);
 }
Esempio n. 2
0
        public DTUAdapter(string wrapperDllPath)
        {
            var ass          = Assembly.LoadFrom(wrapperDllPath);
            var assNameSpace = ass.GetName().Name;

            _wrapper    = ass.CreateInstance(assNameSpace + "." + "Wrapper") as IDtuWrapper;
            _dataStruct = ass.CreateInstance(assNameSpace + "." + "DataStruct") as IDataStruct;
            _infoStruct = ass.CreateInstance(assNameSpace + "." + "InfoStruct") as IInfoStruct;
        }
Esempio n. 3
0
        private static void InitData()
        {
            BlockCost = new Dictionary <int, int>();
            var data = DataParse.FromFile(ShipCostFilePath);

            foreach (IDataStruct entry in data)
            {
                var         value     = entry.GetValue("ident").ToString();
                int         blockId   = int.Parse(value);
                IDataStruct costToken = entry.Get("deadliness");
                int         cost      = costToken.IsNull ? 0 : int.Parse(costToken.ToString());
                BlockCost.Add(blockId, cost);
            }
        }
Esempio n. 4
0
        public async override Task <ObjectQueryNavigator> NavigateAsync()
        {
            m_result_set = new List <TEntity>();

            m_data_set = await m_data_source.GetDataSetAsync(m_query_builder);

            for (IDataStruct x = await m_data_set.GetRecordAsync(); x != null; x = await m_data_set.GetRecordAsync())
            {
                m_result_set.Add(m_read_obj(x));
            }

            Dispose();
            return(this);
        }
        protected override void SerializeClass(IDataStruct value)
        {
            bool needToSerialize = false;

            if (!_instanceMap.TryGetValue(value, out int instanceId))
            {
                instanceId = _instanceMap.Count;
                _instanceMap.Add(value, instanceId);
                needToSerialize = true;
            }

            _writer.WriteInt(instanceId);

            if (needToSerialize)
            {
                base.SerializeClass(value);
            }
        }
Esempio n. 6
0
        public int GetNextData(ref IDataStruct pDataStruct, ushort waitseconds)
        {
            var datastruct = new DtuDataStruct();
            var result     = DTUSimWrapper.DSGetNextData(ref datastruct, waitseconds);

            if (pDataStruct == null)
            {
                pDataStruct = new DataStruct();
            }

            pDataStruct.Id          = datastruct.m_dtuId;
            pDataStruct.DataBuff    = datastruct.m_data_buf;
            pDataStruct.DataLength  = datastruct.m_data_len;
            pDataStruct.DataType    = datastruct.m_data_type;
            pDataStruct.ReceiveTime = datastruct.m_recv_time;

            return(result);
        }
Esempio n. 7
0
        public static List <Blueprint> FromFile(string path)
        {
            using (IDataStruct data = DataParse.FromFile(path))
            {
                List <Blueprint> results    = new List <Blueprint>();
                IDataStruct      blueprints = data.Get("blueprints");

                for (int i = 0; i < blueprints.Count; i++)
                {
                    IDataStruct blueprintTable = blueprints.Get(i);
                    if (blueprintTable.Count > 1)
                    {
                        results.Add(FromTable(blueprintTable));
                    }
                }
                return(results);
            }
        }
Esempio n. 8
0
        public static Blueprint FromTable(IDataStruct blueprintTable)
        {
            var         data   = blueprintTable.Get("data");
            string      name   = data.GetValue("name") as string;
            IDataStruct blocks = blueprintTable.Get("blocks");
            int         cost   = 0;

            Console.WriteLine("Parsing blueprint for ship: " + name);

            foreach (IDataStruct block in blocks)
            {
                int id = int.Parse(block.GetValue(0).ToString());
                cost += BlockData.GetBlockCost(id);
            }

            Console.WriteLine($"Succesfully parsed ship {name} with a cost of {cost}");
            return(new Blueprint(name, cost, blueprintTable.Serialize()));
        }
Esempio n. 9
0
 public void SetData(IDataStruct s)
 {
     data.Append(s);
 }
Esempio n. 10
0
 public DataStructEnumerator(IDataStruct toEnumerate)
 {
     ToEnumerate = toEnumerate;
     Reset();
 }
Esempio n. 11
0
 public void Visit(IDataStruct dataStruct)
 {
     Print(dataStruct);
 }