示例#1
0
        public IFlatbufferObject __union(int offset, IFlatbufferObject t)
        {
            //offset += bb_pos;
            int indirect = __indirect(offset);

            t.__init(indirect, bb);
            return(t);
        }
示例#2
0
        public static object GetOrCreateDeserialize(IFlatbufferObject incoming, Type type)
        {
            if (incoming == null)
            {
                return(null);
            }
            object result;

            // first check if we already deserialize the object at this position
            fb2objMapping.TryGetValue(incoming.BufferPosition, out result);
            if (result != null)
            {
                UnityEngine.Debug.Log("Incoming-Type:" + incoming.GetType() + " Casting to :" + type.ToString());
                // yeah, we found it. no need to create a new object we got it already
                return(result);
            }

            // not deserialized, yet. Create a new object and call the deserialize method with the flatbuffers object
            var newObject = (IFBSerializable)Activator.CreateInstance(type);

            newObject.Deserialize(incoming);
            fb2objMapping[incoming.BufferPosition] = newObject;
            return(newObject);
        }
示例#3
0
 internal Message(int id, IFlatbufferObject body)
 {
     this.id   = id;
     this.body = body;
 }
 public FBManualObject __initFromRef(IFlatbufferObject refObj)
 {
     __init(refObj.BufferPosition, refObj.ByteBuffer);
     return(this);
 }
示例#5
0
 public static T GetOrCreateDeserialize <T>(IFlatbufferObject incoming) where T : IFBSerializable, new()
 {
     return((T)GetOrCreateDeserialize(incoming, typeof(T)));
 }
示例#6
0
        private void Delete(BenchmarkIteration iter, ObjectDB <IFlatbufferObject> db, IFlatbufferObject data)
        {
            List <Guid> ids = new List <Guid>();

            for (var i = 0; i < Benchmark.InnerIterationCount; i++)
            {
                ids.Add(db.Insert(data));
            }

            using (iter.StartMeasurement())
            {
                foreach (var id in ids)
                {
                    db.Delete(id);
                }
            }
        }
示例#7
0
 private void Insert(BenchmarkIteration iter, ObjectDB <IFlatbufferObject> db, IFlatbufferObject data)
 {
     using (iter.StartMeasurement())
     {
         for (var i = 0; i < Benchmark.InnerIterationCount; i++)
         {
             db.Insert(data);
         }
     }
 }