private int _previousRequestId; // RequestId from the previous response // constructors public CommandUsingCommandMessageWireProtocol( ICoreSession session, ReadPreference readPreference, DatabaseNamespace databaseNamespace, BsonDocument command, IEnumerable <Type1CommandMessageSection> commandPayloads, IElementNameValidator commandValidator, BsonDocument additionalOptions, CommandResponseHandling responseHandling, IBsonSerializer <TCommandResult> resultSerializer, MessageEncoderSettings messageEncoderSettings, Action <IMessageEncoderPostProcessor> postWriteAction, ServerApi serverApi) { if (responseHandling != CommandResponseHandling.Return && responseHandling != CommandResponseHandling.NoResponseExpected && responseHandling != CommandResponseHandling.ExhaustAllowed) { throw new ArgumentException("CommandResponseHandling must be Return, NoneExpected or ExhaustAllowed.", nameof(responseHandling)); } _session = Ensure.IsNotNull(session, nameof(session)); _readPreference = readPreference; _databaseNamespace = Ensure.IsNotNull(databaseNamespace, nameof(databaseNamespace)); _command = Ensure.IsNotNull(command, nameof(command)); _commandPayloads = commandPayloads?.ToList(); // can be null _commandValidator = Ensure.IsNotNull(commandValidator, nameof(commandValidator)); _additionalOptions = additionalOptions; // can be null _responseHandling = responseHandling; _resultSerializer = Ensure.IsNotNull(resultSerializer, nameof(resultSerializer)); _messageEncoderSettings = messageEncoderSettings; _postWriteAction = postWriteAction; // can be null _serverApi = serverApi; // can be null if (messageEncoderSettings != null) { _documentFieldDecryptor = messageEncoderSettings.GetOrDefault <IBinaryDocumentFieldDecryptor>(MessageEncoderSettingsName.BinaryDocumentFieldDecryptor, null); _documentFieldEncryptor = messageEncoderSettings.GetOrDefault <IBinaryCommandFieldEncryptor>(MessageEncoderSettingsName.BinaryDocumentFieldEncryptor, null); } }
// constructors public CommandMessageFieldEncryptor(IBinaryCommandFieldEncryptor commandFieldEncryptor, MessageEncoderSettings messageEncoderSettings) { _commandFieldEncryptor = commandFieldEncryptor; _messageEncoderSettings = messageEncoderSettings; }