aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Video/FileMapAccess.cs
blob: 2a5f23bc8ef9679dc7d38fb29ddd3e9a15f2c679 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tango.Video.DirectShow
{
    internal enum FileMapAccess : uint
    {
        Write = 0x00000002,
        Read = 0x00000004,
        AllAccess = 0x000f001f,
        Copy = 0x00000001,
        Execute = 0x00000020
    }
}
>; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Tango.Serialization { /// <summary> /// Represents a data serializer for serializing data using the light weight textual Json format. /// </summary> public class JsonDataSerializer : IDataSerializer { /// <summary> /// Serialize object to a file. /// </summary> /// <typeparam name="T">Type of specified object.</typeparam> /// <param name="obj">The specified object.</param> /// <param name="filePath">The full path to the file to write.</param> public void SerializeToFile<T>(T obj, string filePath) { using (FileStream fs = new FileStream(filePath, FileMode.Create)) { SerializeToStream<T>(obj, fs); } } /// <summary> /// Deserialize object from a file. /// </summary> /// <typeparam name="T">Type of object to deserialize.</typeparam> /// <param name="filePath">The full path of the data file.</param> /// <returns>The resulting object.</returns> public T DeserializeFromFile<T>(string filePath) { using (FileStream fs = new FileStream(filePath, FileMode.Open)) { return DeserializeFromStream<T>(fs); } } /// <summary> /// Serialize object to stream. /// </summary> /// <typeparam name="T">Type of specified object.</typeparam> /// <param name="obj">The specified object.</param> /// <param name="st">The stream to write.</param> public void SerializeToStream<T>(T obj, Stream st) { JsonSerializer serializer = new JsonSerializer(); using (StreamWriter streamReader = new StreamWriter(st)) { serializer.Serialize(streamReader, obj); } } /// <summary> /// Deserialize object from stream. /// </summary> /// <typeparam name="T">Type of object to deserialize.</typeparam> /// <param name="st">Stream to read from.</param> /// <returns>The resulting object.</returns> public T DeserializeFromStream<T>(Stream st) { JsonSerializer serializer = new JsonSerializer(); T data; using (StreamReader streamReader = new StreamReader(st)) { data = (T)serializer.Deserialize(streamReader, typeof(T)); } return data; } /// <summary> /// Returns the serializer full name. /// </summary> /// <returns></returns> public override string ToString() { return SerializationHelper.GetSerializerName(this); } } }