Skip to content

Commit afd9926

Browse files
authored
Merge pull request #140 from microsoft/users/badrishc/make-serializer-public
Make serializer public
2 parents 8ce7f29 + 2024f4d commit afd9926

17 files changed

Lines changed: 60 additions & 37 deletions

Sources/Core/Microsoft.StreamProcessing/Egress/Binary/BinaryEgress.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ public static void ToBinaryStream<TKey, TPayload>(this IStreamable<TKey, TPayloa
2121
{
2222
if (writePropertiesToStream)
2323
{
24-
var propSer = StreamableSerializer.Create<SerializedProperties>();
24+
var propSer = StreamSerializer.Create<SerializedProperties>();
2525
propSer.Serialize(binaryStream, SerializedProperties.FromStreamProperties(input.Properties));
2626
}
2727
input.ToStreamMessageObservable()
2828
.Subscribe(new BinaryStreamObserver<TKey, TPayload>(input.Properties, binaryStream));
2929
}
3030

3131
/// <summary>
32-
/// Serialize streamable into a binary file
32+
/// Serialize streamble into a binary file
3333
/// </summary>
3434
/// <typeparam name="TKey"></typeparam>
3535
/// <typeparam name="TPayload"></typeparam>
@@ -57,15 +57,15 @@ public static void RegisterBinaryOutput<TKey, TPayload>(this QueryContainer cont
5757
{
5858
if (writePropertiesToStream)
5959
{
60-
var propSer = StreamableSerializer.Create<SerializedProperties>();
60+
var propSer = StreamSerializer.Create<SerializedProperties>();
6161
propSer.Serialize(binaryStream, SerializedProperties.FromStreamProperties(input.Properties));
6262
}
6363
container.RegisterOutputAsStreamMessages(input, identifier)
6464
.Subscribe(new BinaryStreamObserver<TKey, TPayload>(input.Properties, binaryStream));
6565
}
6666

6767
/// <summary>
68-
/// Serialize streamable into a binary file
68+
/// Serialize streamble into a binary file
6969
/// </summary>
7070
/// <typeparam name="TKey"></typeparam>
7171
/// <typeparam name="TPayload"></typeparam>

Sources/Core/Microsoft.StreamProcessing/Egress/Binary/BinaryEgress.tt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ namespace Microsoft.StreamProcessing
3535
{
3636
if (writePropertiesToStream)
3737
{
38-
var propSer = StreamableSerializer.Create<SerializedProperties>();
38+
var propSer = StreamSerializer.Create<SerializedProperties>();
3939
propSer.Serialize(binaryStream, SerializedProperties.FromStreamProperties(input.Properties));
4040
}
4141
<# if (hasContainer) { #>

Sources/Core/Microsoft.StreamProcessing/Egress/Binary/BinaryStreamObserver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ internal sealed class BinaryStreamObserver<TKey, TPayload> : IObserver<StreamMes
1515

1616
public BinaryStreamObserver(StreamProperties<TKey, TPayload> streamProperties, Stream stream)
1717
{
18-
this.serializer = StreamableSerializer.Create<QueuedMessage<StreamMessage<TKey, TPayload>>>(
18+
this.serializer = StreamSerializer.Create<QueuedMessage<StreamMessage<TKey, TPayload>>>(
1919
new SerializerSettings() { KnownTypes = StreamMessageManager.GeneratedTypes() });
2020
this.stream = stream;
2121
}

Sources/Core/Microsoft.StreamProcessing/Ingress/Binary/BinaryIngressReader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ private void Ingress(IStreamObserver<TKey, TPayload> observer)
6161

6262
try
6363
{
64-
var serializer = StreamableSerializer.Create<QueuedMessage<StreamMessage<TKey, TPayload>>>(
64+
var serializer = StreamSerializer.Create<QueuedMessage<StreamMessage<TKey, TPayload>>>(
6565
new SerializerSettings() { KnownTypes = StreamMessageManager.GeneratedTypes() });
6666
while (true)
6767
{

Sources/Core/Microsoft.StreamProcessing/Ingress/Binary/BinaryIngressStreamable.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public BinaryIngressStreamable(Stream binaryStream, int numMessages, IIngressSch
2424
{
2525
if (readPropertiesFromStream)
2626
{
27-
var propSer = StreamableSerializer.Create<SerializedProperties>();
27+
var propSer = StreamSerializer.Create<SerializedProperties>();
2828
var props = propSer.Deserialize(binaryStream);
2929
this.properties = props.ToStreamProperties<TKey, TPayload>();
3030
}

Sources/Core/Microsoft.StreamProcessing/Ingress/Binary/BinaryIngressStreamablePassive.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ public BinaryIngressStreamablePassive(Stream binaryStream, StreamProperties<TKey
2323
{
2424
if (readPropertiesFromStream)
2525
{
26-
var propSer = StreamableSerializer.Create<SerializedProperties>();
26+
var propSer = StreamSerializer.Create<SerializedProperties>();
2727
var props = propSer.Deserialize(binaryStream);
2828
this.properties = props.ToStreamProperties<TKey, TPayload>();
2929
}
3030

3131
this.stream = binaryStream;
32-
this.serializer = StreamableSerializer.Create<QueuedMessage<StreamMessage<TKey, TPayload>>>(new SerializerSettings());
32+
this.serializer = StreamSerializer.Create<QueuedMessage<StreamMessage<TKey, TPayload>>>(new SerializerSettings());
3333
this.container = container;
3434
this.IngressSiteIdentifier = identifier ?? Guid.NewGuid().ToString();
3535
container?.RegisterIngressSite(identifier);

Sources/Core/Microsoft.StreamProcessing/QueryContainer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ internal bool TryGetFastDictionary3Type(Tuple<string, Type, Type> key, out Type
101101
internal object GetOrCreateSerializer(Type type)
102102
{
103103
if (this.serializers.TryGetValue(type, out object serializer)) return serializer;
104-
var serializerStatic = typeof(StreamableSerializer);
104+
var serializerStatic = typeof(StreamSerializer);
105105
var method = serializerStatic.GetTypeInfo().GetMethod("Create", new Type[] { typeof(SerializerSettings) }).MakeGenericMethod(type);
106106
var settings = new SerializerSettings()
107107
{

Sources/Core/Microsoft.StreamProcessing/Serializer/SerializerSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace Microsoft.StreamProcessing.Serializer
1111
/// <summary>
1212
/// Specifies serializer settings.
1313
/// </summary>
14-
internal sealed class SerializerSettings : IEquatable<SerializerSettings>
14+
public sealed class SerializerSettings : IEquatable<SerializerSettings>
1515
{
1616
/// <summary>
1717
/// Initializes a new instance of the <see cref="SerializerSettings" /> class.

Sources/Core/Microsoft.StreamProcessing/Serializer/StateSerializer.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99

1010
namespace Microsoft.StreamProcessing.Serializer
1111
{
12-
internal sealed class StateSerializer<T>
12+
/// <summary>
13+
/// State serializer
14+
/// </summary>
15+
/// <typeparam name="T">Serialization object type</typeparam>
16+
public sealed class StateSerializer<T>
1317
{
1418
private readonly ObjectSerializerBase schema;
1519
private readonly Lazy<Action<BinaryEncoder, T>> serialize;
@@ -22,8 +26,18 @@ internal StateSerializer(ObjectSerializerBase schema)
2226
this.deserialize = new Lazy<Func<BinaryDecoder, T>>(GenerateDeserializer);
2327
}
2428

29+
/// <summary>
30+
/// Serialize object to stream
31+
/// </summary>
32+
/// <param name="stream">Stream to serialize to</param>
33+
/// <param name="obj">Object to serialize</param>
2534
public void Serialize(Stream stream, T obj) => this.serialize.Value(new BinaryEncoder(stream), obj);
2635

36+
/// <summary>
37+
/// Deserialize object from stream
38+
/// </summary>
39+
/// <param name="stream">Stream to deserialize from</param>
40+
/// <returns>Deserialized object</returns>
2741
public T Deserialize(Stream stream) => this.deserialize.Value(new BinaryDecoder(stream));
2842

2943
private Action<BinaryEncoder, T> GenerateSerializer()

Sources/Core/Microsoft.StreamProcessing/Serializer/StreamableSerializer.cs renamed to Sources/Core/Microsoft.StreamProcessing/Serializer/StreamSerializer.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,19 @@
88

99
namespace Microsoft.StreamProcessing.Serializer
1010
{
11-
internal static class StreamableSerializer
11+
/// <summary>
12+
/// Serializer to read/write objects from/to streams
13+
/// </summary>
14+
public static class StreamSerializer
1215
{
1316
private static readonly Dictionary<Tuple<Type, SerializerSettings>, object> TypedSerializers
1417
= new Dictionary<Tuple<Type, SerializerSettings>, object>();
1518

19+
/// <summary>
20+
/// Create instance of serializer for given object type
21+
/// </summary>
22+
/// <typeparam name="T">Type of object</typeparam>
23+
/// <returns>StateSerializer</returns>
1624
public static StateSerializer<T> Create<T>() => Create<T>(new SerializerSettings());
1725

1826
/// <summary>

0 commit comments

Comments
 (0)