/// <summary> /// Creates a <see cref="TcpMessageCodec"/> instance. /// </summary> /// <param name="appProtocolVersion">The <see cref="AppProtocolVersion"/> to use /// when encoding and decoding.</param> /// <param name="trustedAppProtocolVersionSigners">The set of signers to trust when /// decoding a message.</param> /// <param name="differentAppProtocolVersionEncountered">A callback method that gets /// invoked when an <see cref="AppProtocolVersion"/> by a <em>trusted</em> signer that is /// different from <paramref name="appProtocolVersion"/> is encountered.</param> /// <param name="messageTimestampBuffer">A <see cref="TimeSpan"/> to use as a buffer /// when decoding <see cref="Message"/>s.</param> public TcpMessageCodec( AppProtocolVersion appProtocolVersion = default, IImmutableSet <PublicKey>?trustedAppProtocolVersionSigners = null, DifferentAppProtocolVersionEncountered?differentAppProtocolVersionEncountered = null, TimeSpan?messageTimestampBuffer = null) { _codec = new Codec(); _messageValidator = new MessageValidator( appProtocolVersion, trustedAppProtocolVersionSigners, differentAppProtocolVersionEncountered, messageTimestampBuffer); }