Ejemplo n.º 1
0
        public void TestPersistAttributeTypeScope()
        {
            var s = new ModelSerializer(StringSerializer.Create(), new LoadedTypeSerializer());

            // Add a new entity to the original model, it should not be serialized!
            new Engine.WorldRendering.Entity();

            var strm = new MemoryStream();

            var writer = new StreamWriter(strm);

            s.Serialize(model, writer);


            var deserialized = new Data.ModelContainer();

            writer.Flush();

            strm.Position = 0;

            // For testing
            string serialized = getStringFromStream(strm);

            SimpleModelObject.CurrentModelContainer = deserialized;

            s.Deserialize(new StreamReader(strm));


            Assert.AreNotEqual(model.Objects.Count, deserialized.Objects.Count);
            Assert.AreEqual(model.Objects[0].ToString(), deserialized.Objects[0].ToString());
            Assert.AreEqual(model.Objects[1].ToString(), deserialized.Objects[1].ToString());
        }
Ejemplo n.º 2
0
        public void UpdateFromModel(Data.ModelContainer model)
        {
            var array = new List <IModelObject>();

            foreach (var el in model.Objects)
            {
                array.Add((IModelObject)el);
            }

            foreach (var obj in array)
            {
                if (obj is TypelessObject)
                {
                    objects.Add((TypelessObject)obj);
                    continue;
                }
                var t = new TypelessObject();
                t.Type = obj.GetType().FullName;
                foreach (var att in getAllPersistentAttributes(obj.GetType()))
                {
                    t.SetData(att.Name, att.GetData(obj));
                }

                if (obj is EngineModelObject)
                {
                    t.attached = ((EngineModelObject)obj).attached;
                }

                objects.Add(t);
            }
        }
        public void Serialize(Data.ModelContainer model, StreamWriter wr)
        {
            foreach (var obj in model.Objects)
            {
                if (obj.GetType().GetCustomAttributes(false).Contains(typeof(PersistAttribute)))
                {
                    QueueForSerialization((IModelObject)obj);
                }
            }

            Serialize(wr);
        }
Ejemplo n.º 4
0
        public void SetUp()
        {
            SimpleModelObject.CurrentModelContainer = new Data.ModelContainer();
            model = SimpleModelObject.CurrentModelContainer;

            object1 = new TestObject
            {
                Getal = 32,
            };
            object2 = new TestObject()
            {
                Getal = 2
            };
            object1.Object = object2;
        }
Ejemplo n.º 5
0
        public void AddToModel(Data.ModelContainer model, Assembly assembly)
        {
            foreach (var t in objects)
            {
                IModelObject obj;
                try
                {
                    obj = (IModelObject)assembly.CreateInstance(t.Type);
                    foreach (var att in getAllPersistentAttributes(obj.GetType()))
                    {
                        if (t.HasData(att.Name))
                        {
                            att.SetData(obj, t.GetData(att.Name));
                        }
                    }

                    if (obj is EngineModelObject)
                    {
                        var bmo = obj as EngineModelObject;

                        foreach (var entry in t.attached)
                        {
                            var type  = entry.Key;
                            var value = entry.Value;

                            try
                            {
                                var newType = assembly.GetType(type.FullName);
                                if (newType != null)
                                {
                                    type = newType;
                                }
                            }
                            catch (Exception)
                            {
                            }

                            bmo.set(type, value);
                        }
                    }
                }
                catch (Exception ex)
                {
                    model.AddObject(t);
                }
            }
        }
Ejemplo n.º 6
0
        public void TestChangeEntity()
        {
            var container = new Data.ModelContainer();

            SimpleModelObject.CurrentModelContainer = new Data.ModelContainer();

            var ent = new Engine.WorldRendering.Entity();

            ent.Mesh = new RAMMesh();

            int length;

            Data.ModelContainer.ObjectChange[] array;
            container.GetObjectChanges(out array, out length);



            Assert.AreEqual(1, length);
            Assert.AreEqual(ent, array[0].ModelObject);
        }
Ejemplo n.º 7
0
        public void TestSerializeArray()
        {
            var array = new TestObjectArray();

            array.Objects = new List <TestObject>();
            array.Objects.Add(object1);
            array.Objects.Add(object2);



            var s = new ModelSerializer(StringSerializer.Create(), new LoadedTypeSerializer());

            var strm = new MemoryStream();

            var writer = new StreamWriter(strm);

            s.Serialize(model, writer);


            var deserialized = new Data.ModelContainer();

            writer.Flush();

            strm.Position = 0;

            // For testing
            string serialized = getStringFromStream(strm);

            SimpleModelObject.CurrentModelContainer = deserialized;
            s = new ModelSerializer(StringSerializer.Create(), new LoadedTypeSerializer());
            s.Deserialize(new StreamReader(strm));


            Assert.AreEqual(model.Objects.Count, deserialized.Objects.Count);
            Assert.AreEqual(model.Objects[0].ToString(), deserialized.Objects[0].ToString());
            Assert.AreEqual(model.Objects[1].ToString(), deserialized.Objects[1].ToString());
            Assert.AreEqual(model.Objects[2].ToString(), deserialized.Objects[2].ToString());
        }
Ejemplo n.º 8
0
 public VirtualModelSyncer(Data.ModelContainer container, byte unqiueSyncerID)
 {
     this.container = container;
     unqiueSyncerId = unqiueSyncerID;
 }
Ejemplo n.º 9
0
 public void Initialize(Data.ModelContainer container)
 {
     Container = container;
 }