コード例 #1
0
 public void Zaustavi()
 {
     Dnevnik.PisiSaThredom("Zaustavljanje threadova.");
     try
     {
         for (int i = 0; i < pisacZaglavlja.Length; i++)
         {
             pisacZaglavlja[i].Zaustavi();
         }
         for (int i = 0; i < citacZaglavlja.Length; i++)
         {
             citacZaglavlja[i].Zaustavi();
         }
         for (int i = 0; i < citacOglasa.Length; i++)
         {
             citacOglasa[i].Zaustavi();
         }
         //EventLogger.WriteEventInfo("Glavna obrada zaustavljena.");
         Dnevnik.PisiSaThredom("Glavna obrada zaustavljena (poslate komande za zaustavljanje.");
     }
     catch (Exception ex)
     {
         EventLogger.WriteEventError("Glavna obrada nije uspešno zaustavljena.", ex);
     }
 }
コード例 #2
0
        public GlavnaObrada()
        {
            Dnevnik.Pisi("Inicijalizacija glavne obrade");
            // Inicijalizacija liste strana zaglavlja
            procitaneStraneZaglavlja = new Common.Http.StranaLista(Properties.Settings.Default.BrojStranaZaglavlja);

            // Inicijalizacija liste strana oglasa
            procitaneStraneOglasa = new Common.Http.StranaLista(Properties.Settings.Default.BrojStranaOglasa);

            // Inicijalizacija brojaca strane zaglavlja
            brojacStraneZaglavlja = new Common.Http.Brojac();

            // inicijalizacija pisca zaglavlja
            for (int i = 0; i < pisacZaglavlja.Length; i++)
            {
                pisacZaglavlja[i] = new PisacZaglavlja(ref procitaneStraneZaglavlja, brojacStraneZaglavlja, i);
            }

            // inicijalizacija citaca zaglavlja
            for (int i = 0; i < citacZaglavlja.Length; i++)
            {
                citacZaglavlja[i] = new CitacZaglavlja(ref procitaneStraneZaglavlja, ref procitaneStraneOglasa, i);
            }

            // inicijalizacija citaca oglasa
            for (int i = 0; i < citacOglasa.Length; i++)
            {
                citacOglasa[i] = new CitacOglasa(ref procitaneStraneOglasa, i);
            }

            //EventLogger.WriteEventInfo("Glavna obrada inicijalizovana.");
        }
コード例 #3
0
        public ActionResult Zabiljeska(int?idpr)
        {
            Prakse p = db.prakse.Find(idpr);

            if (DateTime.Now.Date < p.datumPocetka || DateTime.Now.Date > p.datumKraja)
            {
                return(Content("Zabilješke se mogu upisivati samo tokom trajanja prakse."));
            }
            Dnevnik d = null;

            try
            {
                DateTime n = DateTime.Now.Date;
                d = db.dnevnik.Single(x => x.idpraksa == idpr && x.datum == n);
            }
            catch
            {
                d = new Dnevnik()
                {
                    idpraksa   = (int)idpr,
                    zabiljeska = "",
                    datum      = DateTime.Now.Date
                };
                db.dnevnik.Add(d);
                db.SaveChanges();
            }
            return(View(d));
        }
コード例 #4
0
 protected override void RadiObradu()
 {
     while (radi)
     {
         StranaOglasa stranaOglasa = procitaneStrane.Uzmi() as StranaOglasa;
         if (stranaOglasa != null)
         {
             Common.Model.Vehicle.Automobile auto = null;
             try
             {
                 if (stranaOglasa.Procitaj())
                 {
                     auto = stranaOglasa.Automobil;
                     if (auto != null)
                     {
                         autoDB.Save(auto);
                         Dnevnik.PisiSaImenomThreda("Dodat oglas u bazu: " + auto.ToString());
                     }
                 }
                 else
                 {
                     Dnevnik.PisiSaThredomGreska("Nisam uspeo da pročitam stranu. URL: " + stranaOglasa.Adresa);
                 }
             }
             catch (Exception ex)
             {
                 EventLogger.WriteEventError(string.Format("Nisam uspeo da dodam automobil (br.ogl.{0}) u bazu.\nURL: {1}", auto.BrojOglasa, stranaOglasa.Adresa), ex);
             }
         }
         else
         {
             EventLogger.WriteEventWarning("Dobijena null vrednost za stranu iz liste procitanih strana. Proveri zasto.");
         }
     }
 }
コード例 #5
0
 public void Stop()
 {
     Dnevnik.PisiSaImenomThreda("Zaustavljanje threadova.");
     try
     {
         for (int i = 0; i < pisacZaglavlja.Length; i++)
         {
             pisacZaglavlja[i].Zaustavi();
         }
         for (int i = 0; i < citacZaglavlja.Length; i++)
         {
             citacZaglavlja[i].Zaustavi();
         }
         for (int i = 0; i < citacOglasa.Length; i++)
         {
             citacOglasa[i].Zaustavi();
         }
         Procode.PolovniAutomobili.Data.Provider.DataInstance.Data.Close();
         Dnevnik.PisiSaImenomThreda("Glavna obrada zaustavljena. Poslate komande za zaustavljanje.");
     }
     catch (Exception ex)
     {
         EventLogger.WriteEventError("Glavna obrada nije uspešno zaustavljena.", ex);
     }
 }
コード例 #6
0
        public GlavnaObrada(Data.DbContext dbContext)
        {
            Dnevnik.Pisi("Inicijalizacija glavne obrade");
            // Inicijalizacija liste strana zaglavlja
            procitaneStraneZaglavlja = new Common.Http.ListaStrana(Properties.Settings.Default.BrojStranaZaglavlja);

            // Inicijalizacija liste strana oglasa
            procitaneStraneOglasa = new Common.Http.ListaStrana(Properties.Settings.Default.BrojStranaOglasa);

            // Inicijalizacija brojaca strane zaglavlja
            brojacStraneZaglavlja = new Common.Http.Brojac();

            // BarijeraZaPisce
            barijera = new BarijeraZaPisce(pisacZaglavlja.Length);

            // inicijalizacija pisca zaglavlja
            for (int i = 0; i < pisacZaglavlja.Length; i++)
            {
                pisacZaglavlja[i] = new PisacZaglavlja(ref procitaneStraneZaglavlja, brojacStraneZaglavlja, i, ref barijera);
            }

            // inicijalizacija citaca zaglavlja
            for (int i = 0; i < citacZaglavlja.Length; i++)
            {
                citacZaglavlja[i] = new CitacZaglavlja(ref procitaneStraneZaglavlja, ref procitaneStraneOglasa, i, brojacStraneZaglavlja);
            }

            // inicijalizacija citaca oglasa
            for (int i = 0; i < citacOglasa.Length; i++)
            {
                citacOglasa[i] = new AdReader(dbContext, ref procitaneStraneOglasa, i);
            }

            //EventLogger.WriteEventInfo("Glavna obrada inicijalizovana.");
        }
コード例 #7
0
        public Strana Uzmi()
        {
            Strana s = null;

            lock (lokerListe)
            {
                while (Lista.Count == 0)
                {
                    lock (lokerRadi)
                    {
                        if (!radi)
                        {
                            return(null);
                        }
                    }
                    Dnevnik.PisiSaImenomThreda("Uspavan. Lista je prazna. Elemenata " + Lista.Count + ".");
                    Monitor.Wait(lokerListe);
                    Dnevnik.PisiSaImenomThreda("Probuđen. Lista je bila prazna. Elemenata " + Lista.Count + ".");
                }
                s = (Strana)Lista.Dequeue();
                switch (Common.Korisno.Korisno.disciplina)
                {
                case Common.Korisno.Korisno.Disciplina.dPulse:
                    Dnevnik.PisiSaImenomThreda("Budim sledećeg. Uzeo element. Elemenata " + Lista.Count + ".");
                    Monitor.Pulse(lokerListe);
                    break;

                case Common.Korisno.Korisno.Disciplina.dPulseAll:
                    Dnevnik.PisiSaImenomThreda("Budim sve. Uzeo element. Elemenata " + Lista.Count + ".");
                    Monitor.PulseAll(lokerListe);
                    break;
                }
                return(s);
            }
        }
コード例 #8
0
        public void Dodaj(Strana strana)
        {
            lock (lokerListe)
            {
                while (Lista.Count == velicina) // provera da li je lista puna
                {
                    lock (lokerRadi)
                    {
                        if (!radi)
                        {
                            return;
                        }
                    }
                    Dnevnik.PisiSaImenomThreda("Uspavan. Lista puna. Elemenata " + Lista.Count + ".");
                    Monitor.Wait(lokerListe);
                    Dnevnik.PisiSaImenomThreda("Probuđen. Lista je bila puna. Elemenata " + Lista.Count + ".");
                }
                Lista.Enqueue(strana);
                switch (Common.Korisno.Korisno.disciplina)
                {
                case Common.Korisno.Korisno.Disciplina.dPulse:
                    Dnevnik.PisiSaImenomThreda("Budim slecećeg. Dodao element. Elemenata " + Lista.Count + ".");
                    Monitor.Pulse(lokerListe);
                    break;

                case Common.Korisno.Korisno.Disciplina.dPulseAll:
                    Dnevnik.PisiSaImenomThreda("Budim sve. Dodao element. Elemenata " + Lista.Count + ".");
                    Monitor.PulseAll(lokerListe);
                    break;
                }
            }
        }
コード例 #9
0
 protected override void RadiObradu()
 {
     while (radi)
     {
         Strana strana = procitaneStrane.Uzmi(typeof(StranaZaglavlja).Name);
         if (strana != null)
         {
             List <string> adreseOglasa = strana.DajAdreseOglasa();
             if (adreseOglasa != null)
             {
                 foreach (string adresa in adreseOglasa)
                 {
                     Strana stranaOglasa = new StranaOglasa(adresa);
                     procitaneStraneOglasa.Dodaj(stranaOglasa);
                     if (!radi)
                     {
                         return;
                     }
                 }
                 Dnevnik.PisiSaThredom("Obrađeno je zaglavlje: " + strana.Adresa);
             }
             else
             {
                 Dnevnik.PisiSaThredomGreska("Nije obrađena strana zaglavlja: " + strana.Adresa);
             }
         }
     }
 }
コード例 #10
0
        private void Obrada()
        {
            Dnevnik.PisiSaImenomThreda("Obrada pokrenuta.");
            try
            {
                while (radi)
                {
                    ProcitajZaglavlja();

                    // malo logovanja
                    string porukaOZavrsetku = String.Format("Thread {0} je završio sa dohvatanjem zaglavlja. Čekam da završe ostali pisci zaglavlja.", Pisac.Name);
                    EventLogger.WriteEventInfo(porukaOZavrsetku);
                    Dnevnik.PisiSaImenomThreda(porukaOZavrsetku);

                    // sinhronizacija na barijeri
                    if (barijera.PisacZaglavljaZavrsio() == 0)
                    {
                        brojacStranaZaglavlja.Ponisti();
                    }

                    /*if (Common.BrojacPisacaZaglavlja.BrojAktivnihPisacaZaglavlja == 0)
                     * {
                     *  brojacStranaZaglavlja.Ponisti();
                     * }*/
                }
            }
            catch (Exception ex)
            {
                EventLogger.WriteEventError("Greska pri pokretanju obrade zaglavlja", ex);
            }
            Dnevnik.PisiSaImenomThreda("Obrada završena.");
            Dnevnik.Isprazni();
        }
コード例 #11
0
ファイル: ControlPanel.cs プロジェクト: TheJakov/ActiveStore
        private void btnDnevnik_Click(object sender, EventArgs e)
        {
            Dnevnik frmDnevnik = new Dnevnik();

            this.Hide();
            frmDnevnik.ShowDialog();
            this.Close();
        }
コード例 #12
0
        public ActionResult Zabiljeska([Bind(Include = "iddnevnik,zabiljeska")] Dnevnik d)
        {
            Dnevnik n = db.dnevnik.Find(d.iddnevnik);

            n.zabiljeska      = d.zabiljeska;
            db.Entry(n).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Edit"));
        }
コード例 #13
0
ファイル: Komunikacija.cs プロジェクト: acanrt9216/ZavrsniRad
        public int sacuvajDnevnikRada(Dnevnik d)
        {
            TransferKlasa transfer = new TransferKlasa();

            transfer.Operacija       = Operacije.sacuvajDnevnikRada;
            transfer.TransferObjekat = d;
            formater.Serialize(tok, transfer);

            transfer = formater.Deserialize(tok) as TransferKlasa;
            return((int)transfer.Rezultat);
        }
コード例 #14
0
ファイル: Komunikacija.cs プロジェクト: acanrt9216/ZavrsniRad
        public int obrisiDnevnik(Dnevnik d)
        {
            TransferKlasa transfer = new TransferKlasa();

            transfer.Operacija       = Operacije.obrisiDnevnik;
            transfer.TransferObjekat = d;
            formater.Serialize(tok, transfer);

            transfer = formater.Deserialize(tok) as TransferKlasa;
            return(transfer.Broj);
        }
コード例 #15
0
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     this.Title = r.Ime + " " + r.Prezime;
     tpPonedeljak.Visibility      = Visibility.Hidden;
     tpUtorak.Visibility          = Visibility.Hidden;
     tpSreda.Visibility           = Visibility.Hidden;
     tpCetvrtak.Visibility        = Visibility.Hidden;
     tpPetak.Visibility           = Visibility.Hidden;
     btnSacuvajDnevnik.Visibility = Visibility.Hidden;
     d        = new Dnevnik();
     d.Radnik = r;
 }
コード例 #16
0
        protected override void OnStop()
        {
            obrada.Stop();
            obrada = null;

            string poruka = "Servis je zaustavljen.";

            EventLogger.WriteEventInfo(poruka);
            Dnevnik.PisiSaImenomThreda(poruka);

            Dnevnik.Isprazni();
            base.OnStop();
        }
コード例 #17
0
 /// <summary>
 /// Starter procedura za Thread. Ona poziva proceduru RadiObradu u kojoj se izvrsava petlja obrade.
 /// </summary>
 private void Obrada()
 {
     Dnevnik.PisiSaImenomThreda("Obrada pokrenuta.");
     try
     {
         RadiObradu();
     }
     catch (Exception ex)
     {
         Common.EventLogger.WriteEventError("Greska u RadiObradu().", ex);
     }
     Dnevnik.PisiSaThredom("Obrada završena.", true);
 }
コード例 #18
0
 public void DodajDB(Automobil automobil, string threadName)
 {
     lock (lokerListeAutomobila)
     {
         TimeSpan ts = DateTime.Now.Subtract(vremeSnimanja);
         if (ts.Minutes > 5 && Lista.Count > 0)
         {
             SnimiCSV("c:\\temp\\" + threadName + "_" + DateTime.Now.ToString().Replace(":", "_") + ".csv");
             vremeSnimanja = DateTime.Now;
             Dnevnik.Pisi("Snimljen CSV." + threadName);
         }
         Lista.Add(automobil);
     }
 }
コード例 #19
0
 public void DodajMem(Automobile automobil, string threadName)
 {
     lock (lokerListeAutomobila)
     {
         Lista.Add(automobil);
         TimeSpan ts = DateTime.Now.Subtract(vremeSnimanja);
         if (ts.Minutes >= limitSnimanjeMinuti && Lista.Count >= limitSnimanjeRedovi)
         {
             SnimiCSV("c:\\temp\\" + threadName + "_" + DateTime.Now.ToString().Replace(":", "_") + ".csv");
             vremeSnimanja = DateTime.Now;
             Dnevnik.PisiSaImenomThreda("Snimljen CSV.");
         }
     }
 }
コード例 #20
0
 public void NeRadi(string koJeZvao)
 {
     lock (lokerRadi)
     {
         if (radi)
         {
             radi = false;
             lock (lokerListe)
             {
                 Dnevnik.PisiSaImenomThreda(string.Format("Budim sve! (zaustavljanje-zaglavlja) /{0}/", koJeZvao));
                 Monitor.PulseAll(lokerListe);
             }
         }
     }
 }
コード例 #21
0
 private void Obrada()
 {
     Dnevnik.PisiSaThredom("Obrada pokrenuta.");
     try
     {
         while (radi)
         {
             ProcitajZaglavlja();
         }
     }
     catch (Exception ex)
     {
         EventLogger.WriteEventError("Greska pri pokretanju obrade zaglavlja", ex);
     }
     Dnevnik.PisiSaThredom("Obrada završena.");
     Dnevnik.Isprazni();
 }
コード例 #22
0
        private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Dnevnik dnevnik = dataGrid.SelectedItem as Dnevnik;

            if (dnevnik == null)
            {
                dataGrid.ItemsSource = k.vratiDnevnikeZaSefa(r);
            }
            else
            {
                tbRadnik.Text     = Convert.ToString(dnevnik.Radnik);
                tbPonedeljak.Text = dnevnik.Ponedeljak;
                tbUtorak.Text     = dnevnik.Utorak;
                tbSreda.Text      = dnevnik.Sreda;
                tbCetvrtak.Text   = dnevnik.Cetvrtak;
                tbPetak.Text      = dnevnik.Petak;
            }
        }
コード例 #23
0
 public void NeRadi()
 {
     lock (lokerRadi)
     {
         if (radi)
         {
             radi = false;
             lock (lokerListeStranaZaglavlja)
             {
                 Dnevnik.PisiSaThredom("Budim sve! (zaustavljanje-zaglavlja)");
                 Monitor.PulseAll(lokerListeStranaZaglavlja);
             }
             lock (lokerListeStranaOglasa)
             {
                 Dnevnik.PisiSaThredom("Budim sve! (zaustavljanje-oglasi)");
                 Monitor.PulseAll(lokerListeStranaOglasa);
             }
         }
     }
 }
コード例 #24
0
        protected override void RadiObradu()
        {
            AutomobiliDBQueue red = new AutomobiliDBQueue();

            while (radi)
            {
                Strana strana = procitaneStrane.Uzmi(typeof(StranaOglasa).Name);
                if (strana != null)
                {
                    if (strana is StranaOglasa)
                    {
                        try
                        {
                            if (strana.Procitaj())
                            {
                                Common.Vozilo.Automobil auto = ((StranaOglasa)strana).Automobil;
                                if (auto != null)
                                {
                                    autoDB.Snimi(auto); // upis u bazu
                                    //autoDB.Snimi2(auto); // upis u bazu
                                    //red.Dodaj(auto);
                                    Dnevnik.PisiSaThredom("Dodat oglas u bazu: " + auto.ToString());
                                }
                            }
                            else
                            {
                                Dnevnik.PisiSaThredomGreska("Nisam uspeo da pročitam stranu. URL: " + strana.Adresa);
                            }
                        }
                        catch (Exception ex)
                        {
                            Common.Korisno.Korisno.LogujGresku("Nisam uspeo da dodam automobil u bazu. URL: " + strana.Adresa, ex);
                        }
                    }
                }
            }
            red.Snimi();
        }
コード例 #25
0
        private void BtnPotvrdiDnevnik_Click(object sender, RoutedEventArgs e)
        {
            Dnevnik dnevnik = dataGrid.SelectedItem as Dnevnik;

            int obrisan = k.obrisiDnevnik(dnevnik);

            if (obrisan == 0)
            {
                MessageBox.Show("Neuspesna potvrda dnevnika!");
                return;
            }
            else
            {
                MessageBox.Show("Uspesno potvrdjen dnevnik!");
            }
            dataGrid.ItemsSource = k.vratiDnevnikeZaSefa(r);
            tbRadnik.Text        = "";
            tbPonedeljak.Text    = "";
            tbUtorak.Text        = "";
            tbSreda.Text         = "";
            tbCetvrtak.Text      = "";
            tbPetak.Text         = "";
        }
コード例 #26
0
        protected override void OnStart(string[] args)
        {
            base.OnStart(args); // Da li je ovo potrebno?
            //pozovi thread
            obrada = new GlavnaObrada(null);
            try
            {
                string poruka = "Pokrecem servis.";
                //EventLogger.WriteEventInfo(poruka);
                Dnevnik.PisiSaImenomThreda(poruka);

                obrada.Start();

                poruka = "Servis je pokrenut.\n" + obrada.ToString();
                EventLogger.WriteEventInfo(poruka);
                Dnevnik.PisiSaImenomThreda(poruka);
            }
            catch (Exception ex)
            {
                string poruka = "Nisam uspeo da pokrenem servis.";
                EventLogger.WriteEventError(poruka, ex);
                Dnevnik.PisiSaThredomGreska(poruka);
            }
        }
コード例 #27
0
 protected override void RadiObradu()
 {
     while (radi)
     {
         Strana strana = procitaneStrane.Uzmi(); // base property, strane zaglavlja.
         //Console.WriteLine(strana.Adresa); //
         if (strana != null)
         {
             List <string> adreseOglasa = strana.DajAdreseOglasa();
             if (adreseOglasa != null)
             {
                 if (adreseOglasa.Count != 0)
                 {
                     foreach (string adresa in adreseOglasa)
                     {
                         Strana stranaOglasa = new StranaOglasa(adresa);
                         procitaneStraneOglasa.Dodaj(stranaOglasa);
                         if (!radi)
                         {
                             return;
                         }
                     }
                     Dnevnik.PisiSaImenomThreda("Obrađeno je zaglavlje: " + strana.Adresa);
                 }
                 else
                 {
                     brojacStranaZaglavlja.Ponisti();
                 }
             }
             else
             {
                 Dnevnik.PisiSaThredomGreska("Nije obrađena strana zaglavlja: " + strana.Adresa);
             }
         }
     }
 }
コード例 #28
0
        private void ProcitajZaglavlja()
        {
            Common.BrojacPisacaZaglavlja.UvecajBrojAktivnihPisacaZaglavlja();
            uint   i;
            string adresa;

            i = brojac.Sledeci();
            try
            {
                adresa = Zaglavlje(i);
                Common.Http.Strana strana = new Common.Http.StranaZaglavlja(adresa);
                while (strana.Procitaj())
                {
                    procitaneStrane.Dodaj(strana);  // dodaje u deljenu listu u memoriju
                    if (!radi)
                    {
                        return;
                    }
                    i      = brojac.Sledeci();
                    adresa = Zaglavlje(i);
                    strana = new Common.Http.StranaZaglavlja(adresa);
                }
                Dnevnik.PisiSaThredom("Više nema zaglavlja za čitanje.");
                brojac.Ponisti();   // ponistavam brojac da krene iz pocetka
            }
            catch (Exception ex)
            {
                string porukaGreske = "Citac zaglavlja nije uspesno zavrsio.";
                EventLogger.WriteEventError(porukaGreske, ex);
                Dnevnik.PisiSaThredom(porukaGreske);
            }
            finally
            {
                Common.BrojacPisacaZaglavlja.SmanjiBrojAktivnihPisacaZaglavlja();
            }
        }
コード例 #29
0
 public void Start()
 {
     Dnevnik.Pisi("Pokretanje threadova.");
     try
     {
         for (int i = 0; i < pisacZaglavlja.Length; i++)
         {
             pisacZaglavlja[i].Pokreni();
         }
         for (int i = 0; i < citacZaglavlja.Length; i++)
         {
             citacZaglavlja[i].Pokreni();
         }
         for (int i = 0; i < citacOglasa.Length; i++)
         {
             citacOglasa[i].Pokreni();
         }
         //EventLogger.WriteEventInfo(string.Format("Glavna obrada pokrenuta. Pokrenuto je \n\t{0} pisaca zaglavlja,\n\t{1} citaca zaglavlja pokusaj\n\t{2} citaca oglasa.\nVerzija .Net je {3}.", pisacZaglavlja.Length, citacZaglavlja.Length, citacOglasa.Length, Environment.Version.ToString()));
     }
     catch (Exception ex)
     {
         EventLogger.WriteEventError("Glavna obrada nije uspešno pokrenuta.", ex);
     }
 }
コード例 #30
0
        public void Dodaj(Strana strana)
        {
            if (strana is StranaZaglavlja) // ako je strana zaglavlja
            {
                lock (lokerListe)
                {
                    while (Lista.Count == velicina) // provera da li je lista puna
                    {
                        lock (lokerRadi)
                        {
                            if (!radi)
                            {
                                return;
                            }
                        }
                        Dnevnik.PisiSaThredom("Uspavan (dodavanje). Br. el. " + Lista.Count);
                        Monitor.Wait(lokerListe);
                        Dnevnik.PisiSaThredom("Probuđen (dodavanje). Br. el. " + Lista.Count);
                    }
                    Lista.Enqueue(strana);
                    switch (disciplina)
                    {
                    case Disciplina.dPulse:
                        Dnevnik.PisiSaThredom("Budim slecećeg (dodavanje)! Br. el. " + Lista.Count);
                        Monitor.Pulse(lokerListe);
                        break;

                    case Disciplina.dPulseAll:
                        Dnevnik.PisiSaThredom("Budim sve (dodavanje)! Br. el. " + Lista.Count);
                        Monitor.PulseAll(lokerListe);
                        break;
                    }
                }
            }
            else if (strana is StranaOglasa)// ako je Strana oglasa
            {
                lock (lokerListeStranaOglasa)
                {
                    while (Lista.Count == velicina)
                    {
                        lock (lokerRadi)
                        {
                            if (!radi)
                            {
                                return;
                            }
                        }
                        Dnevnik.PisiSaThredom("Uspavan (dodavanje). Br. el. " + Lista.Count);
                        Monitor.Wait(lokerListeStranaOglasa);
                        Dnevnik.PisiSaThredom("Probuđen (dodavanje). Br. el. " + Lista.Count);
                    }
                    Lista.Enqueue(strana);
                    switch (disciplina)
                    {
                    case Disciplina.dPulse:
                        Dnevnik.PisiSaThredom("Budim sledećeg (dodavanje)! Br. el. " + Lista.Count);
                        Monitor.Pulse(lokerListeStranaOglasa);
                        break;

                    case Disciplina.dPulseAll:
                        Dnevnik.PisiSaThredom("Budim sve (dodavanje)! Br. el. " + Lista.Count);
                        Monitor.PulseAll(lokerListeStranaOglasa);
                        break;
                    }
                }
            }
            else // ako je nesto drugo baci exception
            {
                throw new Exception("Poslata strana nije ni strana oglasa ni strana zaglavlja.");
            }
        }