You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							46 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							46 lines
						
					
					
						
							1.1 KiB
						
					
					
				| 'use strict';
 | |
| const parseServerType = require('../core/sdam/server_description').parseServerType;
 | |
| 
 | |
| const RESPONSE_FIELDS = [
 | |
|   'minWireVersion',
 | |
|   'maxWireVersion',
 | |
|   'maxBsonObjectSize',
 | |
|   'maxMessageSizeBytes',
 | |
|   'maxWriteBatchSize',
 | |
|   '__nodejs_mock_server__'
 | |
| ];
 | |
| 
 | |
| class StreamDescription {
 | |
|   constructor(address, options) {
 | |
|     this.address = address;
 | |
|     this.type = parseServerType(null);
 | |
|     this.minWireVersion = undefined;
 | |
|     this.maxWireVersion = undefined;
 | |
|     this.maxBsonObjectSize = 16777216;
 | |
|     this.maxMessageSizeBytes = 48000000;
 | |
|     this.maxWriteBatchSize = 100000;
 | |
|     this.compressors =
 | |
|       options && options.compression && Array.isArray(options.compression.compressors)
 | |
|         ? options.compression.compressors
 | |
|         : [];
 | |
|   }
 | |
| 
 | |
|   receiveResponse(response) {
 | |
|     this.type = parseServerType(response);
 | |
| 
 | |
|     RESPONSE_FIELDS.forEach(field => {
 | |
|       if (typeof response[field] !== 'undefined') {
 | |
|         this[field] = response[field];
 | |
|       }
 | |
|     });
 | |
| 
 | |
|     if (response.compression) {
 | |
|       this.compressor = this.compressors.filter(c => response.compression.indexOf(c) !== -1)[0];
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| module.exports = {
 | |
|   StreamDescription
 | |
| };
 |