initial commit

This commit is contained in:
i2p
2026-08-27 10:56:38 -06:00
commit 2e2fbbdb3c
4538 changed files with 820183 additions and 0 deletions
@@ -0,0 +1,85 @@
using System;
using System.Runtime.Serialization;
namespace ProtoBuf;
public sealed class SerializationContext
{
private bool frozen;
private object context;
private static readonly SerializationContext @default;
private StreamingContextStates state = StreamingContextStates.Persistence;
public object Context
{
get
{
return context;
}
set
{
if (context != value)
{
ThrowIfFrozen();
context = value;
}
}
}
internal static SerializationContext Default => @default;
public StreamingContextStates State
{
get
{
return state;
}
set
{
if (state != value)
{
ThrowIfFrozen();
state = value;
}
}
}
internal void Freeze()
{
frozen = true;
}
private void ThrowIfFrozen()
{
if (frozen)
{
throw new InvalidOperationException("The serialization-context cannot be changed once it is in use");
}
}
static SerializationContext()
{
@default = new SerializationContext();
@default.Freeze();
}
public static implicit operator StreamingContext(SerializationContext ctx)
{
if (ctx == null)
{
return new StreamingContext(StreamingContextStates.Persistence);
}
return new StreamingContext(ctx.state, ctx.context);
}
public static implicit operator SerializationContext(StreamingContext ctx)
{
SerializationContext serializationContext = new SerializationContext();
serializationContext.Context = ctx.Context;
serializationContext.State = ctx.State;
return serializationContext;
}
}