Browse Source

Documented new things

pull/46/head
Anairkoen Schno 4 years ago
parent
commit
fefd489dcc
2 changed files with 46 additions and 4 deletions
  1. +42
    -4
      IPA.Loader/Config/Stores/CustomObjectConverter.cs
  2. +4
    -0
      IPA.Loader/Logging/StandardLogger.cs

+ 42
- 4
IPA.Loader/Config/Stores/CustomObjectConverter.cs View File

@ -72,7 +72,7 @@ namespace IPA.Config.Stores.Converters
/// <returns>the deserialized value</returns> /// <returns>the deserialized value</returns>
/// <seealso cref="ValueConverter{T}.FromValue(Value, object)"/> /// <seealso cref="ValueConverter{T}.FromValue(Value, object)"/>
public override T FromValue(Value value, object parent) public override T FromValue(Value value, object parent)
=> impl.FromValue(value, parent);
=> Deserialize(value, parent);
/// <summary> /// <summary>
/// Serializes <paramref name="obj"/> into a <see cref="Value"/> structure, given <paramref name="parent"/>. /// Serializes <paramref name="obj"/> into a <see cref="Value"/> structure, given <paramref name="parent"/>.
@ -82,9 +82,14 @@ namespace IPA.Config.Stores.Converters
/// <returns>the <see cref="Value"/> tree that represents <paramref name="obj"/></returns> /// <returns>the <see cref="Value"/> tree that represents <paramref name="obj"/></returns>
/// <seealso cref="ValueConverter{T}.ToValue(T, object)"/> /// <seealso cref="ValueConverter{T}.ToValue(T, object)"/>
public override Value ToValue(T obj, object parent) public override Value ToValue(T obj, object parent)
=> impl.ToValue(obj, parent);
=> Serialize(obj, parent);
} }
/// <summary>
/// A <see cref="ValueConverter{T}"/> for custom value types, serialized identically to the reference types serialized with
/// <see cref="GeneratedStore.Generated{T}(Config, bool)"/>.
/// </summary>
/// <typeparam name="T">the type of the value to convert</typeparam>
public class CustomValueTypeConverter<T> : ValueConverter<T> where T : struct public class CustomValueTypeConverter<T> : ValueConverter<T> where T : struct
{ {
private static readonly GeneratedStoreImpl.SerializeObject<T> serialize private static readonly GeneratedStoreImpl.SerializeObject<T> serialize
@ -92,11 +97,44 @@ namespace IPA.Config.Stores.Converters
private static readonly GeneratedStoreImpl.DeserializeObject<T> deserialize private static readonly GeneratedStoreImpl.DeserializeObject<T> deserialize
= GeneratedStoreImpl.GetDeserializerDelegate<T>(); = GeneratedStoreImpl.GetDeserializerDelegate<T>();
public override T FromValue(Value value, object parent)
/// <summary>
/// Deserializes <paramref name="value"/> into a <typeparamref name="T"/> with the given <paramref name="parent"/>.
/// </summary>
/// <param name="value">the <see cref="Value"/> to deserialize</param>
/// <param name="parent">the parent object that will own the deserialized value</param>
/// <returns>the deserialized value</returns>
/// <seealso cref="ValueConverter{T}.FromValue(Value, object)"/>
public static T Deserialize(Value value, object parent)
=> deserialize(value, parent); => deserialize(value, parent);
public override Value ToValue(T obj, object parent)
/// <summary>
/// Serializes <paramref name="obj"/> into a corresponding <see cref="Value"/> structure.
/// </summary>
/// <param name="obj">the object to serialize</param>
/// <returns>the <see cref="Value"/> tree that represents <paramref name="obj"/></returns>
/// <seealso cref="ValueConverter{T}.ToValue(T, object)"/>
public static Value Serialize(T obj)
=> serialize(obj); => serialize(obj);
/// <summary>
/// Deserializes <paramref name="value"/> into a <typeparamref name="T"/> with the given <paramref name="parent"/>.
/// </summary>
/// <param name="value">the <see cref="Value"/> to deserialize</param>
/// <param name="parent">the parent object that will own the deserialized value</param>
/// <returns>the deserialized value</returns>
/// <seealso cref="ValueConverter{T}.FromValue(Value, object)"/>
public override T FromValue(Value value, object parent)
=> Deserialize(value, parent);
/// <summary>
/// Serializes <paramref name="obj"/> into a <see cref="Value"/> structure, given <paramref name="parent"/>.
/// </summary>
/// <param name="obj">the object to serialize</param>
/// <param name="parent">the parent object that owns <paramref name="obj"/></param>
/// <returns>the <see cref="Value"/> tree that represents <paramref name="obj"/></returns>
/// <seealso cref="ValueConverter{T}.ToValue(T, object)"/>
public override Value ToValue(T obj, object parent)
=> Serialize(obj);
} }
} }

+ 4
- 0
IPA.Loader/Logging/StandardLogger.cs View File

@ -268,6 +268,10 @@ namespace IPA.Logging
[ThreadStatic] [ThreadStatic]
private static bool? isOnLoggerThread = null; private static bool? isOnLoggerThread = null;
/// <summary>
/// Whether or not the calling thread is the logger thread.
/// </summary>
/// <value><see langword="true"/> if the current thread is the logger thread, <see langword="false"/> otherwise</value>
public static bool IsOnLoggerThread => isOnLoggerThread ??= Thread.CurrentThread.ManagedThreadId == logThread.ManagedThreadId; public static bool IsOnLoggerThread => isOnLoggerThread ??= Thread.CurrentThread.ManagedThreadId == logThread.ManagedThreadId;
private static readonly ManualResetEventSlim logWaitEvent = new ManualResetEventSlim(true); private static readonly ManualResetEventSlim logWaitEvent = new ManualResetEventSlim(true);


Loading…
Cancel
Save