public LinkToInformation(
            LinkConnector connector,
            DataflowLinkOptions linkOptions,
            System.Action unlink)
        {
            Id          = Guid.NewGuid();
            Connector   = connector;
            LinkOptions = linkOptions;
            _unlink     = unlink;

            PushOffering        = new BindableCollection <OfferMessageTrace>();
            PoolRequest         = new BindableCollection <ConsumeTrace>();
            PushOfferingCounter = new OfferMessageCounters();
            PoolRequestCounters = new ConsumedMessageCounters();
        }
        public LinkCandidateInformation(
            DataflowVisitor visitor,
            ISourceHook <T> source,
            ITargetHook <T> target,
            LinkConnector connector,
            DataflowLinkOptions options = null,
            Predicate <T> predicate     = null)
        {
            _visitor   = visitor;
            _source    = source;
            _target    = target;
            _predicate = predicate;

            if (options == null)
            {
                options = new DataflowLinkOptions();
            }
            Append              = options.Append;
            MaxMessages         = options.MaxMessages;
            PropagateCompletion = options.PropagateCompletion;

            Connector = connector;
        }