public static ZarzadcaWatkami Instancja() { if (_instancja == null) { _instancja = new ZarzadcaWatkami(); } return(_instancja); }
void obserwujWatek() { if (_tcpAdapter.OdbierzKomende() == Komendy.POTWIERDZENIE) { ZarzadcaWatkami.Instancja().DodajObserwatora(this, _aktywnyWatek); } else { ZarzadcaWatkami.Instancja().UsunObserwatora(this); } }
void zapiszPost() { if (_zalogowany == false) //wartownik { return; } Post post = _tcpAdapter.ToPost(_tcpAdapter.OdbierzDane()); ZarzadcaWatkami.Instancja().DodajPost(_aktywnyWatek, post); _tcpAdapter.WyslijKomende(Komendy.POTWIERDZENIE); }
void nowyWatek() { if (_zalogowany == false) //wartownik { return; } string temat = Encoding.UTF8.GetString(_tcpAdapter.OdbierzDane()); ZarzadcaWatkami.Instancja().DodajWatek(temat, _login); _tcpAdapter.WyslijKomende(Komendy.POTWIERDZENIE); }
void wyslijWatek() { if (_zalogowany == false) //wartownik { return; } int index = BitConverter.ToInt32(_tcpAdapter.OdbierzDane()); _aktywnyWatek = index; Watek watek = ZarzadcaWatkami.Instancja().ZwrocWatek(index); _tcpAdapter.WyslijDane(watek); }
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 } }
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); }