WEBVTT

00:05.160 --> 00:13.050
Öyleyse çocuklar, bildirim zincirimizin doğru çalışması için iki temel rutini uygulamamız gerekiyor?

00:13.080 --> 00:15.440
İki asgari rutin aşağıdaki gibidir.

00:15.450 --> 00:18.870
Bu, abonelik talebi ve çağırma talebidir.

00:19.260 --> 00:25.860
Şimdi, daha önce de gösterdiğim gibi, bu abonelik isteği, abonenin olaylar için bildirim zincirine kaydolmak

00:25.860 --> 00:27.960
istediği anlamına gelir.

00:27.960 --> 00:28.650
Değil mi?

00:28.680 --> 00:33.960
Bunun için bir NFC kayıt bildirim zinciri fonksiyonu yazacağız.

00:33.960 --> 00:38.370
Ve bu işlevin abone tarafından çağrılması gerekiyor, değil mi?

00:38.400 --> 00:42.840
Bu fonksiyonun ilk bağımsız değişkeni bildirim zincirine bir işaretçidir.

00:43.050 --> 00:47.040
İkinci bağımsız değişken ise bildirim zinciri öğesidir.

00:47.070 --> 00:50.940
Parametreleri abone tarafından doldurulacaktır.

00:50.940 --> 00:57.960
Ve parametreleri doldurduktan sonra, abonenin bildirim zinciri elemanını bu bildirim zincirine

00:57.960 --> 01:01.980
kaydetmek için bu fonksiyonu çağırması beklenir.

01:01.980 --> 01:02.760
Doğru.

01:03.430 --> 01:10.270
Ve yayıncının abonelere bir güncelleme göndermesi gerektiğinde ikinci API'nin yayıncı tarafından çağrılması

01:10.270 --> 01:11.570
gerekir.

01:11.590 --> 01:12.310
Doğru.

01:15.130 --> 01:21.310
Dolayısıyla, bu API'nin ilk argümanı yayıncı tarafından çağrılan bildirim zinciridir.

01:21.340 --> 01:28.990
İkinci ve üçüncü argüman, yayıncının aboneye iletmek istediği bilgidir.

01:30.690 --> 01:37.880
Yönlendirme tablosu örneğimizde, argüman ve argüman boyutu yönlendirme tablosunun kalan girdileri olacaktır.

01:37.890 --> 01:38.640
Doğru.

01:39.570 --> 01:40.930
O zaman geri dönelim.

01:40.950 --> 01:45.420
Kalan girişlerin bu ikinci IP adresinden oluştuğunu görebilirsiniz.

01:45.420 --> 01:52.170
Bu on. 1. 1. 3 ve arayüz adı ve bu rotanın maliyeti.

01:52.170 --> 01:52.920
Doğru.

01:53.010 --> 01:58.890
Dolayısıyla bu, yayıncının aboneye bildirimde bulunurken aboneye iletmesi gereken argümanı

01:58.890 --> 01:59.880
oluşturur.

02:01.290 --> 02:08.640
Dolayısıyla, bu argümanlar bazı veri yapılarında paketlenecek ve bu fonksiyona argüman olarak aktarılacaktır.

02:08.640 --> 02:09.520
Doğru.

02:09.540 --> 02:15.660
Üçüncü ve dördüncü bağımsız değişken ise bu bildirim zinciri bağlantı listesinde eşleştirilecek olan

02:15.660 --> 02:16.440
anahtardır.

02:16.470 --> 02:22.770
Dolayısıyla, bu işlevin mantığı olarak, yayıncının bildirim zinciri üzerinde yineleme yapması ve

02:22.770 --> 02:29.100
her bildirim zinciri öğesinde, bu anahtarı bildirim zinciri öğesinde depolanan anahtarla eşleştirmesi

02:29.100 --> 02:30.270
gerekir.

02:30.270 --> 02:37.950
Ve anahtar eşleşirse, yalnızca yayıncının eşleşmede bulunan geri aramayı çağırması

02:37.950 --> 02:39.030
gerekir.

02:39.030 --> 02:40.960
Eylem zinciri öğesine bildirimde bulunun.

02:41.320 --> 02:47.170
Dolayısıyla bu iki API'nin de notify edge dosyasında bildirilmesi gerekir.

02:47.170 --> 02:47.890
Doğru.

02:47.890 --> 02:52.990
Böylece bildirim dosyamızın uygulaması tamamlanmış olur.

02:53.440 --> 02:56.680
Şimdi, bu iki fonksiyonun nasıl uygulanacağını görelim.

02:58.890 --> 03:03.870
Şimdi çocuklar, bu iki işlevin dosya defterinde uygulanması gerekiyor.

03:04.140 --> 03:04.940
Doğru.

03:04.950 --> 03:11.310
Bu yüzden notif dot c dosyasını zaten yazdım ve notepad başlık dosyasını buna dahil etmeniz gerekiyor.

03:11.580 --> 03:14.590
Şimdi bu iki fonksiyonu uygulayacağız.

03:14.610 --> 03:19.980
Şimdi ilk işleve gelince, bu NFC kayıt bildirim zinciridir.

03:20.100 --> 03:26.550
Yapmam gereken şey, bu bildirim zinciri öğesinin bir kopyasını oluşturmak, değil mi?

03:26.550 --> 03:32.790
Ve bu kopyayı bu bildirim zinciri tarafından temsil edilen bağlantı listesine ekleyin, Doğru.

03:32.820 --> 03:37.980
Abone bu bildirim zinciri öğesindeki tüm bilgileri zaten doldurmuştur.

03:38.160 --> 03:43.120
Dolayısıyla, bu işlevin uygulanmasının çok basit ve anlaşılır olduğunu görebilirsiniz.

03:43.140 --> 03:47.880
Sadece yeni bir bildirim zinciri öğesi alın ve basitçe kopyalayın.

03:47.910 --> 03:53.250
Yani, bu bildirim zinciri öğesinde bulunan tüm verileri yenisine kopyalayın.

03:53.250 --> 03:54.150
Doğru.

03:54.300 --> 03:59.560
Ve yeni bildirim zinciri öğesini bu bildirim zincirine eklemeniz yeterlidir.

04:00.130 --> 04:00.820
Doğru.

04:01.660 --> 04:02.740
Bildirim zincirimiz.

04:02.740 --> 04:06.520
Veri yapısı bir şey değildir, ama sadece çift bağlantılı bir listedir, değil mi?

04:06.640 --> 04:11.740
Dolayısıyla, bu işlevin uygulanmasının oldukça basit ve anlaşılır olduğunu görebilirsiniz.

04:12.130 --> 04:18.120
Arkadaşlar, şu anda aslında genel bir bildirim zinciri altyapısı yazıyoruz.

04:18.130 --> 04:24.340
Belirli bir uygulamaya bağlı olmadığını ve tamamen genel olduğunu görebilirsiniz, değil mi?

04:24.370 --> 04:30.670
Bu iki rutinin yayıncı ve abone tarafından nasıl çağrıldığını daha sonra göreceğiz.

04:32.120 --> 04:35.240
Şimdi ikinci API'nin uygulanmasını tartışalım.

04:35.270 --> 04:37.790
Bu NFC Invoke bildirim zinciridir.

04:39.400 --> 04:44.560
Dediğim gibi, bu işlevin yayıncı tarafından çağrılması gerekiyor.

04:44.560 --> 04:45.280
Değil mi?

04:46.820 --> 04:52.880
Yayıncının tüm bildirim zinciri bağlantı listesi üzerinde dolaşması ve her bildirim zinciri

04:52.880 --> 05:00.380
öğesi için bu anahtarla ve bu anahtarla eşleşen bildirim zinciri öğeleri anahtarıyla eşleşmesi gerekir.

05:00.410 --> 05:06.560
Daha sonra bu bildirim zinciri öğeleri için işlev geri çağrısı yayıncı tarafından çağrılmalıdır.

05:06.560 --> 05:07.310
Değil mi?

05:07.670 --> 05:14.180
Yani yapmamız gereken ilk şey bu bildirim zincirini yinelemekten başka bir şey değil,

05:14.180 --> 05:14.940
değil mi?

05:14.960 --> 05:22.430
Şimdi buraya, anahtar boyutunun bildirim zinciri öğelerimizin tutabileceği maksimum anahtar boyutunu aşmaması gerektiğine

05:22.430 --> 05:24.140
dair bir kontrol koydum.

05:24.650 --> 05:31.880
Dolayısıyla, bu bildirim zinciri üzerinde yineleme yaparken, bildirim zinciri öğesini tek tek

05:31.880 --> 05:38.630
seçin ve ardından bu bildirim zinciri öğesinde depolanan anahtarı iletilen anahtarla karşılaştırın,

05:38.630 --> 05:40.220
Doğru.

05:40.950 --> 05:49.740
Dolayısıyla bu koşul basitçe, bu anahtar belirtilmemişse veya bildirim zinciri öğesinde bulunan anahtar belirtilmemişse,

05:49.740 --> 05:55.470
bunun bir joker kart girişi olduğu anlamına geldiğini söyler.

05:55.470 --> 06:02.460
Ve ne olursa olsun, yayıncı bildirim zinciri öğesinde bulunan geri çağırmayı çağırmalıdır.

06:02.640 --> 06:09.300
Dolayısıyla, bu if cümlesi bildirim zincirinde bulunan joker kart bildirim zinciri öğelerini ele alır.

06:09.970 --> 06:10.670
Doğru.

06:10.690 --> 06:16.990
Bu if koşulu yanlışsa, bu sadece bildirim zinciri öğesinde bulunan anahtarın geçirilen

06:16.990 --> 06:20.030
anahtarla eşleştiği anlamına gelir.

06:20.050 --> 06:26.650
Dolayısıyla bu durumda, argüman olarak aktarılan anahtarı bildirim zinciri öğesinde

06:26.650 --> 06:33.460
bulunan anahtarla karşılaştırmamız ve yalnızca anahtar eşleştiğinde uygulama geri çağrısını

06:33.460 --> 06:35.790
çağırmamız gerekir.

06:35.800 --> 06:36.610
Doğru.

06:36.970 --> 06:43.150
Dolayısıyla, bu işlevin uygulanmasının oldukça basit ve anlaşılır olduğunu ve tartışmamızla tamamen

06:43.150 --> 06:45.430
uyumlu olduğunu görebilirsiniz.

06:45.940 --> 06:52.690
Uygulama geri çağrısı her çağrıldığında, argümanı ve argüman boyutunu iletmemiz gerekir.

06:52.720 --> 06:56.920
Bu iki parametre bu fonksiyona argüman olarak aktarılır.

06:56.920 --> 06:57.730
Değil mi?

06:57.850 --> 07:04.390
Bu API'yi gerçekten çağırmadan önce yayıncının argümanı nasıl hazırladığını tartışacağız.

07:04.420 --> 07:09.770
Bu iki işlevin uygulanmasının oldukça basit ve anlaşılır olduğunu görebilirsiniz

07:09.770 --> 07:15.290
ve bu da genel bildirim zinciri altyapımızın uygulanmasını tamamlar.

07:15.290 --> 07:15.980
Doğru.

07:17.330 --> 07:21.170
Bu bildirim zinciri üzerinde daha fazla rutin uygulamakta serbestsiniz.

07:21.170 --> 07:27.890
Örneğin, bildirim zincirinin kaydını kaldırmak veya abonelikten çıkmak için bir rutin uygulayabilirsiniz.

07:27.980 --> 07:33.080
Ancak, projemizde abonelikten çıkacağımız bir kullanım durumumuz yok.

07:33.080 --> 07:39.440
Ancak ilgileniyorsanız ve bu kod parçasını tamamlamak istiyorsanız, bir abonenin

07:39.440 --> 07:47.030
bildirim zincirinden çıkabileceği unregister veya Unsubscription işlevini yazmalısınız.

07:47.810 --> 07:54.920
Şimdi bir sonraki ders videosunda size projeye özel bildirim zincirimizi nasıl uygulayacağımızı göstereceğim.
