示例#1
0
 public static ZarzadcaWatkami Instancja()
 {
     if (_instancja == null)
     {
         _instancja = new ZarzadcaWatkami();
     }
     return(_instancja);
 }
示例#2
0
 void obserwujWatek()
 {
     if (_tcpAdapter.OdbierzKomende() == Komendy.POTWIERDZENIE)
     {
         ZarzadcaWatkami.Instancja().DodajObserwatora(this, _aktywnyWatek);
     }
     else
     {
         ZarzadcaWatkami.Instancja().UsunObserwatora(this);
     }
 }
示例#3
0
        void zapiszPost()
        {
            if (_zalogowany == false)             //wartownik
            {
                return;
            }

            Post post = _tcpAdapter.ToPost(_tcpAdapter.OdbierzDane());

            ZarzadcaWatkami.Instancja().DodajPost(_aktywnyWatek, post);
            _tcpAdapter.WyslijKomende(Komendy.POTWIERDZENIE);
        }
示例#4
0
        void nowyWatek()
        {
            if (_zalogowany == false)             //wartownik
            {
                return;
            }

            string temat = Encoding.UTF8.GetString(_tcpAdapter.OdbierzDane());

            ZarzadcaWatkami.Instancja().DodajWatek(temat, _login);
            _tcpAdapter.WyslijKomende(Komendy.POTWIERDZENIE);
        }
示例#5
0
        void wyslijWatek()
        {
            if (_zalogowany == false)             //wartownik
            {
                return;
            }


            int index = BitConverter.ToInt32(_tcpAdapter.OdbierzDane());

            _aktywnyWatek = index;

            Watek watek = ZarzadcaWatkami.Instancja().ZwrocWatek(index);

            _tcpAdapter.WyslijDane(watek);
        }
示例#6
0
        void lista()
        {
            if (_zalogowany == false)             //wartownik
            {
                return;
            }


            if (ZarzadcaWatkami.Instancja().Count == 0)
            {
                _tcpAdapter.WyslijKomende(Komendy.NIE_POTWIERDZENIE);                 // jak nie ma wątków
                return;
            }
            _tcpAdapter.WyslijKomende(Komendy.POTWIERDZENIE);
            _tcpAdapter.WyslijDane(BitConverter.GetBytes(ZarzadcaWatkami.Instancja().Count));             // wyślij liczbę wątków
            foreach (var ele in ZarzadcaWatkami.Instancja().ToArray())
            {
                _tcpAdapter.WyslijDane(ele.ZwrocMniejszy());                 // wyślij tematy
            }
        }
示例#7
0
        public void Start()
        {
            Console.WriteLine("Nowe połączenie");

            _licznik       = new Licznik(this);
            _licznikThread = new Thread(_licznik.Start);
            _licznikThread.Start();

            while (aktywny)
            {
                if (!_tcpAdapter.DaneDostepne())
                {
                    continue;
                }
                _licznik.Reset();
                _licznik.Wstrzymaj();


                switch (_tcpAdapter.OdbierzKomende())
                {
                case WspolnyInterfejs.Komendy.LOGOWANIE:
                    logowanie();
                    break;

                case WspolnyInterfejs.Komendy.REJESTRACJA:
                    rejestracja();
                    break;

                case WspolnyInterfejs.Komendy.LISTA:
                    lista();
                    break;

                case Komendy.NOWY_WATEK:
                    nowyWatek();
                    break;

                case WspolnyInterfejs.Komendy.WYSLIJ_WATEK:
                    wyslijWatek();
                    break;

                case Komendy.ZAPISZ_POST:
                    zapiszPost();
                    break;

                case Komendy.OBSERWUJ_WATEK:
                    obserwujWatek();
                    break;

                case Komendy.UTRZYMAJ:
                    Console.WriteLine("Utrzymaj");
                    break;

                default:
                    Console.WriteLine("Default");
                    break;
                }

                _licznik.Wznow();
            }
            Console.WriteLine("Zakończono połączenie");

            _tcpAdapter.Close();
            ZarzadcaWatkami.Instancja().UsunObserwatora(this);
        }