public MulticastBroadcaster(uint size = 0x4000) { _size = size <= 65536 ? (int)size : throw new ArgumentException($"size {size} > 65536"); _name = _dependencies.BuildDependency <Name>(); _slicer = _dependencies.BuildDependency <PacketSlicer>(); _sockets = _dependencies.BuildDependency <MulticastSockets>(); }
/// <summary> /// 构造器 /// </summary> /// <param name="timeout">超时时间,超过此时间重新出现的成员视作新成员</param> /// <param name="detected">发现新成员的回调函数</param> public GroupMonitor(TimeSpan?timeout = null, Action <string> detected = null) { _timeout = timeout ?? TimeSpan.MaxValue; _detected = detected; _group = _dependencies.BuildDependency <Group>(); _broadcaster = _dependencies.BuildDependency <MulticastBroadcaster>(); }
private readonly UniqueDependency <MulticastSockets> _socket; // 接收套接字 /// <summary> /// 构造器 /// </summary> /// <param name="bufferSize">缓冲区容量</param> public MulticastReceiver(uint bufferSize = 65536) { _buffer = new ThreadLocal <byte[]>(() => new byte[bufferSize]); _name = _dependencies.BuildDependency <Name>(); _addresses = _dependencies.BuildDependency <Addresses>(); _monitor = _dependencies.BuildDependency <MulticastMonitor>(); _socket = _dependencies.BuildDependency <MulticastSockets>(); _listeners = new List <IMulticastListener>(); }
private void InitializePackageDependency( Dictionary <UniqueDependency, PackageDependencyEntity> output, Dependency dependency, long packageKey, IReadOnlyDictionary <string, PackageRegistrationEntity> idToPackageRegistration, FrameworkEntity framework) { if (!idToPackageRegistration.TryGetValue(dependency.Id, out var packageRegistration)) { _logger.LogWarning( "Skipping dependency {Id} {Version} since no such package registration exists.", dependency.Id, dependency.Version); return; } var dependencyEntity = new PackageDependencyEntity { ParentPackageKey = packageKey, FrameworkKey = framework?.FrameworkKey, OriginalVersionRange = dependency.Version, VersionRange = dependency.ParsedVersionRange?.ToNormalizedString(), DependencyPackageRegistrationKey = packageRegistration.PackageRegistrationKey, }; var key = new UniqueDependency( dependencyEntity.DependencyPackageRegistrationKey, dependencyEntity.FrameworkKey); if (!output.TryGetValue(key, out var existingDependencyEntity)) { output.Add(key, dependencyEntity); } else { _logger.LogWarning( "Dependency {Id} (framework '{OriginalFrameworkValue}') is a duplicate. The " + "version range that will be used is '{OriginalVersionRange}'. The " + "version range '{VersionRange}' will be skipped.", dependency.Id, framework.OriginalValue, existingDependencyEntity.OriginalVersionRange, dependency.Version); } }
public ConnectionClient() { _name = _dependencies.BuildDependency <Name>(); _addresses = _dependencies.BuildDependency <Addresses>(); _monitor = _dependencies.BuildDependency <PortMonitor>(); }
public MulticastMonitor() { _sockets = _dependencies.BuildDependency <MulticastSockets>(); _networks = _dependencies.BuildDependency <Networks>(); }
public PortMonitor() { _broadcaster = _dependencies.BuildDependency <MulticastBroadcaster>(); _addresses = _dependencies.BuildDependency <Addresses>(); }
public PortBroadcaster() { _name = _dependencies.BuildDependency <Name>(); _broadcaster = _dependencies.BuildDependency <MulticastBroadcaster>(); _servers = _dependencies.BuildDependency <ServerSockets>(); }