/// <summary> /// Creates a deserializer. /// </summary> /// <param name="registryClient"> /// The client to use for Schema Registry operations. (The client will not be disposed.) /// </param> /// <param name="deserializerBuilder"> /// The deserializer builder used to generate deserialization functions for C# types. If /// none is provided, the default deserializer builder will be used. /// </param> /// <param name="schemaReader"> /// The JSON schema reader used to convert schemas received from the registry into abstract /// representations. If none is provided, the default schema reader will be used. /// </param> /// <param name="tombstoneBehavior"> /// The behavior of the deserializer on tombstone records. /// </param> /// <exception cref="ArgumentNullException"> /// Thrown when the registry client is null. /// </exception> public AsyncSchemaRegistryDeserializer( ISchemaRegistryClient registryClient, IBinaryDeserializerBuilder deserializerBuilder = null, IJsonSchemaReader schemaReader = null, TombstoneBehavior tombstoneBehavior = TombstoneBehavior.None ) { if (registryClient == null) { throw new ArgumentNullException(nameof(registryClient)); } if (tombstoneBehavior != TombstoneBehavior.None && default(T) != null) { throw new UnsupportedTypeException(typeof(T), $"{typeof(T)} cannot represent tombstone values."); } DeserializerBuilder = deserializerBuilder ?? new BinaryDeserializerBuilder(); RegistryClient = registryClient; SchemaReader = schemaReader ?? new JsonSchemaReader(); TombstoneBehavior = tombstoneBehavior; _cache = new Dictionary <int, Task <Func <Stream, T> > >(); _disposeRegistryClient = false; }
/// <summary> /// Creates a deserializer. /// </summary> /// <param name="registryConfiguration"> /// Schema Registry configuration. Using the <see cref="SchemaRegistryConfig" /> class is /// highly recommended. /// </param> /// <param name="deserializerBuilder"> /// The deserializer builder to use to to generate deserialization functions for C# types. /// If none is provided, the default deserializer builder will be used. /// </param> /// <param name="schemaReader"> /// The JSON schema reader to use to convert schemas received from the registry into abstract /// representations. If none is provided, the default schema reader will be used. /// </param> /// <param name="tombstoneBehavior"> /// The behavior of the deserializer on tombstone records. /// </param> /// <exception cref="ArgumentNullException"> /// Thrown when the registry configuration is null. /// </exception> public AsyncSchemaRegistryDeserializer( IEnumerable <KeyValuePair <string, string> > registryConfiguration, IBinaryDeserializerBuilder deserializerBuilder = null, IJsonSchemaReader schemaReader = null, TombstoneBehavior tombstoneBehavior = TombstoneBehavior.None ) { if (registryConfiguration == null) { throw new ArgumentNullException(nameof(registryConfiguration)); } if (tombstoneBehavior != TombstoneBehavior.None && default(T) != null) { throw new UnsupportedTypeException(typeof(T), $"{typeof(T)} cannot represent tombstone values."); } DeserializerBuilder = deserializerBuilder ?? new BinaryDeserializerBuilder(); RegistryClient = new CachedSchemaRegistryClient(registryConfiguration); SchemaReader = schemaReader ?? new JsonSchemaReader(); TombstoneBehavior = tombstoneBehavior; _cache = new Dictionary <int, Task <Func <Stream, T> > >(); _disposeRegistryClient = true; }
/// <summary> /// Initializes a new instance of the <see cref="BinaryRecordDeserializerBuilderCase" /> class. /// </summary> /// <param name="deserializerBuilder"> /// A deserializer builder instance that will be used to build field deserializers. /// </param> /// <param name="memberVisibility"> /// The binding flags to use to select fields and properties. /// </param> public BinaryRecordDeserializerBuilderCase( IBinaryDeserializerBuilder deserializerBuilder, BindingFlags memberVisibility) { DeserializerBuilder = deserializerBuilder ?? throw new ArgumentNullException(nameof(deserializerBuilder), "Binary deserializer builder cannot be null."); MemberVisibility = memberVisibility; }
private AsyncSchemaRegistryDeserializer( IBinaryDeserializerBuilder deserializerBuilder = null, IJsonSchemaReader schemaReader = null ) { _cache = new ConcurrentDictionary <int, Task <Func <Stream, T> > >(); _deserializerBuilder = deserializerBuilder ?? new BinaryDeserializerBuilder(); _schemaReader = schemaReader ?? new JsonSchemaReader(); }
/// <summary> /// Initializes a new instance of the <see cref="SchemaRegistryDeserializerBuilder" /> /// class with a Schema Registry instance. /// </summary> /// <param name="registryClient"> /// A Schema Registry client to use for Registry operations. (The client will not be /// disposed.) /// </param> /// <param name="deserializerBuilder"> /// A deserializer builder instance that should be used to generate deserialization /// functions for .NET <see cref="Type" />s. If none is provided, the default /// <see cref="BinaryDeserializerBuilder" /> will be used. /// </param> /// <param name="schemaReader"> /// A schema reader instance that should be used to convert schemas received from the /// Registry into abstract representations. If none is provided, the default /// <see cref="JsonSchemaReader" /> will be used. /// </param> /// <exception cref="ArgumentNullException"> /// Thrown when <paramref name="registryClient" /> is <c>null</c>. /// </exception> public SchemaRegistryDeserializerBuilder( ISchemaRegistryClient registryClient, IBinaryDeserializerBuilder deserializerBuilder = null, IJsonSchemaReader schemaReader = null) { disposeRegistryClient = false; DeserializerBuilder = deserializerBuilder ?? new BinaryDeserializerBuilder(); RegistryClient = registryClient ?? throw new ArgumentNullException(nameof(registryClient)); SchemaReader = schemaReader ?? new JsonSchemaReader(); }
/// <summary> /// Initializes a new instance of the <see cref="SchemaRegistryDeserializerBuilder" /> /// class with a Schema Registry configuration. /// </summary> /// <param name="registryConfiguration"> /// A Schema Registry configuration. Using the <see cref="SchemaRegistryConfig" /> class is /// highly recommended. /// </param> /// <param name="deserializerBuilder"> /// A deserializer builder instance that should be used to generate deserialization /// functions for .NET <see cref="Type" />s. If none is provided, the default /// <see cref="BinaryDeserializerBuilder" /> will be used. /// </param> /// <param name="schemaReader"> /// A schema reader instance that should be used to convert schemas received from the /// Registry into abstract representations. If none is provided, the default /// <see cref="JsonSchemaReader" /> will be used. /// </param> public SchemaRegistryDeserializerBuilder( IEnumerable <KeyValuePair <string, string> > registryConfiguration, IBinaryDeserializerBuilder deserializerBuilder = null, IJsonSchemaReader schemaReader = null) : this( new CachedSchemaRegistryClient(registryConfiguration), deserializerBuilder, schemaReader) { disposeRegistryClient = true; }
/// <summary> /// Creates a deserializer. /// </summary> /// <param name="registryClient"> /// A client to use for Schema Registry operations. (The client will not be disposed.) /// </param> /// <param name="deserializerBuilder"> /// A deserializer builder (used to build deserialization functions for C# types). If none /// is provided, the default deserializer builder will be used. /// </param> /// <param name="schemaReader"> /// A JSON schema reader (used to convert schemas received from the registry into abstract /// representations). If none is provided, the default schema reader will be used. /// </param> /// <exception cref="ArgumentNullException"> /// Thrown when the registry client is null. /// </exception> public AsyncSchemaRegistryDeserializer( ISchemaRegistryClient registryClient, IBinaryDeserializerBuilder deserializerBuilder = null, IJsonSchemaReader schemaReader = null ) : this( deserializerBuilder, schemaReader ) { if (registryClient == null) { throw new ArgumentNullException(nameof(registryClient)); } _resolve = id => registryClient.GetSchemaAsync(id); }
/// <summary> /// Creates a deserializer. /// </summary> /// <param name="registryConfiguration"> /// Schema Registry configuration. Using the <see cref="SchemaRegistryConfig" /> class is /// highly recommended. /// </param> /// <param name="deserializerBuilder"> /// The deserializer builder to use to to generate deserialization functions for C# types. /// If none is provided, the default deserializer builder will be used. /// </param> /// <param name="schemaReader"> /// The JSON schema reader to use to convert schemas received from the registry into abstract /// representations. If none is provided, the default schema reader will be used. /// </param> /// <exception cref="ArgumentNullException"> /// Thrown when the registry configuration is null. /// </exception> public AsyncSchemaRegistryDeserializer( IEnumerable <KeyValuePair <string, string> > registryConfiguration, IBinaryDeserializerBuilder deserializerBuilder = null, IJsonSchemaReader schemaReader = null ) : this( deserializerBuilder, schemaReader ) { if (registryConfiguration == null) { throw new ArgumentNullException(nameof(registryConfiguration)); } RegistryClient = new CachedSchemaRegistryClient(registryConfiguration); _disposeRegistryClient = true; }
/// <summary> /// Creates a deserializer. /// </summary> /// <param name="registryClient"> /// The client to use for Schema Registry operations. (The client will not be disposed.) /// </param> /// <param name="deserializerBuilder"> /// The deserializer builder used to generate deserialization functions for C# types. If /// none is provided, the default deserializer builder will be used. /// </param> /// <param name="schemaReader"> /// The JSON schema reader used to convert schemas received from the registry into abstract /// representations. If none is provided, the default schema reader will be used. /// </param> /// <exception cref="ArgumentNullException"> /// Thrown when the registry client is null. /// </exception> public AsyncSchemaRegistryDeserializer( ISchemaRegistryClient registryClient, IBinaryDeserializerBuilder deserializerBuilder = null, IJsonSchemaReader schemaReader = null ) : this( deserializerBuilder, schemaReader ) { if (registryClient == null) { throw new ArgumentNullException(nameof(registryClient)); } RegistryClient = registryClient; _disposeRegistryClient = false; }
/// <summary> /// Creates a deserializer. /// </summary> /// <param name="registryConfiguration"> /// Schema Registry configuration. Using the <see cref="SchemaRegistryConfig" /> class is /// highly recommended. /// </param> /// <param name="deserializerBuilder"> /// A deserializer builder (used to build deserialization functions for C# types). If none /// is provided, the default deserializer builder will be used. /// </param> /// <param name="schemaReader"> /// A JSON schema reader (used to convert schemas received from the registry into abstract /// representations). If none is provided, the default schema reader will be used. /// </param> /// <exception cref="ArgumentNullException"> /// Thrown when the registry configuration is null. /// </exception> public AsyncSchemaRegistryDeserializer( IEnumerable <KeyValuePair <string, string> > registryConfiguration, IBinaryDeserializerBuilder deserializerBuilder = null, IJsonSchemaReader schemaReader = null ) : this( deserializerBuilder, schemaReader ) { if (registryConfiguration == null) { throw new ArgumentNullException(nameof(registryConfiguration)); } _resolve = async id => { using (var registry = new CachedSchemaRegistryClient(registryConfiguration)) { return(await registry.GetSchemaAsync(id).ConfigureAwait(false)); } }; }
public FixedSerializationTests() { DeserializerBuilder = new BinaryDeserializerBuilder(); SerializerBuilder = new BinarySerializerBuilder(); }
public MapSerializationTests() { deserializerBuilder = new BinaryDeserializerBuilder(); serializerBuilder = new BinarySerializerBuilder(); stream = new MemoryStream(); }
public BooleanSerializationTests() { DeserializerBuilder = new BinaryDeserializerBuilder(); SerializerBuilder = new BinarySerializerBuilder(); }
public IntegerSerializationTests() { DeserializerBuilder = new BinaryDeserializerBuilder(); SerializerBuilder = new BinarySerializerBuilder(); }
public DecimalSerializationTests() { DeserializerBuilder = new BinaryDeserializerBuilder(); SerializerBuilder = new BinarySerializerBuilder(); }
public RecordConstructorDeserializationTests() { DeserializerBuilder = new BinaryDeserializerBuilder(); SchemaBuilder = new SchemaBuilder(); SerializerBuilder = new BinarySerializerBuilder(); }
public OrderDeserializerBuilderCase(ITypeResolver resolver, IBinaryCodec codec, IBinaryDeserializerBuilder builder) : base(codec, builder) { Resolver = resolver; }
/// <summary> /// Initializes a new instance of the <see cref="BinaryUnionDeserializerBuilderCase" /> class. /// </summary> /// <param name="deserializerBuilder"> /// A deserializer builder instance that will be used to build child deserializers. /// </param> public BinaryUnionDeserializerBuilderCase(IBinaryDeserializerBuilder deserializerBuilder) { DeserializerBuilder = deserializerBuilder ?? throw new ArgumentNullException(nameof(deserializerBuilder), "Binary deserializer builder cannot be null."); }
public StringSerializationTests() { DeserializerBuilder = new BinaryDeserializerBuilder(); SerializerBuilder = new BinarySerializerBuilder(); }
public TimestampSerializationTests() { DeserializerBuilder = new BinaryDeserializerBuilder(); SerializerBuilder = new BinarySerializerBuilder(); }
public OrderDeserializerBuilderCase(IBinaryDeserializerBuilder builder) : base(builder) { }
public OrderEventUnionDeserializerBuilderCase(IBinaryDeserializerBuilder deserializerBuilder) : base(deserializerBuilder) { }