WEBVTT

00:06.350 --> 00:13.490
Şimdi Publisher C'nin uygulamasını tamamladığımıza göre, şimdi devam edelim ve abonelerimizi

00:13.490 --> 00:15.610
uygulayalım.

00:15.620 --> 00:21.040
Bu nedenle aboneler, iş parçacıklı abone nokta C dosyasında uygulanacaktır.

00:21.050 --> 00:26.480
Bu dosyanın yapısının uygulamamız gereken üç fonksiyondan oluştuğunu görebilirsiniz.

00:26.510 --> 00:30.080
İlk işlev abone iş parçacığı oluşturmaktır, değil mi?

00:30.080 --> 00:35.870
Ve bu fonksiyonun main fonksiyonu tarafından çağrılacağını zaten görmüştük.

00:35.870 --> 00:40.190
Ve bu işlevin amacı bir abone dizisi oluşturmak, değil mi?

00:41.280 --> 00:43.770
Abone iş parçacığı işlevinde.

00:44.040 --> 00:49.890
Tek yapmamız gereken, abonemizin yayıncının sahip olduğu yönlendirme tablosunun bazı rastgele girişlerine

00:49.890 --> 00:51.870
abone olmasını sağlamaktır.

00:51.900 --> 00:52.590
Doğru.

00:52.590 --> 00:59.100
Dolayısıyla, abone iş parçacığı işlevi olan bu işlevde, abonemizin yayıncının yönlendirme tablosunun bazı

00:59.100 --> 01:02.220
girdileriyle abone olmasına izin vereceğiz.

01:02.220 --> 01:07.300
Ve görebileceğiniz üçüncü işlev test alt çizgi CB yani test geri arama işlevidir.

01:07.320 --> 01:14.190
Şimdi bu aboneye ait olan fonksiyondur ve bu fonksiyon yayıncı bildirim zincirleri tarafından aboneye yönlendirme

01:14.220 --> 01:20.320
tablosu girişinin herhangi bir güncellemesini bildirmek için çağrılacaktır.

01:20.340 --> 01:24.810
Böylece aboneler test geri arama işlevi olan bu işlev aracılığıyla bilgilendirilir.

01:24.810 --> 01:25.530
Doğru.

01:25.980 --> 01:32.370
Dolayısıyla, yayıncının abonelere güncellemeler hakkında bildirim göndermek için bir araç olarak kullandığı

01:32.370 --> 01:33.870
bu geri arama işlevidir.

01:35.770 --> 01:38.590
Öyleyse iş parçacıklı abone C'yi uygulayalım.

01:40.220 --> 01:44.120
Öncelikle, dosya iş parçacıklı abonelerin uygulanması ile başlayalım.

01:44.630 --> 01:52.130
Bu dosyada ekli olan yönlendirme tablosu API'sini eklemeniz gerektiğini görebilirsiniz ve bu işlevi RTM yayıncıları

01:52.130 --> 01:58.670
dosyasından içe aktarabilirsiniz çünkü abonenin güncellemeler için girişlere abone olmak için

01:58.700 --> 02:03.740
yayıncının sahip olduğu yönlendirme tablosuna erişmesi gerekir.

02:03.740 --> 02:04.490
Doğru.

02:04.610 --> 02:07.340
Yani bu, uygulayacağımız bir işlevdir.

02:07.340 --> 02:13.430
Bu fonksiyonun argümanının istemci kimliğini temsil eden bir tamsayı olduğunu görebilirsiniz, bu nedenle her abone iş parçacığı

02:13.430 --> 02:16.010
bu sayı ile benzersiz bir şekilde tanımlanır.

02:16.010 --> 02:18.050
Bu müşteri kimliği, değil mi?

02:18.810 --> 02:24.480
Dolayısıyla bu fonksiyonda tek yapmamız gereken abone iş parçacığı adı verilen bir iş parçacığı oluşturmaktır.

02:24.510 --> 02:30.150
Yine, müstakil modda bir abone iş parçacığı oluşturacağız ve bir abone iş parçacığı oluşturmak için basitçe

02:30.150 --> 02:33.420
bir API iş parçacığı, alt çizgi oluşturma çağıracağız.

02:33.540 --> 02:38.880
Şimdi bu, bir abone iş parçacığı bağlamında çağrılacak olan bir abone iş parçacığı işlevidir.

02:39.600 --> 02:44.010
Evet arkadaşlar, şimdi abone iş parçacığı işlevinin uygulanmasını tartışalım.

02:45.080 --> 02:50.720
Dolayısıyla, bu abone iş parçacığı işlevinde, bir abone iş parçacığının yayıncının yönlendirme tablosunun bazı rastgele

02:50.720 --> 02:52.870
girdilerine abone olmasına izin vereceğiz.

02:52.880 --> 02:53.540
Doğru.

02:53.540 --> 02:55.220
Peki bunu nasıl yapabiliriz?

02:56.000 --> 03:01.580
Bu yüzden öncelikle yönlendirme tablosunun anahtarlarını temsil eden veri yapısını kullanmanız gerekir.

03:01.580 --> 03:08.480
Dolayısıyla, giriş anahtarlarımız dot h başlık dosyasında tanımlanan bir veri yapısıdır ve basitçe bir yönlendirme tablosu

03:08.480 --> 03:11.720
girişinin hedef ve maske değerinin bir kombinasyonudur.

03:11.720 --> 03:12.470
Değil mi?

03:12.860 --> 03:19.160
Abone, hangi yönlendirme tablosu girdisine abone olmak istediğini belirtmek için bir anahtara ihtiyaç duyar.

03:21.160 --> 03:24.550
Ardından bu anahtarları bazı rastgele değerlerle doldurun.

03:24.580 --> 03:31.000
Diyelim ki 122'yi seçtim. 1 . 1. 1 ve seçtiğim maske değeri 32'dir.

03:31.030 --> 03:31.720
Doğru.

03:31.720 --> 03:36.520
Ve abone bildirim için API'yi veya tablo kaydını çağırır.

03:36.550 --> 03:39.160
Şimdi, bu API'yi henüz uygulamadık.

03:39.190 --> 03:43.300
Bu API, T veya C'nin hiçbir yerinde mevcut değildir.

03:43.540 --> 03:46.510
Bu API'nin uygulanmasını henüz tartışmadık.

03:46.540 --> 03:50.290
Bu yüzden şimdilik bu API'nin çağrılmasını yorumlayabilirsiniz.

03:50.320 --> 03:51.160
Değil mi?

03:51.190 --> 03:56.050
Bu API'nin uygulanmasını bir sonraki ders videosunda tartışacağız, ancak burada

03:56.050 --> 04:04.030
abonenin yayıncının sahip olduğu bir yönlendirme tablosunun belirli bir yönlendirme tablosu girişine kaydolmak için bu API'yi kullandığını

04:04.030 --> 04:06.100
görebilirsiniz.

04:06.100 --> 04:10.060
Yani ilk argüman yayıncıların yönlendirme tablosunun işaretçisidir.

04:10.090 --> 04:17.050
İkinci bağımsız değişken, abonenin ilgilendiği yönlendirme tablosundaki benzersiz bir girişi tanımlar.

04:17.320 --> 04:19.720
Üçüncü bağımsız değişken anahtarın boyutudur.

04:19.750 --> 04:24.290
Yani buradaki anahtarın boyutu hiçbir şey değildir, sadece bu veri yapısının boyutudur.

04:24.650 --> 04:31.640
Üçüncü bağımsız değişken, yayıncının aboneye güncellemeleri bildirmek için çağıracağı geri

04:31.640 --> 04:34.520
arama işlevine bir işaretçidir.

04:34.550 --> 04:37.850
Bu fonksiyonun uygulanmasını kısa bir süre sonra tartışacağız.

04:38.210 --> 04:42.060
Son bağımsız değişken ise abone tanımlayıcısıdır.

04:42.080 --> 04:48.250
Dediğim gibi, her abone dizisi bir tamsayı değeriyle benzersiz bir şekilde tanımlanır, değil mi?

04:48.260 --> 04:54.260
Bu tamsayı değeri, yayıncının hangi abonenin hangi yönlendirme tablosu girdilerine abone olduğunu belirlemesine

04:54.260 --> 04:55.970
yardımcı olacaktır.

04:55.970 --> 04:56.660
Doğru.

04:58.270 --> 05:03.940
Eğer iş parçacığı alt çizgi oluşturma API'sinden fark ettiyseniz, istemci kimliğini abone iş parçacığı işlevine bir

05:03.940 --> 05:05.470
argüman olarak aktarmıştık.

05:05.470 --> 05:06.070
Doğru.

05:06.460 --> 05:12.490
Yani aktardığınız değer bu değerdir ve bu değer hiçbir şey değildir, ancak sadece işaretsiz bir tamsayı değeridir.

05:12.490 --> 05:13.030
Değil mi?

05:13.650 --> 05:19.740
Böylece, yayıncı bu belirli girişi güncellediğinde veya abonenin bilgilendirilmesi gerektiğinde, abonemizi

05:19.740 --> 05:23.740
yönlendirme tablosunun bir girişine kaydolma tehdidi haline getirdik.

05:23.760 --> 05:28.800
Öyleyse abonemizi yönlendirme tablosunun daha fazla girişine abone yapalım.

05:28.800 --> 05:32.460
İki kayıt daha yapalım, tamam mı?

05:32.460 --> 05:38.430
Ve son olarak, abone iş parçacığınızın sonlanmaması için POS sistem çağrısını çağırın.

05:38.430 --> 05:39.060
Değil mi?

05:39.090 --> 05:43.800
Abone iş parçacığımızın bu POS sistem çağrısında durmasını sağlayalım.

05:44.480 --> 05:50.240
Bu nedenle, programı derlemek için, bildirim için r t table register olan bu fonksiyona yapılan çağrıyı

05:50.270 --> 05:52.410
yorumladığınızdan emin olun.

05:52.430 --> 05:56.030
Bu fonksiyonun uygulanmasını bir sonraki ders videosunda tartışacağız.

05:56.450 --> 06:02.660
Ancak şimdi, yayıncı tarafından abonelere bildirimde bulunmak için kullanılan işlev olan bu test geri arama

06:02.660 --> 06:03.980
işlevine geliyoruz.

06:06.680 --> 06:11.870
Ve son olarak, bu test geri arama işlevi aboneye ait olan ancak bildirim zincirleri aracılığıyla

06:11.870 --> 06:14.980
yayıncı tarafından çağrılacak bir işlevdir.

06:14.990 --> 06:17.840
Şimdi bu fonksiyonun uygulanmasını tartışalım.

06:17.840 --> 06:21.470
Öncelikle, bu fonksiyonun prototipi veya imzası ne olmalıdır?

06:21.470 --> 06:27.980
Dolayısıyla, bu işlevin prototipi veya imzası, bildirim zincirleri tarafından tanımlanan geri arama

06:27.980 --> 06:31.190
işlevlerinin prototipiyle eşleşmelidir.

06:31.190 --> 06:36.140
Dolayısıyla, notify dot h başlık dosyasında bu işlev işaretçisini belirtmiş olmanız gerekir.

06:36.140 --> 06:36.890
Değil mi?

06:37.520 --> 06:42.950
Dolayısıyla, test geri arama işlevinin prototipi bu işlev işaretçisi ile tamamen aynı olmalıdır.

06:42.950 --> 06:43.670
Doğru.

06:43.700 --> 06:46.490
Böylece %800'ün eşleştiğini görebilirsiniz.

06:47.590 --> 06:50.260
Yani tamamen aynı olduğunu görebilirsiniz.

06:50.260 --> 06:55.210
Ve bu fonksiyonda yapacağımız şey, bu fonksiyonda, yayıncı tarafından hangi iş parçacığının

06:55.210 --> 07:01.870
bilgilendirildiğini basitçe yazdıracağız ve bu fonksiyonda daha fazla bilgi yazdıracağız.

07:01.870 --> 07:08.020
İlerledikçe, bu fonksiyona argüman olarak belirtilen parametrelerin ne olacağını göreceğiz?

07:08.020 --> 07:12.010
Argüman boyutu nedir ve NFC işlem kodu nedir?

07:12.010 --> 07:17.110
Ve tabii ki istemci kimliği yayıncı tarafından bildirilen iş parçacığıdır.

07:17.110 --> 07:17.800
Değil mi?

07:18.100 --> 07:24.220
Ancak şu anda bu API'yi veya bildirim için T tablosu kaydını henüz uygulamadık.

07:24.220 --> 07:30.370
Abonenin bildirimler için yayıncının yönlendirme tablosuna gerçekten abone olmak için kullandığı

07:30.370 --> 07:32.320
bu API'dir, değil mi?

07:32.320 --> 07:37.330
Yani yayıncılar ve aboneler aslında bu API'yi kullanarak birbirlerine bağlanıyor.

07:37.360 --> 07:40.180
Bu API bir köprü görevi görüyor, değil mi?

07:40.810 --> 07:44.980
Çünkü abone bu API'yi kullanarak bildirimler için abone olacaktır.

07:45.010 --> 07:51.910
Bu API nedeniyle, yönlendirme tablosundaki her bir yönlendirme tablosu girdisi bildirim zincirlerinde bildirim zinciri elemanlarına

07:51.910 --> 07:53.410
sahip olacaktır.

07:53.410 --> 07:54.130
Doğru.

07:55.080 --> 08:01.290
Şimdi bu noktada yönlendirme tablomuzu geliştirelim, böylece yönlendirme tablomuz bildirim zincirleriyle

08:01.290 --> 08:02.000
çalışır.

08:02.010 --> 08:08.100
Şu an itibariyle yönlendirme tablomuz tamamen ham olup sadece bir veri kaynağıdır ve bildirim zincirlerimizle

08:08.100 --> 08:09.960
entegre değildir.

08:11.010 --> 08:16.440
Yönlendirme tablomuzu akıllı hale getirmemiz gerekir, böylece yayıncı bu yönlendirme tablosundaki

08:16.440 --> 08:23.100
herhangi bir girişi güncellediğinde, yönlendirme tablomuz bildirim zincirleri üzerinde yürür ve söz konusu giriş için

08:23.100 --> 08:26.490
abone olan ilgili abonelere bildirim gönderir.

08:26.520 --> 08:27.180
Doğru.

08:27.180 --> 08:32.580
Öyleyse yönlendirme tablosu API'mizi geliştirelim ve yönlendirme tablomuzu bildirim altyapısıyla

08:32.580 --> 08:33.660
entegre edelim.
