Evet arkadaşlar, şimdi yayıncı abone örneğimizin uygulamasına başlayalım.
Biz de tam olarak aynı modeli uygulamak istiyoruz.
Ekranda görebileceğiniz gibi.
Veri kaynağımız olan yönlendirme tablosundan sorumlu olacak bir yayıncı iş parçacığımız olacak ve
programımızda bildirimler için yönlendirme tablosunun herhangi bir rastgele girişiyle ilgilenecek
üç abone iş parçacığımız olacak.
Doğru.
Projemizin uygulamasına başlamak için bir dosya yazarak başlayacağız.
RTM Yayıncılık.
Doğru.
Böylece ana işlev bu dosyadan başlar.
Dolayısıyla ana işlevimiz bu dosya olacaktır.
Ana işlevde görebileceğiniz gibi, yapacağımız ilk şey yayıncı iş parçacığının sahip olacağı
bir yönlendirme tablosu oluşturmaktır, değil mi?
Bir yönlendirme tablosunun yayıncı iş parçacığına ait olacağını söylediğimde, bu, yalnızca yayıncı iş parçacıklarının bu
yönlendirme tablosunun girdilerini güncelleme yetkisine sahip olduğu anlamına gelir.
Doğru.
İlk satırda görebileceğiniz gibi, yaptığım ilk şey yayıncı yönlendirme tablosunu
başlatmak.
Bir kod yazarken bunu nasıl yapacağınızı göstereceğim ve bundan sonra üç abone iş parçacığı oluşturuyorum,
değil mi?
Bu yüzden bir abone iş parçacığı oluşturma işlevi yazdım.
Bu fonksiyonun uygulanmasını tartışacağız.
Bu işlevin tek yaptığı bir abone dizisi oluşturmak, değil mi?
Ve üç abone başlığı oluşturduktan sonra nihayet bir yayıncı başlığı oluşturduğumu görebilirsiniz.
Değil mi?
Öyleyse RTM Publisher dot C dosyasının uygulanmasını tartışalım.
Ekranda RTM publisher Dot C dosyasında olduğumu görebilirsiniz ve dosyanın adı bu şekilde
adlandırılmıştır çünkü bu dosya şu anda yayıncıyı temsil etmektedir.
Dediğim gibi, ana fonksiyonla başlayalım.
Şimdi tartıştığımız şeyin aynısını yapacağız.
Yayıncı yönlendirme tablosunu başlatalım ve üç abone iş parçacığı oluşturalım.
Doğru.
Bu fonksiyonun uygulanmasını kısa bir süre sonra tartışacağız.
Ve bundan sonra, bir yayıncı başlığı oluşturalım.
Bu kadar.
Değil mi?
Ve burada sadece ana iş parçacığımızı sonlandırır veya çıkarız.
Evet.
Ana işlevde dört iş parçacığı oluşturduk, üçü abone ve biri yayıncı iş parçacığı.
Şimdi bu yayıncı yönlendirme tablosu aslında bu dosya içinde global bir değişkendir ve bu yayıncının sahip olduğu yönlendirme
tablosu olan yayıncı yönlendirme tablosunu temsil eder, Doğru mu?
Öyleyse basitçe bu yönlendirme tablosuna bir işaretçi döndüren bir API yazalım, değil mi?
Yani bu, yayıncı iş parçacığının sahip olacağı yönlendirme tablosudur.
Yani yeni bir yönlendirme tablosu oluşturduğunuzda, aslında yönlendirme tablosunu başlatan bir API sağ
IT tablosu kullanmanız gerekir, değil mi?
Bu API'nin uygulaması dot C dosyasında mevcuttur ve bu API hiçbir şey yapmaz.
Yalnızca yönlendirme tablosunu başlatır.
Doğru.
Ve şimdi ana fonksiyonda API create publisher thread'i kullandık.
Şimdi bu API'nin uygulanmasını tartışalım.
Bu API'nin görevi basitçe bir yayıncı iş parçacığı oluşturmaktır, değil mi?
Böylece yayıncı iş parçacığını aşağıdaki gibi oluşturabilirsiniz.
Müstakil modda bir yayıncı iş parçacığı oluşturacağız ve P iş parçacığını kullanarak basitçe bir iş parçacığı oluşturacağız.
Alt çizgi create API'dir ve bu, bir yayıncı iş parçacığı bağlamında yürütülecek olan yayıncı iş parçacığı
işlevidir.
Ve arkadaşlar, bu yayıncı iş parçacığı işlevinde bu yayıncı iş parçacığı işlevinde uygulayacağımız
şey, yayıncının yönlendirme tablosuna bazı rastgele girişler yüklemesine izin verelim.
Doğru.
Bu fonksiyonda yapacağımız şey, yayıncı iş parçacığımızın yönlendirme tablosuna bazı girişler ekleyeceğidir.
Dolayısıyla, yönlendirme tablosuna bir giriş eklemek için, giriş eklemek veya güncellemek üzere bir API kullanabilirsiniz.
Değil mi?
Yayıncı yönlendirme tablosuna bir işaretçi alın ve ardından bu API tarafından gerekli olan tüm giriş parametrelerini
besleyin.
Değil mi?
Yani bu API basitçe yayıncının yönlendirme tablosuna bir giriş ekler.
Yayıncı yönlendirme tablosunun yalnızca yayıncı tarafından güncellenmesi gerektiğini ve başka hiçbir iş parçacığı tarafından güncellenmemesi gerektiğini unutmayın.
Doğru.
Bu yüzden yayıncının yönlendirme tablosuna birkaç girdi daha yükleyelim ve tüm girdilerin yönlendirme tablosuna başarıyla
eklendiğini doğrulamak için yönlendirme tablosunu yazdıralım veya dökümü alalım.
Ve son olarak, yayıncının ana menüyü çağırmasına izin verin.
Sonsuz bir döngüde çalışacak ve kullanıcıya programla etkileşime girmesi için kontrol verecektir.
Değil mi?
Bu yüzden ana menüde, kullanıcılara programla etkileşime geçmeleri için belirli seçenekler sunalım.
Yani buradaki son kullanıcı hiçbir şey değil, ama bir yayıncı.
Bunu unutma.
Bu ana menünün yayıncı iş parçacığı işlevi olan bu işlevden çağrıldığını unutmayın.
Bu sadece ana menünün bir yayıncı iş parçacığı bağlamında çalıştığı anlamına gelir.
Doğru.
Yani son kullanıcı olarak siz, programın kullanıcısı bir yayıncısınız.
Bu ana menüde yapacağımız şey, bu ana menüyü sonsuz bir döngüde çalıştırmak ve kullanıcıya bazı
seçenekler sunmaktır, örneğin yönlendirme tablosuna giriş eklemek veya güncellemek ya da yönlendirme
tablosundan bir boşluğu silmek ve tüm yönlendirme tablosunu yazdırmak gibi.
Doğru.
Ve menü odaklı bir programın nasıl yazılacağını zaten biliyorsunuz.
Basitçe kullanıcıdan seçimi isteyin ve seçime bağlı olarak eylemi gerçekleştirelim.
Yani bir numaralı seçenek yönlendirme tablosuna bir girdi eklemek veya güncellemek istediğiniz anlamına geliyor, değil mi?
Dolayısıyla, kullanıcıdan yönlendirme tablosunun tam bir girişini oluşturan tüm girdileri istemeniz gerekir.
Yani, kullanıcıdan bir hedef maskesi, giden arayüz veya ağ geçidi IP adresi girmesini isteyin.
Doğru.
Ve kullanıcı gerekli tüm girdileri sağladıktan sonra, bu girdiyi yönlendirme tablosuna eklemeniz yeterlidir.
Yönlendirme tablosu girişi eklemek veya güncellemek için yine bir API kullanabilirsiniz.
Doğru.
Seçim.
İkincisi, bunu kendi başınıza uygulamanız için size bırakıyorum.
Ve üç numaralı seçenekte, tüm yönlendirme tablosunu yazdırmak için, yönlendirme tablosunu dökmek için bir API
kullanabilirsiniz.
Doğru.
Böylece ana menü işlevimizin uygulaması tamamlanmış oldu.
Bu dosyada yönlendirme tablosuna özel API'ler kullandığımızı unutmayın.
Bu nedenle, bu dosyada hash include attach yapmanız gerekir, doğru.
Ve bu dosyada henüz uygulamadığımız tek şey bu API.
Bu, abone ipliği oluşturmaktır.
Şimdilik bu API'leri devre dışı bırakalım ve programımızı derleyip çalıştıralım.
Bu nedenle, abone iş parçacığı oluşturma işlevine yapılan çağrıları yorumlarsanız, bu programı derleyip
çalıştırabilmeniz gerekir.
Bir sonraki ders videosunda, bu Create subscriber Thread API'sinin uygulanmasını tartışacağız.
Doğru.