WEBVTT

1
00:06.880 --> 00:13.480
Şimdi çocuklar, Zamanlayıcı kütüphanesi
hakkında tartıştığımıza göre ve önceki
ödevde, zamanlayıcı kütüphanesinin nasıl

2
00:13.480 --> 00:19.600
içe aktarılacağı ve projemize nasıl
entegre edileceği ile ilgili adımları
izlemiş olmalısınız.

3
00:19.780 --> 00:26.440
Umarım çalıştırılabilir dosyanızı bir
zamanlayıcı kütüphanesi entegre edilmiş
olarak derleyip oluşturabilmişsinizdir.

4
00:27.280 --> 00:34.180
Şimdi projemizde zamanlayıcı kütüphanesini

5
00:34.180 --> 00:34.990
kullanacak şekilde değişiklikler
yapacağız.

6
00:35.170 --> 00:38.500
Bu yüzden aşağıdaki iki görevi yerine
getireceğiz.

7
00:39.220 --> 00:45.910
Birincisi, ağ tarafından öğrenilen
yönlendirme tablosu girdilerinin sona

8
00:45.910 --> 00:47.190
erme süresinin 30 saniye olması
gerektiğini söyler.

9
00:47.200 --> 00:53.320
Yani, 30 saniye sonra otomatik olarak
silinmeli ve kullanıcının konsol

10
00:53.320 --> 00:58.780
veya menü kullanarak açıkça oluşturduğu
yönlendirme tablosu girişleri
silinmelidir.

11
00:58.810 --> 01:04.510
Bu girişler statik veya kalıcıdır ve
herhangi bir sona erme süreleri
olmamalıdır.

12
01:04.540 --> 01:11.570
Kullanıcı bunları gönüllü olarak silmeye
karar verene kadar veya vermediği sürece
var olmaya devam etmelidirler.

13
01:11.690 --> 01:15.680
Yani bunlar yapacağımız iki ödev ya da
görev.

14
01:16.340 --> 01:18.800
Aslında, ikinci görev otomatik olarak
yapılır.

15
01:18.800 --> 01:19.900
Zaten orada.

16
01:19.910 --> 01:25.140
Sadece kullanıcı tarafından oluşturulan
girişler için herhangi bir zamanlayıcı
başlatmanız gerekmez.

17
01:25.160 --> 01:31.790
Birçoğunuz için, bazı zamanlayıcı
kütüphanelerini ilk kez

18
01:31.790 --> 01:33.580
kullanıyor veya zamanlayıcılarla ilk kez
karşılaşıyor olmalısınız.

19
01:33.590 --> 01:37.570
Bu yüzden bunu zamanlayıcılarla nasıl
çalışılacağını öğrenmek için bir fırsat
olarak değerlendirin.

20
01:37.580 --> 01:41.600
Çünkü zamanlayıcılarla çalışmak için kodda
belirli bir disiplini takip etmeniz
gerekir.

21
01:42.110 --> 01:42.770
Tamam.

22
01:42.950 --> 01:46.760
Ve kavramsal olarak, tüm zamanlayıcı
kütüphaneleri aşağı yukarı aynıdır.

23
01:46.760 --> 01:54.500
Dolayısıyla, gelecekte başka bir
zamanlayıcı kütüphanesi kullanacak
olursanız, herhangi bir

24
01:54.500 --> 01:57.830
zamanlayıcı kütüphanesi kullanarak
gelecekte ateşlenecek olayı kavramsal
olarak zamanlamak aynıdır.

25
01:58.010 --> 02:03.470
Dolayısıyla, kursun bu bölümünden
çıkaracağınız önemli kavramlardan biri,

26
02:03.470 --> 02:08.900
uygulamanızda gelecekteki olayları
planlamak için zamanlayıcılardan nasıl
yararlanacağınızdır.

27
02:09.860 --> 02:13.040
Öyleyse hemen kod değişiklikleri ile
başlayalım.

28
02:13.340 --> 02:20.510
Benim odak noktam, ağ tarafından
oluşturulan veya ağ tarafından öğrenilen
herhangi bir yönlendirme

29
02:20.510 --> 02:23.600
tablosu girdisinin 30 saniyelik bir sona
erme süresine sahip olması gerektiği
olacaktır.

30
02:23.600 --> 02:26.510
İşte biz de bunu uygulayacağız.

31
02:26.600 --> 02:32.890
Bu hedefe ulaşmak için dot h dosyasında
yapmamız gereken değişiklikler şunlardır.

32
02:32.900 --> 02:38.960
Dolayısıyla, 30s şeklinde bir hash tanımlı
sabit tanımlayacağız ve

33
02:38.960 --> 02:41.540
30s'yi temsil etmek için kodumuz boyunca
bunu kullanacağız.

34
02:41.540 --> 02:44.630
Ve zaten bir yapı tablosu girişimiz var.

35
02:44.660 --> 02:53.600
Şimdi her yönlendirme tablosu girdisi
kendi ayrı zamanlayıcısına sahip olacak ve
bu

36
02:53.600 --> 03:00.110
nedenle yönlendirme tablosu girdisi
yapısında zamanlayıcı türünde yeni bir üye
tanımlamamız gerekecek.

37
03:00.290 --> 03:00.950
Tamam.

38
03:00.980 --> 03:05.690
Çünkü her yönlendirme tablosu girişi için
bağımsız bir zamanlayıcı olacaktır.

39
03:05.840 --> 03:12.080
İkinci bağımsız değişken ise bu
zamanlayıcıyı zamanlayacağımız zaman
aralığını temsil eder.

40
03:12.410 --> 03:13.490
Evet.

41
03:14.430 --> 03:21.180
İkinci argümanın değeri elbette 30s
olacaktı, çünkü milisaniye cinsinden
belirtmemiz

42
03:21.180 --> 03:24.720
gerekiyor, Bu nedenle 30'u 1000'e bölersek
30.000 milisaniye eder.

43
03:25.590 --> 03:26.010
Tamam.

44
03:26.010 --> 03:30.960
Yani bu API'de daha önce yazdığımız yeni
girdi ekleme işlemidir.

45
03:30.990 --> 03:34.140
Bir argüman daha sunmamız gerekiyor.

46
03:34.410 --> 03:34.980
Tamam.

47
03:34.980 --> 03:39.080
Ve bu argüman milisaniye cinsinden sona
erme süresini temsil eder.

48
03:39.090 --> 03:46.680
Dolayısıyla, bu API'yi kullanarak
oluşturacağımız yönlendirme tablosu
girdisinde zamanlayıcı

49
03:46.680 --> 03:49.710
çalışacak ve bu zamanlayıcı şu kadar
milisaniye için zamanlanacaktır.

50
03:49.710 --> 03:56.760
Ve bu değer arayan tarafından sıfır olarak
belirtilirse, o

51
03:56.760 --> 03:58.350
yönlendirme tablosu girişinin herhangi bir
zamanlayıcıya sahip olmaması gerekir.

52
03:58.800 --> 04:06.210
Öyleyse hemen kod değişikliklerine geçelim
ve şu ana kadar açıkladığım problem
ifadesinin

53
04:06.210 --> 04:12.490
oldukça açık olmasını ve bu ödevi kendi
başınıza yapabilmenizi tavsiye ederim.

54
04:12.510 --> 04:17.890
Şu andan itibaren, zamanlayıcı
kütüphanesini projeye entegre etmeye
çalışıyoruz ve daha sonra

55
04:17.890 --> 04:24.010
zamanlayıcıların getirdiği sorunu ve olay
döngüsü kütüphanemizin bu sorunu nasıl
çözeceğini göreceğiz.

56
04:24.730 --> 04:31.900
Nihai hedefimiz olay döngüsünü kullanmak
ve kodumuzdaki zamanlayıcıların getirdiği
sorunu çözmektir.


