protected override void InternalExecution()
        {
            // Generate the physicial entities (channel and stations)
            // Level 1 OSI
            classicChannel = ClassicChannelFactory.generateP2PChannel();
            quantumChannel = QuantumChannelFactory.generateP2PChannel();
            masterStation = DualChannelStationFactory.generateStation(classicChannel, quantumChannel);
            slaveStation = DualChannelStationFactory.generateStation(classicChannel, quantumChannel);

            // Generate the protocol and link logic
            // Level 2 OSI
            master = ProtocolBurstAgentFactory.generateBurstAgent("master", masterStation);
            slave = ProtocolBurstAgentFactory.generateBurstAgent("slave", slaveStation);
            //The object protocol should not extist
            //this is an emergent behaviour of the ProtocolAgents ;)
            //IBurstProtocol protocol = BurstProtocolFactory.generateBurstProtocol();
            //protocol.Master = master;
            //protocol.Slave = slave;

            string data = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.";
            master.importBuffer(ArrayTools.EncodingASCII_StringToArrayBool(data));

            master.BeforeTransmission += new EventHandlerProtocolAgent(master_BeforeTransmission);
            master.AfterTransmission += new EventHandlerProtocolAgent(master_AfterTransmission);

            //while (master.CanExtractData())
            //{
            //}
        }
        public static void generateSecretKey(IBB84ProtocolAgent master, IBB84ProtocolAgent slave, IClassicChannel ClassicChannel, IQuantumChannel quantumChannel, int size)
        {
            IBB84Protocol protocol = generateBB84Protocol(ClassicChannel, quantumChannel);
            protocol.Master = master;
            protocol.Slave = slave;

            generateSecretKey(protocol, size);
        }
        public BasicQuantumSecuredProtocolBasic(IClassicChannel ClassicChannel, IQuantumChannel QuantumChannel)
            : base()
        {
            _master = null;
            _slave = null;

            _ClassicChannel = ClassicChannel;
            _quantumChannel = QuantumChannel;
        }
        //public BasicBurstProtocol(IClassicChannel ClassicChannel, IQuantumChannel QuantumChannel)
        public BasicBurstProtocol(IClassicChannel ClassicChannel)
            : base()
        {
            _master = null;
            _slave = null;

            //_preferredChannel = InformationType.UndefinedInformation;
            _ClassicChannel = ClassicChannel;
            //_quantumChannel = QuantumChannel;
        }
        public AbstractBB84Protocol(IClassicChannel ClassicChannel, IQuantumChannel QuantumChannel)
            : base()
        {
            _master = null;
            _slave = null;
            _eavesdropper = null;

            //_ClassicChannel = FactoryClassicChannel.generateP2PChannel();
            //_quantumChannel = FactoryQuantumChannel.generateP2PChannel();
            _classicChannel = ClassicChannel;
            _quantumChannel = QuantumChannel;

            _configuration = new BB84ProtocolConfiguration(this.GetType().Name);
        }
 public static IBB84Protocol generateBB84Protocol(IClassicChannel ClassicChannel, IQuantumChannel QuantumChannel)
 {
     return new BB84ProtocolQKD(ClassicChannel, QuantumChannel);
 }
 public void setClassicChannel(IClassicChannel channel)
 {
     checkChannelType(channel);
     internalSetChannel(channel);
 }
 public ClassicChannelStationBasic(IClassicChannel channel)
     : this()
 {
     Channel = channel;
 }
 // STATION
 public static IChannelStationDual generateStation(IClassicChannel Classicchannel, IQuantumChannel quantumchannel)
 {
     return new DualChannelStationBasic(Classicchannel, quantumchannel);
 }
 public ClassicChannelReceiverBasic(IClassicChannel channel)
     : this()
 {
     setChannel(channel);
 }
 // TRANSMISSOR
 public static IClassicChannelTransmissor generateTransmissor(IClassicChannel channel)
 {
     return new ClassicChannelTransmissorBasic(channel);
 }
 public BB84ProtocolChau(IClassicChannel ClassicChannel, IQuantumChannel QuantumChannel)
     : base(ClassicChannel, QuantumChannel)
 {
 }
 public static IQuantumSecuredProtocol generateQuantumSecuredProtocol(IClassicChannel ClassicChannel, IQuantumChannel QuantumChannel)
 {
     return new BasicQuantumSecuredProtocolBasic(ClassicChannel,QuantumChannel);
 }
        protected override void PrepareExecution()
        {
            base.PrepareExecution();

            classicChannel = ClassicChannelFactory.generateP2PChannel();
            quantumChannel = QuantumChannelFactory.generateP2PChannel();
            stationA = DualChannelStationFactory.generateStation(classicChannel, quantumChannel);
            stationB = DualChannelStationFactory.generateStation(classicChannel, quantumChannel);

            controllerA = ControllerFactory.generateControllerStation(TesterFactory.UserInterface);
            controllerB = ControllerFactory.generateControllerStation(TesterFactory.UserInterface);
        }
 public ClassicChannelStationBasic(IClassicChannel channel)
     : this()
 {
     setChannel(channel);
 }
        protected override void PrepareExecution()
        {
            base.PrepareExecution();

            classicChannel = ClassicChannelFactory.generateP2PChannel();
            quantumChannel = QuantumChannelFactory.generateP2PChannel();
            stationA = DualChannelStationFactory.generateStation(classicChannel, quantumChannel);
            stationB = DualChannelStationFactory.generateStation(classicChannel, quantumChannel);

            controllerA = ExplorerChannelStationFactory.generateControllerStation(UIManager.MainWindow);
            controllerB = ExplorerChannelStationFactory.generateControllerStation(UIManager.MainWindow);
        }
 public DualChannelStationBasic(IClassicChannel Classicchannel, IQuantumChannel quantumchannel)
     : this()
 {
     setClassicChannel(Classicchannel);
     setQuantumChannel(quantumchannel);
 }
 // CHANNEL
 public void setClassicChannel(IClassicChannel channel)
 {
     _ClassicStation.setClassicChannel( channel );
 }
 public ClassicChannelTransmissorBasic(IClassicChannel channel)
     : this()
 {
     setChannel(channel);
 }
 // RECEIVER
 public static IClassicChannelReceiver generateReceiver(IClassicChannel channel)
 {
     return new ClassicChannelReceiverBasic(channel);
 }
 public static IBurstProtocol generateBurstProtocol(IClassicChannel ClassicChannel)
 {
     return new BasicBurstProtocol(ClassicChannel);
 }
 private void generateChannels()
 {
     _classicChannel = ClassicChannelFactory.generateP2PChannel();
     _quantumChannel = QuantumChannelFactory.generateP2PChannel();
 }
 // STATION
 public static IClassicChannelStation generateStation(IClassicChannel channel)
 {
     return new ClassicChannelStationBasic(channel);
 }
 private void GenerateChannels()
 {
     _channelClassic = ClassicChannelFactory.generateP2PChannel();
     _channelQuantum = QuantumChannelFactory.generateP2PChannel();
 }