コード例 #1
0
        bool thInterfaceIO_HandlerStatusCallback(TrafficHandlerPort sender, TrafficHandlerPort attacher)
        {
            CheckPorts(sender, InterfaceIOPort);

            DirectInterfaceIOHandler thLocalHandler = (DirectInterfaceIOHandler)TrafficHandler;

            return(attacher.ParentHandler is IPInterface && thLocalHandler.ContainsInterface((IPInterface)attacher.ParentHandler));
        }
コード例 #2
0
        private bool AttachInterface(TrafficHandlerPort h)
        {
            DirectInterfaceIOHandler thLocalHandler = (DirectInterfaceIOHandler)TrafficHandler;

            if (h.PortType == PortType.Interface)
            {
                if (h.ParentHandler is IPInterface)
                {
                    IPInterface ipi = (IPInterface)h.ParentHandler;
                    if (!thLocalHandler.ContainsInterface(ipi))
                    {
                        thLocalHandler.AddInterface(ipi);
                    }
                    else
                    {
                        throw new InvalidOperationException("The ports " + h.Name + " and " + InterfaceIOPort.Name + " are already connected.");
                    }
                    return(true);
                }
            }
            throw new InvalidOperationException("The " + InterfaceIOPort.Name + " cannot be used with other ports then interface ports or other devices then ip interfaces.");
        }