in edge-hub/core/src/Microsoft.Azure.Devices.Edge.Hub.Service/modules/RoutingModule.cs [68:140]
public RoutingModule(
string iotHubName,
Option<string> gatewayHostname,
string edgeDeviceId,
string edgeModuleId,
Option<string> connectionString,
IDictionary<string, string> routes,
bool isStoreAndForwardEnabled,
StoreAndForwardConfiguration storeAndForwardConfiguration,
int connectionPoolSize,
bool useTwinConfig,
VersionInfo versionInfo,
Option<UpstreamProtocol> upstreamProtocol,
TimeSpan connectivityCheckFrequency,
int maxConnectedClients,
TimeSpan messageAckTimeout,
TimeSpan cloudConnectionIdleTimeout,
bool closeCloudConnectionOnIdleTimeout,
TimeSpan operationTimeout,
TimeSpan cloudConnectionHangingTimeout,
bool useServerHeartbeat,
Option<TimeSpan> minTwinSyncPeriod,
Option<TimeSpan> reportedPropertiesSyncFrequency,
bool useV1TwinManager,
int maxUpstreamBatchSize,
int upstreamFanOutFactor,
bool encryptTwinStore,
TimeSpan configUpdateFrequency,
bool checkEntireQueueOnCleanup,
int messageCleanupIntervalSecs,
ExperimentalFeatures experimentalFeatures,
bool closeCloudConnectionOnDeviceDisconnect,
bool nestedEdgeEnabled,
bool scopeAuthenticationOnly,
bool trackDeviceState,
Option<X509Certificate2> manifestTrustBundle)
{
this.iotHubName = Preconditions.CheckNonWhiteSpace(iotHubName, nameof(iotHubName));
this.gatewayHostname = gatewayHostname;
this.edgeDeviceId = Preconditions.CheckNonWhiteSpace(edgeDeviceId, nameof(edgeDeviceId));
this.connectionString = Preconditions.CheckNotNull(connectionString, nameof(connectionString));
this.routes = Preconditions.CheckNotNull(routes, nameof(routes));
this.storeAndForwardConfiguration = Preconditions.CheckNotNull(storeAndForwardConfiguration, nameof(storeAndForwardConfiguration));
this.edgeModuleId = edgeModuleId;
this.isStoreAndForwardEnabled = isStoreAndForwardEnabled;
this.connectionPoolSize = connectionPoolSize;
this.useTwinConfig = useTwinConfig;
this.versionInfo = versionInfo ?? VersionInfo.Empty;
this.upstreamProtocol = upstreamProtocol;
this.connectivityCheckFrequency = connectivityCheckFrequency;
this.maxConnectedClients = Preconditions.CheckRange(maxConnectedClients, 1);
this.messageAckTimeout = messageAckTimeout;
this.cloudConnectionIdleTimeout = cloudConnectionIdleTimeout;
this.closeCloudConnectionOnIdleTimeout = closeCloudConnectionOnIdleTimeout;
this.operationTimeout = operationTimeout;
this.useServerHeartbeat = useServerHeartbeat;
this.minTwinSyncPeriod = minTwinSyncPeriod;
this.reportedPropertiesSyncFrequency = reportedPropertiesSyncFrequency;
this.useV1TwinManager = useV1TwinManager;
this.maxUpstreamBatchSize = maxUpstreamBatchSize;
this.upstreamFanOutFactor = upstreamFanOutFactor;
this.encryptTwinStore = encryptTwinStore;
this.configUpdateFrequency = configUpdateFrequency;
this.checkEntireQueueOnCleanup = checkEntireQueueOnCleanup;
this.messageCleanupIntervalSecs = messageCleanupIntervalSecs;
this.experimentalFeatures = experimentalFeatures;
this.closeCloudConnectionOnDeviceDisconnect = closeCloudConnectionOnDeviceDisconnect;
this.nestedEdgeEnabled = nestedEdgeEnabled;
this.scopeAuthenticationOnly = scopeAuthenticationOnly;
this.trackDeviceState = trackDeviceState;
this.manifestTrustBundle = manifestTrustBundle;
this.cloudConnectionHangingTimeout = cloudConnectionHangingTimeout;
}