Created To/From CERAS functions

This commit is contained in:
erri120 2019-10-26 21:45:37 +02:00
parent 63574f9934
commit 56daeb069a
No known key found for this signature in database
GPG Key ID: A8C0A18D8D4D3135

View File

@ -10,6 +10,7 @@ using System.Security.Cryptography;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Ceras;
using ICSharpCode.SharpZipLib.BZip2; using ICSharpCode.SharpZipLib.BZip2;
using IniParser; using IniParser;
using Newtonsoft.Json; using Newtonsoft.Json;
@ -192,13 +193,21 @@ namespace Wabbajack.Common
return new DynamicIniData(new FileIniDataParser().ReadData(new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(file))))); return new DynamicIniData(new FileIniDataParser().ReadData(new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(file)))));
} }
public static void ToCERAS<T>(this T obj, string filename)
{
var ceras = new CerasSerializer();
byte[] buffer = null;
ceras.Serialize(obj, ref buffer);
File.WriteAllBytes(filename, buffer);
}
public static void ToJSON<T>(this T obj, string filename) public static void ToJSON<T>(this T obj, string filename)
{ {
File.WriteAllText(filename, File.WriteAllText(filename,
JsonConvert.SerializeObject(obj, Formatting.Indented, JsonConvert.SerializeObject(obj, Formatting.Indented,
new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.Auto})); new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.Auto}));
} }
/*
public static void ToBSON<T>(this T obj, string filename) public static void ToBSON<T>(this T obj, string filename)
{ {
using (var fo = File.OpenWrite(filename)) using (var fo = File.OpenWrite(filename))
@ -209,7 +218,7 @@ namespace Wabbajack.Common
{TypeNameHandling = TypeNameHandling.Auto}); {TypeNameHandling = TypeNameHandling.Auto});
serializer.Serialize(br, obj); serializer.Serialize(br, obj);
} }
} }*/
public static ulong ToMilliseconds(this DateTime date) public static ulong ToMilliseconds(this DateTime date)
{ {
@ -221,13 +230,13 @@ namespace Wabbajack.Common
return JsonConvert.SerializeObject(obj, Formatting.Indented, return JsonConvert.SerializeObject(obj, Formatting.Indented,
new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.All}); new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.All});
} }
public static T FromJSON<T>(this string filename) public static T FromJSON<T>(this string filename)
{ {
return JsonConvert.DeserializeObject<T>(File.ReadAllText(filename), return JsonConvert.DeserializeObject<T>(File.ReadAllText(filename),
new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.Auto}); new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.Auto});
} }
/*
public static T FromBSON<T>(this string filename, bool root_is_array = false) public static T FromBSON<T>(this string filename, bool root_is_array = false)
{ {
using (var fo = File.OpenRead(filename)) using (var fo = File.OpenRead(filename))
@ -237,7 +246,7 @@ namespace Wabbajack.Common
{TypeNameHandling = TypeNameHandling.Auto}); {TypeNameHandling = TypeNameHandling.Auto});
return serializer.Deserialize<T>(br); return serializer.Deserialize<T>(br);
} }
} }*/
public static T FromJSONString<T>(this string data) public static T FromJSONString<T>(this string data)
{ {
@ -252,6 +261,13 @@ namespace Wabbajack.Common
new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }); new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto });
} }
public static T FromCERAS<T>(this Stream data)
{
var ceras = new CerasSerializer();
byte[] bytes = data.ReadAll();
return ceras.Deserialize<T>(bytes);
}
public static bool FileExists(this string filename) public static bool FileExists(this string filename)
{ {
return File.Exists(filename); return File.Exists(filename);