aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Serialization/IJsonSerializer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model/Serialization/IJsonSerializer.cs')
-rw-r--r--MediaBrowser.Model/Serialization/IJsonSerializer.cs91
1 files changed, 91 insertions, 0 deletions
diff --git a/MediaBrowser.Model/Serialization/IJsonSerializer.cs b/MediaBrowser.Model/Serialization/IJsonSerializer.cs
new file mode 100644
index 000000000..a582beb7f
--- /dev/null
+++ b/MediaBrowser.Model/Serialization/IJsonSerializer.cs
@@ -0,0 +1,91 @@
+using System;
+using System.IO;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Model.Serialization
+{
+ public interface IJsonSerializer
+ {
+ /// <summary>
+ /// Serializes to stream.
+ /// </summary>
+ /// <param name="obj">The obj.</param>
+ /// <param name="stream">The stream.</param>
+ /// <exception cref="System.ArgumentNullException">obj</exception>
+ void SerializeToStream(object obj, Stream stream);
+
+ /// <summary>
+ /// Serializes to file.
+ /// </summary>
+ /// <param name="obj">The obj.</param>
+ /// <param name="file">The file.</param>
+ /// <exception cref="System.ArgumentNullException">obj</exception>
+ void SerializeToFile(object obj, string file);
+
+ /// <summary>
+ /// Deserializes from file.
+ /// </summary>
+ /// <param name="type">The type.</param>
+ /// <param name="file">The file.</param>
+ /// <returns>System.Object.</returns>
+ /// <exception cref="System.ArgumentNullException">type</exception>
+ object DeserializeFromFile(Type type, string file);
+
+ /// <summary>
+ /// Deserializes from file.
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="file">The file.</param>
+ /// <returns>``0.</returns>
+ /// <exception cref="System.ArgumentNullException">file</exception>
+ T DeserializeFromFile<T>(string file)
+ where T : class;
+
+ /// <summary>
+ /// Deserializes from stream.
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="stream">The stream.</param>
+ /// <returns>``0.</returns>
+ /// <exception cref="System.ArgumentNullException">stream</exception>
+ T DeserializeFromStream<T>(Stream stream);
+
+ /// <summary>
+ /// Deserializes from string.
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="text">The text.</param>
+ /// <returns>``0.</returns>
+ /// <exception cref="System.ArgumentNullException">text</exception>
+ T DeserializeFromString<T>(string text);
+
+ /// <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>
+ object DeserializeFromStream(Stream stream, Type type);
+
+ /// <summary>
+ /// Deserializes from string.
+ /// </summary>
+ /// <param name="json">The json.</param>
+ /// <param name="type">The type.</param>
+ /// <returns>System.Object.</returns>
+ /// <exception cref="System.ArgumentNullException">json</exception>
+ object DeserializeFromString(string json, Type type);
+
+ /// <summary>
+ /// Serializes to string.
+ /// </summary>
+ /// <param name="obj">The obj.</param>
+ /// <returns>System.String.</returns>
+ /// <exception cref="System.ArgumentNullException">obj</exception>
+ string SerializeToString(object obj);
+
+ Task<object> DeserializeFromStreamAsync(Stream stream, Type type);
+ Task<T> DeserializeFromStreamAsync<T>(Stream stream);
+ }
+}