Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
TupleSerializer.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 //
4 // AUTOGENERATED, do not modify!
5 
6 using System;
7 using SiliconStudio.Core.Reflection;
8 
9 namespace SiliconStudio.Core.Serialization.Serializers
10 {
11  /// <summary>
12  /// Serializer for a 1-tuple.
13  /// </summary>
14  /// <typeparam name="T1">The type of the tuple's component 1.</typeparam>
15  [DataSerializerGlobal(typeof(TupleSerializer<>), typeof(Tuple<>), DataSerializerGenericMode.GenericArguments)]
16  public class TupleSerializer<T1> : DataSerializer<Tuple<T1>>, IDataSerializerInitializer
17  {
18  private DataSerializer<T1> item1Serializer;
19 
20  /// <inheritdoc/>
21  public void Initialize(SerializerSelector serializerSelector)
22  {
23  item1Serializer = MemberSerializer<T1>.Create(serializerSelector);
24  }
25 
26  /// <inheritdoc />
27  public override void Serialize(ref Tuple<T1> obj, ArchiveMode mode, SerializationStream stream)
28  {
29  if (mode == ArchiveMode.Serialize)
30  {
31  item1Serializer.Serialize(obj.Item1, stream);
32  }
33  else
34  {
35  var item1 = default(T1);
36  item1Serializer.Serialize(ref item1, mode, stream);
37  obj = new Tuple<T1>(item1);
38  }
39  }
40  }
41 
42  /// <summary>
43  /// Serializer for a 2-tuple.
44  /// </summary>
45  /// <typeparam name="T1">The type of the tuple's component 1.</typeparam>
46  /// <typeparam name="T2">The type of the tuple's component 2.</typeparam>
47  [DataSerializerGlobal(typeof(TupleSerializer<,>), typeof(Tuple<,>), DataSerializerGenericMode.GenericArguments)]
48  public class TupleSerializer<T1, T2> : DataSerializer<Tuple<T1, T2>>, IDataSerializerInitializer
49  {
50  private DataSerializer<T1> item1Serializer;
51  private DataSerializer<T2> item2Serializer;
52 
53  /// <inheritdoc/>
54  public void Initialize(SerializerSelector serializerSelector)
55  {
56  item1Serializer = MemberSerializer<T1>.Create(serializerSelector);
57  item2Serializer = MemberSerializer<T2>.Create(serializerSelector);
58  }
59 
60  /// <inheritdoc />
61  public override void Serialize(ref Tuple<T1, T2> obj, ArchiveMode mode, SerializationStream stream)
62  {
63  if (mode == ArchiveMode.Serialize)
64  {
65  item1Serializer.Serialize(obj.Item1, stream);
66  item2Serializer.Serialize(obj.Item2, stream);
67  }
68  else
69  {
70  var item1 = default(T1);
71  var item2 = default(T2);
72  item1Serializer.Serialize(ref item1, mode, stream);
73  item2Serializer.Serialize(ref item2, mode, stream);
74  obj = new Tuple<T1, T2>(item1, item2);
75  }
76  }
77  }
78 
79  /// <summary>
80  /// Serializer for a 3-tuple.
81  /// </summary>
82  /// <typeparam name="T1">The type of the tuple's component 1.</typeparam>
83  /// <typeparam name="T2">The type of the tuple's component 2.</typeparam>
84  /// <typeparam name="T3">The type of the tuple's component 3.</typeparam>
85  [DataSerializerGlobal(typeof(TupleSerializer<,,>), typeof(Tuple<,,>), DataSerializerGenericMode.GenericArguments)]
86  public class TupleSerializer<T1, T2, T3> : DataSerializer<Tuple<T1, T2, T3>>, IDataSerializerInitializer
87  {
88  private DataSerializer<T1> item1Serializer;
89  private DataSerializer<T2> item2Serializer;
90  private DataSerializer<T3> item3Serializer;
91 
92  /// <inheritdoc/>
93  public void Initialize(SerializerSelector serializerSelector)
94  {
95  item1Serializer = MemberSerializer<T1>.Create(serializerSelector);
96  item2Serializer = MemberSerializer<T2>.Create(serializerSelector);
97  item3Serializer = MemberSerializer<T3>.Create(serializerSelector);
98  }
99 
100  /// <inheritdoc />
101  public override void Serialize(ref Tuple<T1, T2, T3> obj, ArchiveMode mode, SerializationStream stream)
102  {
103  if (mode == ArchiveMode.Serialize)
104  {
105  item1Serializer.Serialize(obj.Item1, stream);
106  item2Serializer.Serialize(obj.Item2, stream);
107  item3Serializer.Serialize(obj.Item3, stream);
108  }
109  else
110  {
111  var item1 = default(T1);
112  var item2 = default(T2);
113  var item3 = default(T3);
114  item1Serializer.Serialize(ref item1, mode, stream);
115  item2Serializer.Serialize(ref item2, mode, stream);
116  item3Serializer.Serialize(ref item3, mode, stream);
117  obj = new Tuple<T1, T2, T3>(item1, item2, item3);
118  }
119  }
120  }
121 
122  /// <summary>
123  /// Serializer for a 4-tuple.
124  /// </summary>
125  /// <typeparam name="T1">The type of the tuple's component 1.</typeparam>
126  /// <typeparam name="T2">The type of the tuple's component 2.</typeparam>
127  /// <typeparam name="T3">The type of the tuple's component 3.</typeparam>
128  /// <typeparam name="T4">The type of the tuple's component 4.</typeparam>
129  [DataSerializerGlobal(typeof(TupleSerializer<,,,>), typeof(Tuple<,,,>), DataSerializerGenericMode.GenericArguments)]
130  public class TupleSerializer<T1, T2, T3, T4> : DataSerializer<Tuple<T1, T2, T3, T4>>, IDataSerializerInitializer
131  {
132  private DataSerializer<T1> item1Serializer;
133  private DataSerializer<T2> item2Serializer;
134  private DataSerializer<T3> item3Serializer;
135  private DataSerializer<T4> item4Serializer;
136 
137  /// <inheritdoc/>
138  public void Initialize(SerializerSelector serializerSelector)
139  {
140  item1Serializer = MemberSerializer<T1>.Create(serializerSelector);
141  item2Serializer = MemberSerializer<T2>.Create(serializerSelector);
142  item3Serializer = MemberSerializer<T3>.Create(serializerSelector);
143  item4Serializer = MemberSerializer<T4>.Create(serializerSelector);
144  }
145 
146  /// <inheritdoc />
147  public override void Serialize(ref Tuple<T1, T2, T3, T4> obj, ArchiveMode mode, SerializationStream stream)
148  {
149  if (mode == ArchiveMode.Serialize)
150  {
151  item1Serializer.Serialize(obj.Item1, stream);
152  item2Serializer.Serialize(obj.Item2, stream);
153  item3Serializer.Serialize(obj.Item3, stream);
154  item4Serializer.Serialize(obj.Item4, stream);
155  }
156  else
157  {
158  var item1 = default(T1);
159  var item2 = default(T2);
160  var item3 = default(T3);
161  var item4 = default(T4);
162  item1Serializer.Serialize(ref item1, mode, stream);
163  item2Serializer.Serialize(ref item2, mode, stream);
164  item3Serializer.Serialize(ref item3, mode, stream);
165  item4Serializer.Serialize(ref item4, mode, stream);
166  obj = new Tuple<T1, T2, T3, T4>(item1, item2, item3, item4);
167  }
168  }
169  }
170 
171 }
void Initialize(SerializerSelector serializerSelector)
Initializes the specified serializer. The serializer.
DataSerializerGenericMode
Defines what generic parameters to pass to the serializer.
void Initialize(SerializerSelector serializerSelector)
Initializes the specified serializer. The serializer.
override void Serialize(ref Tuple< T1, T2 > obj, ArchiveMode mode, SerializationStream stream)
Base class for implementation of SerializationStream.
override void Serialize(ref Tuple< T1, T2, T3 > obj, ArchiveMode mode, SerializationStream stream)
Adds initialization feature to a DataSerializer.
void Initialize(SerializerSelector serializerSelector)
Initializes the specified serializer. The serializer.
Serializer context. It holds DataSerializer{T} objects and their factories.
override void Serialize(ref Tuple< T1 > obj, ArchiveMode mode, SerializationStream stream)
void Initialize(SerializerSelector serializerSelector)
Initializes the specified serializer. The serializer.
Describes how to serialize and deserialize an object without knowing its type. Used as a common base ...
ArchiveMode
Enumerates the different mode of serialization (either serialization or deserialization).
Definition: ArchiveMode.cs:8
override void Serialize(ref Tuple< T1, T2, T3, T4 > obj, ArchiveMode mode, SerializationStream stream)