public static void Main(string[] args)
        {
            Config(args[0], args[1]);
            //Config("..\\..\\..\\..\\Configs\\NetworkConfig1.txt");

            NetClient nc = new NetClient(HandleMessage, Name);

            Task.Run(() => nc.ListenForMessages());

            if (Inner_Name.Equals(" ") && !Name.Equals("NC2"))
            {
                Disp.ViewOnScreen("INNER SUBNETWORK " + Name);
                NetworkMessage msg = new NetworkMessage(Name, Upper_Name, IPAddress.Parse("1.0.0.1"), IPAddress.Parse("2.0.0.1"), 1, "INNER_NC_AVAILABLE");
                nc.Send(msg.ToBytes());
            }

            Disp.ViewOnScreen("Starting subnetwork!");

            //RoutingProtocol rc = new RoutingProtocol("..\\..\\..\\..\\Configs\\RCConfigNode1.txt", "..\\..\\..\\..\\Configs\\RCConfigLink1.txt");
            RoutingProtocol rc  = new RoutingProtocol(args[2], args[3], nc, Name);
            LRM             lrm = new LRM(nc, rc, Name, Links);
            CC cc = new CC(nc, rc, lrm, Name);

            _cc     = cc;
            _rc     = rc;
            _lrm    = lrm;
            _lrm.cc = cc;
            while (true)
            {
                Console.ReadLine();
            }
        }
Ejemplo n.º 2
0
        public void Start()
        {
            State = Available;

            Door.UnlockDoor();
            Disp.DisplayMessage("\nDoor unlocked. Open door and connect your phone");
        }
Ejemplo n.º 3
0
 public void ConnectionRequest_rsp(NetworkMessage msg, bool response, string slots)
 {
     if (NextDomain == false & response == true)
     {
         msg.payload = "CONNECTION_REQUEST_RSP=TRUE,NEXT_DOMAIN=FALSE " + slots;
         nc.Send(msg.ToBytes());
         Disp.ViewOnScreen(msg.ToString("[LOG]: "));
     }
     else if (NextDomain == true & response == true)
     {
         msg.payload = "CONNECTION_REQUEST_RSP=TRUE,NEXT_DOMAIN=TRUE " + slots;
         nc.Send(msg.ToBytes());
         Disp.ViewOnScreen(msg.ToString("[LOG]: "));
     }
     else if (NextDomain == false & response == false)
     {
         msg.payload = "CONNECTION_REQUEST_RSP=FALSE,NEXT_DOMAIN=FALSE " + slots;
         nc.Send(msg.ToBytes());
         Disp.ViewOnScreen(msg.ToString("[LOG]: "));
     }
     else if (NextDomain == true & response == false)
     {
         msg.payload = "CONNECTION_REQUEST_RSP=FALSE,NEXT_DOMAIN=TRUE " + slots;
         nc.Send(msg.ToBytes());
         Disp.ViewOnScreen(msg.ToString("[LOG]: "));
     }
 }
Ejemplo n.º 4
0
            public void CallTeardown_rsp(NetworkMessage msg, NetClient sender, bool next_domain)
            {
                msg.src = myCPCC.port;
                msg.dst = myCPCC.ncc_port;
                Disp.ViewOnScreen("Do you accept disconnection?");
                string choice = Console.ReadLine();

                if (choice.Equals("accept"))
                {
                    msg.payload = "CALL_TEARDOWN_RSP=TRUE";
                }
                else if (choice.Equals("refuse"))
                {
                    if (next_domain)
                    {
                        msg.payload = "CALL_TEARDOWN_RSP=FALSE,NEXT_DOMAIN=TRUE";
                    }
                    else
                    {
                        msg.payload = "CALL_TEARDOWN_RSP=FALSE,NEXT_DOMAIN=FALSE";
                    }
                }
                sender.Send(msg.ToBytes());
                Disp.ViewOnScreen(msg.ToString("Message sent: "));
            }
Ejemplo n.º 5
0
        public bool ConnectionRequest_req(string node1, string node2, int cap, string snpp1, string snpp2, string slots)
        {
            Disp.ViewOnScreen("[NCC -> CC]: Connection Request - request.");
            Node1    = node1;
            Node2    = node2;
            SNPP1    = snpp1;
            SNPP2    = snpp2;
            Capacity = cap;
            Disp.ViewOnScreen("[CC -> RC]: Route Table Query - request.");

            if (slots.Equals(""))
            {
                Path     = RouteTableQuery_req(rc, Node1, Node2, Capacity);
                slotsNum = Path[0];
                Path.RemoveAt(0);
                Channels = getChannels(int.Parse(slotsNum));
            }
            else
            {
                Path = RouteTableQuery_req(rc, Node1, Node2);
                string[] slotsArr = slots.Split();
                foreach (var s in slotsArr)
                {
                    Channels.Add(int.Parse(s));
                    var p = ChannelsAvailable.Find(x => x.Equals(int.Parse(s)));
                    ChannelsAvailable.Remove(p);
                }
            }

            Disp.ViewOnScreen("[RC -> CC]: Route Table Query - response.");
            Disp.ViewOnScreen("[CC]: Path has been chosen! " + string.Join(" ", Path.ToArray()));
            Disp.ViewOnScreen("[CC -> LRM]: SNP Link Connection Request - request: " + string.Join(" ", Path.ToArray()) + ", " + string.Join(" ", Channels.ToArray()));
            return(lrm.SNPLinkConnectionRequest_req(Path, Channels));
        }
Ejemplo n.º 6
0
        public void Finished(Current current, Disp servant, object cookie)
        {
            lock (this)
            {
                test(!_deactivated);
            }

            //
            // Ensure finished() is only called once per request.
            //
            test(_requestId == current.RequestId);
            _requestId = -1;

            test(current.Id.Category.Equals(_category) || _category.Length == 0);
            test(current.Id.Name.Equals("locate") || current.Id.Name.Equals("finished"));

            if (current.Id.Name.Equals("finished"))
            {
                exception(current);
            }

            var co = (Cookie)cookie;

            test(co.message().Equals("blahblah"));
        }
Ejemplo n.º 7
0
        //obsługa handlera wewnetrznego
        public void ConnectionRequest_req(string node1, string node2, string snpp1, string snpp2, int cap, string channels)
        {
            //List<int> chan = new List<int>();
            //foreach (var el in channels.Split()) chan.Add(int.Parse(el));
            Disp.ViewOnScreen("[CC -> Inner_CC]: Connection Request - request.");
            Node1    = node1;
            Node2    = node2;
            SNPP1    = snpp1;
            SNPP2    = snpp2;
            Capacity = cap;

            Disp.ViewOnScreen("[CC -> RC]: Route Table Query - request.");
            Path = RouteTableQuery_req(rc, Node1, Node2);
            string[] slotsArr = channels.Split();
            foreach (var s in slotsArr)
            {
                Channels.Add(int.Parse(s));
                var p = ChannelsAvailable.Find(x => x.Equals(int.Parse(s)));
                ChannelsAvailable.Remove(p);
            }

            //Path = RouteTableQuery_req(rc, Node1, Node2, Capacity);

            Disp.ViewOnScreen("[RC -> CC]: Route Table Query - response.");

            Disp.ViewOnScreen("[CC]: Path has been chosen! " + string.Join(" ", Path.ToArray()));

            Disp.ViewOnScreen("[CC -> LRM]: SNP Link Connection Request - request: " + string.Join(" ", Path.ToArray()) + ", " + string.Join(" ", Channels.ToArray()));
            lrm.SNPLinkConnectionRequest_req(Path, Channels);
            Disp.ViewOnScreen("[Inner_CC -> CC]: Connection Request - response.");
        }
Ejemplo n.º 8
0
 public void ConnectionTeardown_req(string snpp1, string snpp2, int cap)
 {
     Disp.ViewOnScreen("[NCC]: CONNECTION TEARDOWN REQUEST!");
     SNPP1    = snpp1;
     SNPP2    = snpp2;
     Capacity = cap;
     lrm.SNPReleaseResources(Path, Channels);
 }
Ejemplo n.º 9
0
            public void CallRequest_req(string src, string dst, int cap, NetClient sender)
            {
                NetworkMessage msg = new NetworkMessage(this.port, this.ncc_port, "CALL_REQUEST " + src + " " + dst + " " + cap.ToString());

                sender.Send(msg.ToBytes());
                Disp.ViewOnScreen(msg.ToString("Message sent: "));
                stream_gen.AddCalledHost(dst);
            }
Ejemplo n.º 10
0
 public void CallCoordinationTeardown_rsp(NetworkMessage msg) //odpowiedż drugiej domeny na zgłoszenie chęci zakończenia połączenia
 {
     msg.src     = myNCC.port;
     msg.dst     = myNCC.ncc_port;
     msg.payload = "CALL_COORDINATION_RSP=FALSE";
     ncc.Send(msg.ToBytes());
     Disp.ViewOnScreen("Message sent: ");
 }
Ejemplo n.º 11
0
            public void CallTeardown_req(string dst, int cap, NetClient sender)
            {
                NetworkMessage msg = new NetworkMessage(this.port, this.ncc_port, "CALL_TEARDOWN_REQ " + this.port + " " + dst + " " + cap.ToString());

                sender.Send(msg.ToBytes());
                Disp.ViewOnScreen(msg.ToString("Message sent: "));
                stream_gen.AddCalledHost(dst);
            }
Ejemplo n.º 12
0
 public void CallTeardown_rsp(NetworkMessage msg) //przesyłami pierwszemu klientowi, że ten drugi nie zgodził sie na zerwanie połączenia
 {
     msg.src     = myNCC.port;
     msg.dst     = myNCC.callingpcc_port;
     msg.payload = "CALL_TEARDOWN_RSP=FALSE";
     ncc.Send(msg.ToBytes());
     Disp.ViewOnScreen("[NCC -> CPCC] Call Teardown - response.");
 }
Ejemplo n.º 13
0
 public CC(NetClient nc, RoutingProtocol rc, LRM lrm, string name)
 {
     this.nc  = nc;
     this.rc  = rc;
     this.lrm = lrm;
     Name     = name;
     Disp.ViewOnScreen("Starting CC!");
 }
Ejemplo n.º 14
0
 public void CallCoordinationTeardown_req(NetworkMessage msg) //informowanie drugiej domeny o chęci zakończenia połączenia
 {
     msg.src     = myNCC.port;
     msg.dst     = myNCC.ncc_port;
     msg.payload = "CALL_COORDINATION_TEARDOWN_REQ";
     ncc.Send(msg.ToBytes());
     Disp.ViewOnScreen("[NCC -> NCC] Call Coordination Teardown - request.");
 }
Ejemplo n.º 15
0
        public List <string> RouteTableQuery_req(RoutingProtocol rc, string node1, string node2)        //Otrzymanie informacji o drogę przed podsieć
        {
            Disp.ViewOnScreen("[RC]: Preparing possible path!");
            Disp.ViewOnScreen("[RC]: Source: " + node1 + " Target: " + node2);
            List <string> path = rc.ShortestPath(node1, node2);

            return(path);
        }
Ejemplo n.º 16
0
        public void LinkRestoration(string src, string dst)
        {
            lrm.SNPReleaseResources_req(src, dst, Channels);
            Disp.ViewOnScreen("[CC -> RC] Route Table Query - request.");
            List <string> new_path = rc.ShortestPath(src, dst);

            Disp.ViewOnScreen("[RC -> CC] Route Table Query - response. Path: " + string.Join(" ", new_path.ToArray()));
            lrm.SNPLinkConnectionRequest_req(new_path, Channels);
        }
        public Disp GetDisplayName(string token)
        {
            Login      db       = new Login();
            string     userName = t.Decode(token);
            UserDetail u        = db.SignIn(userName);
            Disp       d        = new Disp();

            d.DispName = u.displayName;
            d.accType  = u.role;
            return(d);
        }
Ejemplo n.º 18
0
        public void CallCoordination_req(NetworkMessage msg)//Adres domeny, Adres2, SNPP z innej domeny) //Zestawienie połączenia miedzydomenowego. On już wie ze tu wszystko zestawione wiec mowi to dla NCC obok
        {
            msg.src = myNCC.port;
            msg.dst = myNCC.ncc_port;
            string str = msg.payload.Replace("CONNECTION_REQUEST_RSP=TRUE,NEXT_DOMAIN=TRUE", "");

            msg.payload = "CALL_COORDINATION_REQ " + myNCC.callingpcc_port + " " + myNCC.calledpcc_port + " " + myNCC.hostcap + str;
            ncc.Send(msg.ToBytes());
            Disp.ViewOnScreen("[NCC -> NCC] Call Coordination - request.");
            Disp.ViewOnScreen(msg.ToString());
        }
Ejemplo n.º 19
0
 addWithUUID(Disp servant)
 {
     lock (_mutex)
     {
         if (_router == null)
         {
             throw new SessionNotExistException();
         }
         Debug.Assert(_category != null);
         return(internalObjectAdapter().Add(servant, new Ice.Identity(Guid.NewGuid().ToString(), _category)));
     }
 }
Ejemplo n.º 20
0
        private List <int> getChannels(int slotsNum)
        {
            List <int> temp = new List <int>();

            for (int i = 0; i < slotsNum; i++)
            {
                temp.Add(ChannelsAvailable[0]);
                ChannelsAvailable.RemoveAt(0);
            }
            Disp.ViewOnScreen("[RC]: SLOTS CHOSE: " + string.Join(" ", temp.ToArray()));
            return(temp);
        }
 private void SendCallback(IAsyncResult ar)
 {
     try
     {
         Socket client    = (Socket)ar.AsyncState;
         int    bytesSent = client.EndSend(ar);
         sendDone.Set();
     }
     catch (Exception e)
     {
         Disp.ViewOnScreen(e.ToString());
     }
 }
Ejemplo n.º 22
0
 public void CallAccept_req(NetworkMessage msg) //Czy akceptujesz takie zgłoszenie?
 {
     msg.src = myNCC.port;
     msg.dst = myNCC.calledpcc_port;
     if (NCC.flag == 0)
     {
         msg.payload = "CALL_ACCEPT_REQ,NEXT_DOMAIN=FALSE";
     }
     else if (NCC.flag == 1)
     {
         msg.payload = "CALL_ACCEPT_REQ,NEXT_DOMAIN=TRUE";
     }
     ncc.Send(msg.ToBytes());
     Disp.ViewOnScreen("[NCC -> CPCC] Call Accept - request.");
 }
Ejemplo n.º 23
0
            public void finished(Current current, Disp servant, object cookie)
            {
                lock (this)
                {
                    test(!_deactivated);
                }

                if (current.id.name.Equals("router"))
                {
                    return;
                }

                var co = (Cookie)cookie;

                test(co.message().Equals("blahblah"));
            }
Ejemplo n.º 24
0
        public void CallRequest_rsp(IPAddress src, IPAddress dst, bool p) //Możesz zrstawiac połączenie jeśli SUCCESS, nie możesz jeśli FAIL
        {
            NetworkMessage msg;

            if (p == false)
            {
                msg = new NetworkMessage(myNCC.port, myNCC.callingpcc_port, src, dst, 0, "CALL_REQUEST_RESPONSE=FAIL");
                Disp.ViewOnScreen("[NCC -> CPCC] Call Teardown - response.");
            }
            else
            {
                msg = new NetworkMessage(myNCC.port, myNCC.callingpcc_port, src, dst, 0, "CALL_REQUEST_RESPONSE=SUCCESS");
                Disp.ViewOnScreen("[NCC -> CPCC] Call Request - response.");
            }
            ncc.Send(msg.ToBytes());
        }
Ejemplo n.º 25
0
 public void ConnectionRequest_req(NetworkMessage msg, bool p) //Podajemy adresy portów pomiedzy którymi połaczenie ma być zestawione
 {
     msg.src = myNCC.port;
     msg.dst = myNCC.cc_port;
     if (p == false)
     {
         msg.payload = "CONNECTION_REQUEST=FAIL " + myNCC.realname1 + " " + myNCC.realname2 + " " + myNCC.hostcap;
     }
     else
     {
         msg.payload = "CONNECTION_REQUEST " + myNCC.realname1 + " " + myNCC.realname2 + " " + myNCC.hostcap + " " + myNCC.slots;
     }
     ncc.Send(msg.ToBytes());
     Disp.ViewOnScreen($"[NCC -> CC] Connection Request - request.");
     myNCC.slots = "";
 }
Ejemplo n.º 26
0
 public void SendData()
 {
     while (true)
     {
         foreach (var host in hosts)
         {
             //Console.WriteLine("wchodzi");
             NetworkMessage msg = new NetworkMessage(Client.name, gate, "DATASTREAM");
             nc.Send(msg.ToBytes());
             Disp.ViewOnScreen(msg.ToString());
             //AddCalledHost(host);
             //ConfirmHostDelete();
         }
         Thread.Sleep(10000);
     }
 }
Ejemplo n.º 27
0
 public void CallCoordination_rsp(NetworkMessage msg, bool p) //Przekazuje czy zezwolone polaczenie czy nie (jak nie to musi do CC i zwolnic zasoby!)
 {
     msg.src = myNCC.port;
     msg.dst = myNCC.ncc_port;
     if (p == false)
     {
         msg.payload = "CALL_COORDINATION_RSP=FALSE";
         Disp.ViewOnScreen("[NCC -> NCC] Call Coordination Teardown - response.");
     }
     else
     {
         msg.payload = "CALL_COORDINATION_RSP=TRUE";
         Disp.ViewOnScreen("[NCC -> NCC] Call Coordination - response.");
     }
     ncc.Send(msg.ToBytes());
 }
Ejemplo n.º 28
0
        //CALL TEARDOWN

        public void CallTeardown_req(NetworkMessage msg) //Czy akceptujesz zakończenie połączenia?
        {
            Disp.ViewOnScreen("[NCC -> NCC] Call Coordination Teardown - request.");
            msg.src = myNCC.port;
            msg.dst = myNCC.calledpcc_port;
            if (NCC.flag == 0)
            {
                msg.payload = "CALL_TEARDOWN_REQ,NEXT_DOMAIN=FALSE";
            }
            else if (NCC.flag == 1)
            {
                msg.payload = "CALL_TEARDOWN_REQ,NEXT_DOMAIN=TRUE";
            }
            ncc.Send(msg.ToBytes());
            Disp.ViewOnScreen("[NCC -> CPCC] Call Teardown - request.");
        }
        private void ReceiveCallback(IAsyncResult ar)
        {
            try
            {
                Socket client    = (Socket)ar.AsyncState;
                int    bytesRead = client.EndReceive(ar);

                if (bytesRead > 0)
                {
                    byte[] msg = HandleMessage(receive_buffer);
                    //Send(msg);
                    receiveDone.Set();
                }
            }
            catch (Exception e)
            {
                Disp.ViewOnScreen(e.ToString());
            }
        }
Ejemplo n.º 30
0
        void FillTables(DataTable pettycashOpInserting)
        {
            MetaDataDispatcher Disp;

            Disp = Meta.Dispatcher;

            DS.pettycashoperationview.Clear();
            for (int i = 0; i < pettycashOpInserting.Rows.Count; i++)
            {
                DataRow R = pettycashOpInserting.Rows[i];
                AddRowToTable(R, DS.pettycashoperationview, i);
            }
            MetaData Mpettycashoperationview = Disp.Get("pettycashoperationview");                     // DA RIVEDERE

            Mpettycashoperationview.DescribeColumns(DS.pettycashoperationview, "wizardinvoicedetail"); // <-- DA RIVEDERE!

            HelpForm.SetDataGrid(gridMovSpesa, DS.pettycashoperationview);

            //RicalcolaCampiCalcolati();
        }