Exemple #1
0
 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>();
 }
Exemple #2
0
 /// <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>();
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
 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>();
 }