Exemple #1
0
        bool thClonePort_HandlerDetached(TrafficHandlerPort sender, TrafficHandlerPort attacher)
        {
            if (sender != ClonePort)
            {
                throw new InvalidOperationException("The Clone Port detach event was signalled by another sender than the Clone Port. This is a serious internal error.");
            }

            TrafficSplitter s = (TrafficSplitter)TrafficHandler;

            if (attacher.ParentHandler is TrafficAnalyzer)
            {
                if (s.ContainsTrafficAnalyzer((TrafficAnalyzer)attacher.ParentHandler))
                {
                    s.RemoveTrafficAnalyzer((TrafficAnalyzer)attacher.ParentHandler);

                    return(true);
                }
                else
                {
                    throw new InvalidOperationException("The ports " + sender.Name + " and " + attacher.Name + " are not connected.");
                }
            }
            else
            {
                throw new InvalidOperationException("Only traffic analyzers can connect the " + ClonePort.Name + ".");
            }
        }
Exemple #2
0
        bool thClonePort_HandlerStatusCallback(TrafficHandlerPort sender, TrafficHandlerPort attacher)
        {
            if (sender != ClonePort)
            {
                throw new InvalidOperationException("The Clone Port query callback was called by another sender than the Clone Port. This is a serious internal error.");
            }

            TrafficSplitter s = (TrafficSplitter)TrafficHandler;

            return(attacher.ParentHandler is TrafficAnalyzer && s.ContainsTrafficAnalyzer((TrafficAnalyzer)attacher.ParentHandler));
        }