aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common/Serialization/DynamicProtobufSerializer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Common/Serialization/DynamicProtobufSerializer.cs')
-rw-r--r--MediaBrowser.Common/Serialization/DynamicProtobufSerializer.cs157
1 files changed, 0 insertions, 157 deletions
diff --git a/MediaBrowser.Common/Serialization/DynamicProtobufSerializer.cs b/MediaBrowser.Common/Serialization/DynamicProtobufSerializer.cs
deleted file mode 100644
index 359cf9da0..000000000
--- a/MediaBrowser.Common/Serialization/DynamicProtobufSerializer.cs
+++ /dev/null
@@ -1,157 +0,0 @@
-using ProtoBuf;
-using ProtoBuf.Meta;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-
-namespace MediaBrowser.Common.Serialization
-{
- /// <summary>
- /// Creates a compiled protobuf serializer based on a set of assemblies
- /// </summary>
- public class DynamicProtobufSerializer
- {
- /// <summary>
- /// Gets or sets the type model.
- /// </summary>
- /// <value>The type model.</value>
- public TypeModel TypeModel { get; set; }
-
- /// <summary>
- /// Serializes to stream.
- /// </summary>
- /// <param name="obj">The obj.</param>
- /// <param name="stream">The stream.</param>
- /// <exception cref="System.ArgumentNullException">obj</exception>
- public void SerializeToStream(object obj, Stream stream)
- {
- if (obj == null)
- {
- throw new ArgumentNullException("obj");
- }
- if (stream == null)
- {
- throw new ArgumentNullException("stream");
- }
-
- TypeModel.Serialize(stream, obj);
- }
-
- /// <summary>
- /// Deserializes from stream.
- /// </summary>
- /// <param name="stream">The stream.</param>
- /// <param name="type">The type.</param>
- /// <returns>System.Object.</returns>
- /// <exception cref="System.ArgumentNullException">stream</exception>
- public object DeserializeFromStream(Stream stream, Type type)
- {
- if (stream == null)
- {
- throw new ArgumentNullException("stream");
- }
-
- return TypeModel.Deserialize(stream, null, type);
- }
-
- /// <summary>
- /// Deserializes from stream.
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="stream">The stream.</param>
- /// <returns>``0.</returns>
- public T DeserializeFromStream<T>(Stream stream)
- where T : class
- {
- return DeserializeFromStream(stream, typeof(T)) as T;
- }
-
- /// <summary>
- /// Serializes to file.
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="obj">The obj.</param>
- /// <param name="file">The file.</param>
- /// <exception cref="System.ArgumentNullException">file</exception>
- public void SerializeToFile<T>(T obj, string file)
- {
- if (string.IsNullOrEmpty(file))
- {
- throw new ArgumentNullException("file");
- }
-
- using (Stream stream = File.Open(file, FileMode.Create))
- {
- SerializeToStream(obj, stream);
- }
- }
-
- /// <summary>
- /// Deserializes from file.
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="file">The file.</param>
- /// <returns>``0.</returns>
- /// <exception cref="System.ArgumentNullException">file</exception>
- public T DeserializeFromFile<T>(string file)
- where T : class
- {
- if (string.IsNullOrEmpty(file))
- {
- throw new ArgumentNullException("file");
- }
-
- using (Stream stream = File.OpenRead(file))
- {
- return DeserializeFromStream<T>(stream);
- }
- }
-
- /// <summary>
- /// Serializes to bytes.
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="obj">The obj.</param>
- /// <returns>System.Byte[][].</returns>
- /// <exception cref="System.ArgumentNullException">obj</exception>
- public byte[] SerializeToBytes<T>(T obj)
- where T : class
- {
- if (obj == null)
- {
- throw new ArgumentNullException("obj");
- }
-
- using (var stream = new MemoryStream())
- {
- SerializeToStream(obj, stream);
- return stream.ToArray();
- }
- }
-
- /// <summary>
- /// Creates the specified assemblies.
- /// </summary>
- /// <returns>DynamicProtobufSerializer.</returns>
- /// <exception cref="System.ArgumentNullException">assemblies</exception>
- public static DynamicProtobufSerializer Create(IEnumerable<Type> types)
- {
- if (types == null)
- {
- throw new ArgumentNullException("types");
- }
-
- var model = TypeModel.Create();
- var attributeType = typeof(ProtoContractAttribute);
-
- // Find all ProtoContracts in the current assembly
- foreach (var type in types.Where(t => Attribute.IsDefined(t, attributeType)))
- {
- model.Add(type, true);
- }
-
- return new DynamicProtobufSerializer { TypeModel = model.Compile() };
- }
- }
-}