WEBVTT

00:06.680 --> 00:11.680
Evet arkadaşlar, şimdi yayıncı abone örneğimizin uygulamasına başlayalım.

00:11.690 --> 00:14.990
Biz de tam olarak aynı modeli uygulamak istiyoruz.

00:14.990 --> 00:16.760
Ekranda görebileceğiniz gibi.

00:16.850 --> 00:22.760
Veri kaynağımız olan yönlendirme tablosundan sorumlu olacak bir yayıncı iş parçacığımız olacak ve

00:22.760 --> 00:28.910
programımızda bildirimler için yönlendirme tablosunun herhangi bir rastgele girişiyle ilgilenecek

00:28.910 --> 00:31.130
üç abone iş parçacığımız olacak.

00:31.130 --> 00:31.850
Doğru.

00:32.550 --> 00:37.270
Projemizin uygulamasına başlamak için bir dosya yazarak başlayacağız.

00:37.450 --> 00:38.730
RTM Yayıncılık.

00:39.030 --> 00:39.750
Doğru.

00:39.930 --> 00:43.320
Böylece ana işlev bu dosyadan başlar.

00:43.470 --> 00:46.770
Dolayısıyla ana işlevimiz bu dosya olacaktır.

00:46.770 --> 00:52.950
Ana işlevde görebileceğiniz gibi, yapacağımız ilk şey yayıncı iş parçacığının sahip olacağı

00:52.980 --> 00:56.940
bir yönlendirme tablosu oluşturmaktır, değil mi?

00:56.970 --> 01:02.970
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

01:02.970 --> 01:07.280
yönlendirme tablosunun girdilerini güncelleme yetkisine sahip olduğu anlamına gelir.

01:07.290 --> 01:08.010
Doğru.

01:08.800 --> 01:13.420
İlk satırda görebileceğiniz gibi, yaptığım ilk şey yayıncı yönlendirme tablosunu

01:13.420 --> 01:14.270
başlatmak.

01:14.290 --> 01:20.970
Bir kod yazarken bunu nasıl yapacağınızı göstereceğim ve bundan sonra üç abone iş parçacığı oluşturuyorum,

01:20.990 --> 01:21.630
değil mi?

01:21.640 --> 01:24.440
Bu yüzden bir abone iş parçacığı oluşturma işlevi yazdım.

01:24.460 --> 01:27.850
Bu fonksiyonun uygulanmasını tartışacağız.

01:27.850 --> 01:32.170
Bu işlevin tek yaptığı bir abone dizisi oluşturmak, değil mi?

01:32.170 --> 01:37.960
Ve üç abone başlığı oluşturduktan sonra nihayet bir yayıncı başlığı oluşturduğumu görebilirsiniz.

01:37.960 --> 01:38.770
Değil mi?

01:39.710 --> 01:43.700
Öyleyse RTM Publisher dot C dosyasının uygulanmasını tartışalım.

01:45.590 --> 01:51.770
Ekranda RTM publisher Dot C dosyasında olduğumu görebilirsiniz ve dosyanın adı bu şekilde

01:51.770 --> 01:56.690
adlandırılmıştır çünkü bu dosya şu anda yayıncıyı temsil etmektedir.

01:56.690 --> 01:59.600
Dediğim gibi, ana fonksiyonla başlayalım.

02:00.380 --> 02:03.280
Şimdi tartıştığımız şeyin aynısını yapacağız.

02:03.290 --> 02:08.420
Yayıncı yönlendirme tablosunu başlatalım ve üç abone iş parçacığı oluşturalım.

02:08.420 --> 02:09.170
Doğru.

02:09.260 --> 02:12.290
Bu fonksiyonun uygulanmasını kısa bir süre sonra tartışacağız.

02:12.290 --> 02:15.080
Ve bundan sonra, bir yayıncı başlığı oluşturalım.

02:15.110 --> 02:16.100
Bu kadar.

02:16.100 --> 02:16.790
Değil mi?

02:16.790 --> 02:20.540
Ve burada sadece ana iş parçacığımızı sonlandırır veya çıkarız.

02:20.840 --> 02:21.800
Evet.

02:21.800 --> 02:27.920
Ana işlevde dört iş parçacığı oluşturduk, üçü abone ve biri yayıncı iş parçacığı.

02:28.130 --> 02:35.000
Ş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

02:35.000 --> 02:39.260
tablosu olan yayıncı yönlendirme tablosunu temsil eder, Doğru mu?

02:39.260 --> 02:44.540
Öyleyse basitçe bu yönlendirme tablosuna bir işaretçi döndüren bir API yazalım, değil mi?

02:44.780 --> 02:48.350
Yani bu, yayıncı iş parçacığının sahip olacağı yönlendirme tablosudur.

02:48.530 --> 02:54.740
Yani yeni bir yönlendirme tablosu oluşturduğunuzda, aslında yönlendirme tablosunu başlatan bir API sağ

02:54.740 --> 02:57.260
IT tablosu kullanmanız gerekir, değil mi?

02:57.290 --> 03:03.270
Bu API'nin uygulaması dot C dosyasında mevcuttur ve bu API hiçbir şey yapmaz.

03:03.270 --> 03:05.430
Yalnızca yönlendirme tablosunu başlatır.

03:05.430 --> 03:06.000
Doğru.

03:06.360 --> 03:10.800
Ve şimdi ana fonksiyonda API create publisher thread'i kullandık.

03:10.800 --> 03:13.650
Şimdi bu API'nin uygulanmasını tartışalım.

03:13.680 --> 03:18.480
Bu API'nin görevi basitçe bir yayıncı iş parçacığı oluşturmaktır, değil mi?

03:18.570 --> 03:22.110
Böylece yayıncı iş parçacığını aşağıdaki gibi oluşturabilirsiniz.

03:22.140 --> 03:29.190
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.

03:29.190 --> 03:35.040
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ığı

03:35.040 --> 03:36.390
işlevidir.

03:36.840 --> 03:42.540
Ve arkadaşlar, bu yayıncı iş parçacığı işlevinde bu yayıncı iş parçacığı işlevinde uygulayacağımız

03:42.540 --> 03:48.150
şey, yayıncının yönlendirme tablosuna bazı rastgele girişler yüklemesine izin verelim.

03:48.150 --> 03:48.990
Doğru.

03:48.990 --> 03:57.000
Bu fonksiyonda yapacağımız şey, yayıncı iş parçacığımızın yönlendirme tablosuna bazı girişler ekleyeceğidir.

03:57.000 --> 04:02.580
Dolayısıyla, yönlendirme tablosuna bir giriş eklemek için, giriş eklemek veya güncellemek üzere bir API kullanabilirsiniz.

04:02.610 --> 04:03.180
Değil mi?

04:03.180 --> 04:09.060
Yayıncı yönlendirme tablosuna bir işaretçi alın ve ardından bu API tarafından gerekli olan tüm giriş parametrelerini

04:09.060 --> 04:10.170
besleyin.

04:10.200 --> 04:11.010
Değil mi?

04:11.010 --> 04:16.500
Yani bu API basitçe yayıncının yönlendirme tablosuna bir giriş ekler.

04:16.500 --> 04:22.230
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.

04:22.230 --> 04:23.010
Doğru.

04:23.010 --> 04:29.970
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

04:29.970 --> 04:35.250
eklendiğini doğrulamak için yönlendirme tablosunu yazdıralım veya dökümü alalım.

04:35.250 --> 04:38.820
Ve son olarak, yayıncının ana menüyü çağırmasına izin verin.

04:40.330 --> 04:45.970
Sonsuz bir döngüde çalışacak ve kullanıcıya programla etkileşime girmesi için kontrol verecektir.

04:45.970 --> 04:46.660
Değil mi?

04:47.550 --> 04:53.940
Bu yüzden ana menüde, kullanıcılara programla etkileşime geçmeleri için belirli seçenekler sunalım.

04:54.030 --> 04:57.380
Yani buradaki son kullanıcı hiçbir şey değil, ama bir yayıncı.

04:57.390 --> 04:58.770
Bunu unutma.

04:58.800 --> 05:04.310
Bu ana menünün yayıncı iş parçacığı işlevi olan bu işlevden çağrıldığını unutmayın.

05:04.320 --> 05:08.350
Bu sadece ana menünün bir yayıncı iş parçacığı bağlamında çalıştığı anlamına gelir.

05:08.370 --> 05:09.030
Doğru.

05:09.030 --> 05:14.700
Yani son kullanıcı olarak siz, programın kullanıcısı bir yayıncısınız.

05:15.120 --> 05:20.610
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ı

05:20.610 --> 05:26.640
seçenekler sunmaktır, örneğin yönlendirme tablosuna giriş eklemek veya güncellemek ya da yönlendirme

05:26.670 --> 05:31.950
tablosundan bir boşluğu silmek ve tüm yönlendirme tablosunu yazdırmak gibi.

05:31.950 --> 05:32.640
Doğru.

05:32.970 --> 05:36.360
Ve menü odaklı bir programın nasıl yazılacağını zaten biliyorsunuz.

05:36.360 --> 05:42.870
Basitçe kullanıcıdan seçimi isteyin ve seçime bağlı olarak eylemi gerçekleştirelim.

05:42.870 --> 05:49.660
Yani bir numaralı seçenek yönlendirme tablosuna bir girdi eklemek veya güncellemek istediğiniz anlamına geliyor, değil mi?

05:49.660 --> 05:57.340
Dolayısıyla, kullanıcıdan yönlendirme tablosunun tam bir girişini oluşturan tüm girdileri istemeniz gerekir.

05:57.340 --> 06:03.910
Yani, kullanıcıdan bir hedef maskesi, giden arayüz veya ağ geçidi IP adresi girmesini isteyin.

06:03.910 --> 06:04.510
Doğru.

06:05.480 --> 06:11.990
Ve kullanıcı gerekli tüm girdileri sağladıktan sonra, bu girdiyi yönlendirme tablosuna eklemeniz yeterlidir.

06:12.020 --> 06:15.950
Yönlendirme tablosu girişi eklemek veya güncellemek için yine bir API kullanabilirsiniz.

06:15.950 --> 06:16.520
Doğru.

06:18.800 --> 06:19.460
Seçim.

06:19.460 --> 06:22.580
İkincisi, bunu kendi başınıza uygulamanız için size bırakıyorum.

06:22.580 --> 06:27.730
Ve üç numaralı seçenekte, tüm yönlendirme tablosunu yazdırmak için, yönlendirme tablosunu dökmek için bir API

06:28.010 --> 06:29.090
kullanabilirsiniz.

06:29.090 --> 06:29.630
Doğru.

06:29.990 --> 06:33.560
Böylece ana menü işlevimizin uygulaması tamamlanmış oldu.

06:33.860 --> 06:39.140
Bu dosyada yönlendirme tablosuna özel API'ler kullandığımızı unutmayın.

06:39.170 --> 06:45.410
Bu nedenle, bu dosyada hash include attach yapmanız gerekir, doğru.

06:45.710 --> 06:50.270
Ve bu dosyada henüz uygulamadığımız tek şey bu API.

06:50.300 --> 06:52.130
Bu, abone ipliği oluşturmaktır.

06:52.220 --> 06:58.970
Şimdilik bu API'leri devre dışı bırakalım ve programımızı derleyip çalıştıralım.

07:01.520 --> 07:06.590
Bu nedenle, abone iş parçacığı oluşturma işlevine yapılan çağrıları yorumlarsanız, bu programı derleyip

07:06.590 --> 07:08.570
çalıştırabilmeniz gerekir.

07:08.900 --> 07:14.000
Bir sonraki ders videosunda, bu Create subscriber Thread API'sinin uygulanmasını tartışacağız.

07:14.030 --> 07:14.690
Doğru.
