Exemplo n.º 1
0
        /// <inheritdoc/>
        public override void Initialize(SerializerSelector serializerSelector)
        {
            // Key should never be null
            keySerializer = MemberSerializer <TKey> .Create(serializerSelector, false);

            valueSerializer = MemberSerializer <TValue> .Create(serializerSelector);
        }
Exemplo n.º 2
0
        /// <inheritdoc/>
        public void EnumerateGenericInstantiations(SerializerSelector serializerSelector, [NotNull] IList <Type> genericInstantiations)
        {
            genericInstantiations.Add(typeof(T));

            // Force concrete type to be implemented (that's what will likely be used with this interface)
            genericInstantiations.Add(typeof(List <T>));
        }
Exemplo n.º 3
0
        public void EnumerateGenericInstantiations(SerializerSelector serializerSelector, IList <Type> genericInstantiations)
        {
            genericInstantiations.Add(typeof(TKey));
            genericInstantiations.Add(typeof(TValue));

            // Force concrete type to be implemented (that's what will likely be used with this interface)
            genericInstantiations.Add(typeof(Dictionary <TKey, TValue>));
        }
Exemplo n.º 4
0
            /// <inheritdoc/>
            public override void Initialize(SerializerSelector serializerSelector)
            {
                guidSerializer = MemberSerializer <Guid> .Create(serializerSelector);

                stringSerializer = MemberSerializer <string> .Create(serializerSelector);

                componentCollectionSerializer = MemberSerializer <EntityComponentCollection> .Create(serializerSelector);
            }
Exemplo n.º 5
0
 public override void Initialize(SerializerSelector serializerSelector)
 {
     parentSerializer = SerializerSelector.Default.GetSerializer <SpriteFont>();
     if (parentSerializer == null)
     {
         throw new InvalidOperationException(string.Format("Could not find parent serializer for type {0}", "SiliconStudio.Xenko.Graphics.SpriteFont"));
     }
 }
Exemplo n.º 6
0
 static AssetCloner()
 {
     ClonerSelector = new SerializerSelector();
     ClonerSelector.RegisterProfile("Default");
     ClonerSelector.RegisterProfile("Asset");
     ClonerSelector.RegisterProfile("AssetClone");
     ClonerSelector.ReuseReferences = true;
 }
Exemplo n.º 7
0
            /// <inheritdoc/>
            public void Initialize(SerializerSelector serializerSelector)
            {
                guidSerializer = MemberSerializer <Guid> .Create(serializerSelector);

                stringSerializer = MemberSerializer <string> .Create(serializerSelector);

                entityGroupSerializer = MemberSerializer <EntityGroup> .Create(serializerSelector);

                componentCollectionSerializer = serializerSelector.GetSerializer <EntityComponentCollection>();
            }
Exemplo n.º 8
0
 public override void Initialize(SerializerSelector serializerSelector)
 {
     // We should use serializerSelector, but DataContentSerializerHelper we might have wrong context; make sure parent is resolved through proper context
     // (maybe we should have separate contexts for parent and members?)
     parentSerializer = SerializerSelector.Default.GetSerializer <SpriteFont>();
     if (parentSerializer == null)
     {
         throw new InvalidOperationException(string.Format("Could not find parent serializer for type {0}", "Stride.Graphics.SpriteFont"));
     }
 }
Exemplo n.º 9
0
 public override void Initialize(SerializerSelector serializerSelector)
 {
     // Get parent serializer
     parentSerializer = serializerSelector.GetSerializer <SiliconStudio.Xenko.Engine.AsyncScript>();
     if (parentSerializer == null)
     {
         throw new InvalidOperationException(string.Format("Could not find parent serializer for type {0}", @"SiliconStudio.Xenko.Engine.AsyncScript"));
     }
     // Cache member serializers
 }
Exemplo n.º 10
0
        /// <summary>
        /// Clones the specified object, taking special care of <see cref="Entity"/>, <see cref="EntityComponent"/> and external assets.
        /// User can optionally provides list of cloned objects (list of data reference objects that should be cloned)
        /// and mapped objects (list of data reference objects that should be ducplicated using the given instance).
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="clonedObjects">The cloned objects.</param>
        /// <param name="mappedObjects">The mapped objects.</param>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        private static T Clone <T>(HashSet <object> clonedObjects, TryGetValueFunction <object, object> mappedObjects, T entity) where T : class
        {
            if (cloneSerializerSelector == null)
            {
                cloneSerializerSelector = new SerializerSelector();
                cloneSerializerSelector.ReuseReferences = true;

                cloneSerializerSelector
                .RegisterProfile("Default")
                .RegisterProfile("Clone")
                .RegisterSerializer(new EntitySerializer())
                .RegisterSerializer(new CloneSerializer <string>())
                .RegisterSerializer(new CloneSerializer <Effect>())
                .RegisterSerializer(new CloneSerializer <Mesh>())
                .RegisterSerializer(new CloneSerializer <Model>())
                .RegisterSerializer(new CloneSerializer <AnimationClip>());
            }

            // Initialize CloneContext
            lock (cloneContext)
            {
                try
                {
                    cloneContext.EntitySerializerSelector = cloneSerializerSelector;

                    cloneContext.ClonedObjects = clonedObjects;
                    cloneContext.MappedObjects = mappedObjects;

                    // Serialize
                    var memoryStream = cloneContext.MemoryStream;
                    var writer       = new BinarySerializationWriter(memoryStream);
                    writer.Context.SerializerSelector = cloneSerializerSelector;
                    writer.Context.Set(CloneContextProperty, cloneContext);
                    writer.SerializeExtended(entity, ArchiveMode.Serialize, null);

                    // Deserialization reuses this list and expect it to be empty at the beginning.
                    cloneContext.SerializedObjects.Clear();

                    // Deserialize
                    T result = null;
                    memoryStream.Seek(0, SeekOrigin.Begin);
                    var reader = new BinarySerializationReader(memoryStream);
                    reader.Context.SerializerSelector = cloneSerializerSelector;
                    reader.Context.Set(CloneContextProperty, cloneContext);
                    reader.SerializeExtended(ref result, ArchiveMode.Deserialize, null);

                    return(result);
                }
                finally
                {
                    cloneContext.Cleanup();
                }
            }
        }
Exemplo n.º 11
0
        public override void Initialize(SerializerSelector serializerSelector)
        {
            // Get parent serializer
            parentSerializer = serializerSelector.GetSerializer <SiliconStudio.Xenko.Engine.AsyncScript>();
            if (parentSerializer == null)
            {
                throw new InvalidOperationException(string.Format("Could not find parent serializer for type {0}", @"SiliconStudio.Xenko.Engine.AsyncScript"));
            }
            // Cache member serializers
            staffSerializer = MemberSerializer <System.Collections.Generic.List <Strategy.Government_Staff_Person> > .Create(serializerSelector);

            leaderSerializer = MemberSerializer <Strategy.Government_Staff_Person> .Create(serializerSelector);
        }
Exemplo n.º 12
0
        public override void Initialize(SerializerSelector serializerSelector)
        {
            // Get parent serializer
            parentSerializer = serializerSelector.GetSerializer <SiliconStudio.Xenko.Engine.AsyncScript>();
            if (parentSerializer == null)
            {
                throw new InvalidOperationException(string.Format("Could not find parent serializer for type {0}", @"SiliconStudio.Xenko.Engine.AsyncScript"));
            }
            // Cache member serializers
            populationsSerializer = MemberSerializer <System.Collections.Generic.Dictionary <System.Int32, System.Int32> > .Create(serializerSelector);

            classificationSerializer = MemberSerializer <System.Int32> .Create(serializerSelector);
        }
Exemplo n.º 13
0
        public override void Initialize(SerializerSelector serializerSelector)
        {
            // Get parent serializer
            parentSerializer = serializerSelector.GetSerializer <SiliconStudio.Xenko.Engine.AsyncScript>();
            if (parentSerializer == null)
            {
                throw new InvalidOperationException(string.Format("Could not find parent serializer for type {0}", @"SiliconStudio.Xenko.Engine.AsyncScript"));
            }
            // Cache member serializers
            nameSerializer = MemberSerializer <System.String> .Create(serializerSelector);

            religionSerializer = MemberSerializer <Strategy.Religion> .Create(serializerSelector);

            believerSerializer = MemberSerializer <Strategy.Believe> .Create(serializerSelector);
        }
Exemplo n.º 14
0
        public override void Initialize(SerializerSelector serializerSelector)
        {
            // Get parent serializer
            parentSerializer = serializerSelector.GetSerializer <SiliconStudio.Xenko.Engine.SyncScript>();
            if (parentSerializer == null)
            {
                throw new InvalidOperationException(string.Format("Could not find parent serializer for type {0}", @"SiliconStudio.Xenko.Engine.SyncScript"));
            }
            // Cache member serializers
            KeyboardMovementSpeedSerializer = MemberSerializer <SiliconStudio.Core.Mathematics.Vector3> .Create(serializerSelector);

            SpeedFactorSerializer = MemberSerializer <System.Single> .Create(serializerSelector);

            KeyboardRotationSpeedSerializer = MemberSerializer <SiliconStudio.Core.Mathematics.Vector2> .Create(serializerSelector);
        }
 public override DataSerializer GetSerializer(SerializerSelector selector, Type type)
 {
     DataSerializer dataSerializer;
     if (!serializersByType.TryGetValue(type, out dataSerializer))
     {
         if (baseType.GetTypeInfo().IsAssignableFrom(type.GetTypeInfo()))
         {
             dataSerializer = (DataSerializer)Activator.CreateInstance(serializerGenericType.MakeGenericType(type));
             selector.EnsureInitialized(dataSerializer);
             serializersByTypeId.TryAdd(dataSerializer.SerializationTypeId, dataSerializer);
         }
         // Add it even if null (so that failures are cached too)
         serializersByType.TryAdd(type, dataSerializer);
     }
     return dataSerializer;
 }
Exemplo n.º 16
0
        protected override YardarmTypeInfo GetTypeInfo()
        {
            SerializerDescriptor?serializerDescriptor = SerializerSelector.Select(Element)?.Descriptor;

            if (serializerDescriptor == null)
            {
                throw new InvalidOperationException($"No serializer configured for {Element}.");
            }

            INameFormatter formatter = Context.NameFormatterSelector.GetFormatter(NameKind.Class);
            NameSyntax     ns        = Context.NamespaceProvider.GetNamespace(RequestTypeGenerator.Element);

            TypeSyntax name = QualifiedName(ns,
                                            IdentifierName(formatter.Format($"{RequestTypeGenerator.Element.Element.OperationId}-{serializerDescriptor.NameSegment}-Request")));

            return(new YardarmTypeInfo(name));
        }
Exemplo n.º 17
0
        public override void Initialize(SerializerSelector serializerSelector)
        {
            // Get parent serializer
            parentSerializer = serializerSelector.GetSerializer <SiliconStudio.Xenko.Engine.AsyncScript>();
            if (parentSerializer == null)
            {
                throw new InvalidOperationException(string.Format("Could not find parent serializer for type {0}", @"SiliconStudio.Xenko.Engine.AsyncScript"));
            }
            // Cache member serializers
            country_nameSerializer = MemberSerializer <System.String> .Create(serializerSelector);

            country_idSerializer = MemberSerializer <System.Int32> .Create(serializerSelector);

            statesSerializer = MemberSerializer <System.Collections.Generic.List <System.Int32> > .Create(serializerSelector);

            populationsSerializer = MemberSerializer <System.Collections.Generic.Dictionary <Strategy.Population, System.Int32> > .Create(serializerSelector);

            governmentSerializer = MemberSerializer <Strategy.Government> .Create(serializerSelector);
        }
Exemplo n.º 18
0
        public override void Initialize(SerializerSelector serializerSelector)
        {
            // Get parent serializer
            parentSerializer = serializerSelector.GetSerializer <SiliconStudio.Xenko.Engine.StartupScript>();
            if (parentSerializer == null)
            {
                throw new InvalidOperationException(string.Format("Could not find parent serializer for type {0}", @"SiliconStudio.Xenko.Engine.StartupScript"));
            }
            // Cache member serializers
            populationsSerializer = MemberSerializer <System.Collections.Generic.Dictionary <System.Int32, Strategy.Population> > .Create(serializerSelector);

            countriesSerializer = MemberSerializer <System.Collections.Generic.Dictionary <System.Int32, Strategy.Country> > .Create(serializerSelector);

            believesSerializer = MemberSerializer <System.Collections.Generic.Dictionary <System.Int32, Strategy.Believe> > .Create(serializerSelector);

            statesSerializer = MemberSerializer <System.Collections.Generic.Dictionary <System.Int32, Strategy.State> > .Create(serializerSelector);

            provincesSerializer = MemberSerializer <System.Collections.Generic.Dictionary <System.Int32, Strategy.Province> > .Create(serializerSelector);
        }
Exemplo n.º 19
0
        private static T Clone <T>(HashSet <object> clonedObjects, T entity) where T : class
        {
            if (cloneSerializerSelector == null)
            {
                cloneSerializerSelector = new SerializerSelector(true, "Default", "Clone");
            }
            // Initialize CloneContext
            lock (CloneContext)
            {
                try
                {
                    CloneContext.EntitySerializerSelector = cloneSerializerSelector;
                    CloneContext.ClonedObjects            = clonedObjects;

                    // Serialize
                    var memoryStream = CloneContext.MemoryStream;
                    var writer       = new BinarySerializationWriter(memoryStream);
                    writer.Context.SerializerSelector = cloneSerializerSelector;
                    writer.Context.Set(EntityCloner.CloneContextProperty, CloneContext);
                    writer.SerializeExtended(entity, ArchiveMode.Serialize);

                    // Deserialization reuses this list and expect it to be empty at the beginning.
                    CloneContext.SerializedObjects.Clear();

                    // Deserialize
                    T result = null;
                    memoryStream.Seek(0, SeekOrigin.Begin);
                    var reader = new BinarySerializationReader(memoryStream);
                    reader.Context.SerializerSelector = cloneSerializerSelector;
                    reader.Context.Set(EntityCloner.CloneContextProperty, CloneContext);
                    reader.SerializeExtended(ref result, ArchiveMode.Deserialize);

                    return(result);
                }
                finally
                {
                    CloneContext.Cleanup();
                }
            }
        }
Exemplo n.º 20
0
 /// <inheritdoc/>
 public override void Initialize(SerializerSelector serializerSelector)
 {
     guidSerializer = MemberSerializer <Guid> .Create(serializerSelector);
 }
Exemplo n.º 21
0
 static ParameterContainerExtensions()
 {
     DefaultSceneSerializerSelector = new SerializerSelector("Default", "Asset");
 }
 public override void Initialize(SerializerSelector serializerSelector)
 {
     parameterKeySerializer = serializerSelector.GetSerializer <ParameterKey>();
 }
Exemplo n.º 23
0
 /// <inheritdoc/>
 public override void Initialize(SerializerSelector serializerSelector)
 {
     itemSerializer = serializerSelector.GetSerializer <T>();
 }
Exemplo n.º 24
0
 /// <inheritdoc/>
 public override void Initialize(SerializerSelector serializerSelector)
 {
     itemDataSerializer = serializerSelector.GetSerializer <KeyValuePair <string, IComputeColorParameter> >();
 }
Exemplo n.º 25
0
 /// <inheritdoc/>
 public void EnumerateGenericInstantiations(SerializerSelector serializerSelector, IList <Type> genericInstantiations)
 {
     genericInstantiations.Add(typeof(T));
 }
Exemplo n.º 26
0
 public override void Initialize(SerializerSelector serializerSelector)
 {
     pointSerializer = MemberSerializer <Vector3> .Create(serializerSelector);
 }
Exemplo n.º 27
0
 public override void Initialize(SerializerSelector serializerSelector)
 {
     parentSerializer = serializerSelector.GetSerializer(typeof(T).BaseType);
 }
 static ParameterContainerExtensions()
 {
     DefaultSceneSerializerSelector = new SerializerSelector("Default", "Content");
 }
Exemplo n.º 29
0
 /// <summary>
 /// Initializes the specified serializer.
 /// </summary>
 /// <remarks>This method should be thread-safe and OK to call multiple times.</remarks>
 /// <param name="serializerSelector">The serializer.</param>
 public virtual void Initialize(SerializerSelector serializerSelector)
 {
 }
Exemplo n.º 30
0
 /// <inheritdoc/>
 public override void Initialize(SerializerSelector serializerSelector)
 {
     itemDataSerializer = MemberSerializer <T> .Create(serializerSelector);
 }
Exemplo n.º 31
0
 static AssetCloner()
 {
     ClonerSelector = new SerializerSelector(true, "Default", "Asset", "AssetClone");
 }
Exemplo n.º 32
0
 /// <inheritdoc/>
 public void EnumerateGenericInstantiations(SerializerSelector serializerSelector, [NotNull] IList <Type> genericInstantiations)
 {
     genericInstantiations.Add(typeof(TKey));
     genericInstantiations.Add(typeof(TValue));
 }
 static ParameterContainerExtensions()
 {
     DefaultSceneSerializerSelector = new SerializerSelector()
         .RegisterProfile("Default")
         .RegisterProfile("Asset");
 }
Exemplo n.º 34
0
 public void EnumerateGenericInstantiations(SerializerSelector serializerSelector, IList <Type> genericInstantiations)
 {
     genericInstantiations.Add(typeof(KeyValuePair <string, IComputeColorParameter>));
 }
 public override DataSerializer GetSerializer(SerializerSelector selector, ref ObjectId typeId)
 {
     DataSerializer dataSerializer;
     serializersByTypeId.TryGetValue(typeId, out dataSerializer);
     return dataSerializer;
 }
Exemplo n.º 36
0
 static AssetCloner()
 {
     ClonerSelector = new SerializerSelector(true, true, "Default", "Content", "AssetClone");
     ClonerSelector.SerializerFactories.Add(new GenericSerializerFactory(typeof(IUnloadable), typeof(UnloadableCloneSerializer <>)));
 }
Exemplo n.º 37
0
 public abstract DataSerializer GetSerializer(SerializerSelector selector, ref ObjectId typeId);
Exemplo n.º 38
0
 public AssetSerializer()
 {
     LowLevelSerializerSelector = SerializerSelector.Asset;
     LowLevelSerializerSelectorWithReuse = SerializerSelector.AssetWithReuse;
 }
Exemplo n.º 39
0
 public abstract DataSerializer GetSerializer(SerializerSelector selector, Type type);