VnexTR: Bilişim Forumu

Tam Versiyon: [ Tam Detaylı ] nVault Dersi
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
nVault 
Nedir: nVault server çökse yada kapansa bile içinde veri depolamanızı sağlayan bir veri kaydetme yoludur, nVault tahmin edilenden çok daha basit bir kullanıma sahip olmakla beraber bir anahtar üzerine veri kaydeder bu konuyu yazma sebebim ise bir çok arkadaşın özel mesaj üzerinden bu konu hakkındaki soruları.

İçerik : 
PHP Kod:
nvault_open Belirtilen nVault dosyasını açar ve döndürür.
nvault_close nVault open tarafından döndürülen veri ile o dosya kapatılır.
nvault_set Yeni bir veri oluşturur yada olan veriyi düzenler ve zaman damgasını oluşturma zamanı olarak ayarlar.
nvault_pset Yeni bir veri oluşturur yada olan veriyi düzenler fakat zaman damgasına sahip değildir o yüzden nvault_prune tarafından etkilenmez
nvault_get 
Belirlenen anahtardaki verileri döndürür (3 parametre girildi ise tam sayı,4 parametre girildi ise veri uzunluğu)
nvault_lookup Belirtilen anahtardaki verileri detaylıca döndürür (nvault_get ile çok benzerdir fakat ek olarak zaman damgasını da verir)
nvault_touch Belirtilen anahtarın zaman damgası ile oynar
nvault_prune 
Belirlenen bir zaman damgası içinde kalan tüm anahtarları kaldırır
nvault_remove 
Belirtilen anahtarı kaldırır 
[img]nvault_open - Belirtilen nVault dosyasını açar ve döndürür. nvault_close - nVault open tarafından döndürülen veri ile o dosya kapatılır. nvault_set - Yeni bir veri oluşturur yada olan veriyi düzenler ve zaman damgasını oluşturma zamanı olarak ayarlar. nvault_pset - Yeni bir veri oluşturur yada olan veriyi düzenler fakat zaman damgasına sahip değildir o yüzden nvault_prune tarafından etkilenmez nvault_get - Belirlenen anahtardaki verileri döndürür (3 parametre girildi ise tam sayı,4 parametre girildi ise veri uzunluğu) nvault_lookup - Belirtilen anahtardaki verileri detaylıca döndürür (nvault_get ile çok benzerdir fakat ek olarak zaman damgasını da verir) nvault_touch - Belirtilen anahtarın zaman damgası ile oynar nvault_prune - Belirlenen bir zaman damgası içinde kalan tüm anahtarları kaldırır nvault_remove - Belirtilen anahtarı kaldırır [/img]
Bilinmesi Gerekenler(Bu konu için):
PHP Kod:
get_systime()
charsmax()
formatex()
get_user_name() 

nvault_open(const bmIsim[]): Verilerin ve anahtarların saklanacağı bir nVault dosyasını açar yoksa oluşturur İçerik bölümündeki komutları kullanmadan önce nVault dosyasının açılması yada oluşturulması gerekmektedir eğer açılma yada oluşturma esnasında bir sorun çıkarsa dönen veri - 1 olarak döndürür buda INVALID_HANDLE ye tekabül etmektedir.Parametre olarak içine sadece string değer alır ve "addons/amxmodx/data/vault/" içinde belirlediğiniz string.vault diye dosya oluşturur yada açar.

Örnek: 
PHP Kod:
public plugin_cfg(){
            
bmVault nvault_open("bmTest");
            if(
bmVault == INVALID_HANDLE){
                    
log_amx("Acilmayan yada Olusturulamayan nVault Dosyasi Bulundu");
            }


nvault_close(bmVault): Açılan ve bir tam sayı(int) değeri döndüren vault dosyasını kapatmak için kullanılır eğer kapatılmazsa dosyada bozukluklara yol açabilmektedir.

Örnek:
PHP Kod:
public plugin_end(){
         
nvault_close(bmVault);


nvault_set(bmVault, const bmAnahtar[], const bmVeri[]): Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) bir veri(3. parametre) yazar ve zaman damgası olarak yazıldığı anı baz alır ayrıca işlem olduğunda bir dönüş değerine sahip değildir.

Örnek:
PHP Kod:
public beYaz(bmID){
          new 
bmIsim[64],bmAnahtar[126];
          
get_user_name(bmID,bmIsim,charsmax(bmIsim));
          
formatex(bmAnahtar,charsmax(bmAnahtar),"%s-Meyve",bmIsim);
          
nvault_set(bmVault,bmAnahtar,"Armut");


nvault_pset(bmVault, const bmAnahtar[], const bmVeri[]): Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) bir veri(3. parametre) yazar ve zaman damgası kullanmaz böylece nvault_prune'den etkilenmez ayrıca işlem olduğunda bir dönüş değerine sahip değildir.

Örnek:
PHP Kod:
public beYaz(bmID){
          new 
bmIsim[64],bmAnahtar[126];
          
get_user_name(bmID,bmIsim,charsmax(bmIsim));
          
formatex(bmAnahtar,charsmax(bmAnahtar),"%s-Meyve",bmIsim);
          
nvault_pset(bmVault,bmAnahtar,"Armut");


nvault_get(bmVault, const bmAnahtar[], any:...): Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) bir veri döndürür fakat girilicek parametre sayisi veri türüne göre değişir ayrıca işlem olduğunda veri parametre sayısına göre değişir.
Not: Örnek bölümündeki yazma bölümlerini farklı bölümlerde düşünün ben aynı yere anlaşılması amacıyla yazdım yoksa zaten bu değişkenler tanımlı diye hata verir.
Dönüşler:
Alıntı:Eğer any kismina hiçbir veri yazılmamış ise tam sayi değeri döndürür.
Eğer any kismina tek bir veri yazılmış ise(float olarak alınıcak veri) anahtar bulunursa 1 bulunamaz ise 0 döndürür.
Eğer any kisminde çift bir veri yazılmış ise(string olarak alınıcak veri) anahtar bulunursa verinin uzunluğu bulunamaz ise 0 döndürür.

Örnek :
 
PHP Kod:
public bmIntVeri(bmID){
          
// Yazma : 
          
new bmIsim[64],bmAnahtar[126],bmVeri[256];
          
get_user_name(bmID,bmIsim,charsmax(bmIsim));
          
formatex(bmAnahtar,charsmax(bmAnahtar),"%s-Int",bmIsim);
          
formatex(bmVeri,charsmax(bmVeri),"%i",56);
          
nvault_set(bmVault,bmAnahtar,bmVeri);
          
// Okuma : 
          
new bmIsim[64],bmAnahtar[126],bmVeri;
          
get_user_name(bmID,bmIsim,charsmax(bmIsim));
          
formatex(bmAnahtar,charsmax(bmAnahtar),"%s-Int",bmIsim);
          
bmVeri nvault_get(bmVault,bmAnahtar);
          
// Suan bmVeri Değişkeni = 56 

nvault_lookup(bmVault,const bmAnahtar[],bmVeri[],bmVeriUzunluk,bmZamanDamgasi): Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) bir veri(3. parametre) ve veriuzunluğu(4. parametre) ve zaman damgas(5. parametre) olarak değişkenlere bilgileri yükler nvault_get ile temel birkaç farkı ise verileri ne olursa olsun string olarak döndürür ve ek olarak zaman damgasınada ulaşır ayrıca işlem olduğunda anahtar bulunursa 1 bulunamaz ise 0 döndürür.
Not: Örnek bölümündeki yazma bölümünü farklı bölümlerde düşünün ben aynı yere anlaşılması amacıyla yazdım yoksa zaten bu değişkenler tanımlı diye hata verir.
Örnek:
PHP Kod:
public bmLookTest(bmID){
          
// Yazma : 
          
new bmIsim[64],bmAnahtar[126],bmVeri[256];
          
get_user_name(bmID,bmIsim,charsmax(bmIsim));
          
formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          
formatex(bmVeri,charsmax(bmVeri),"naber selam bebegim");
          
nvault_set(bmVault,bmAnahtar,bmVeri);
          
// Okuma : 
          
new bmIsim[64],bmAnahtar[126],bmVeri[256],bmZamanDamgasi;
          
get_user_name(bmID,bmIsim,charsmax(bmIsim));
          
formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          
nvault_lookup(bmVault,bmAnahtar,bmVeri,charsmax(bmVeri),bmZamanDamgasi);
          
// Suan bmVeri Değişkeni = "naber selam bebegim" ve bmZamanDamgasi Değişkeni = Burada Oluşturuma Anındaki Saniyeyi Görüceksiniz(INT).


nvault_touch(bmVault,const bmAnahtar[],bmZamanDamgasi=-1): Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) o anahtarın zaman damgasını güncellemenize yarar ayrıca işlem olduğunda anahtar bulunursa 1 bulunamaz ise 0 döndürür.
Not: Örnek bölümündeki yazma bölümünü farklı bölümlerde düşünün ben aynı yere anlaşılması amacıyla yazdım yoksa zaten bu değişkenler tanımlı diye hata verir.
Örnek:
PHP Kod:
public bmTouchTest(bmID){
          
// Yazma : 
          
new bmIsim[64],bmAnahtar[126],bmVeri[256];
          
get_user_name(bmID,bmIsim,charsmax(bmIsim));
          
formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          
formatex(bmVeri,charsmax(bmVeri),"naber selam bebegim");
          
nvault_set(bmVault,bmAnahtar,bmVeri);
          
// Zaman Damgasini Güncelleme: 
          
new bmIsim[64],bmAnahtar[126];
          
get_user_name(bmID,bmIsim,charsmax(bmIsim));
          
formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          
nvault_touch(bmVault,bmAnahtar,-1); // Suanki Zamana Güncelledik
          // Yada 

nvault_prune(bmVault,bmBaslama,bmBitis): Berlirtilen vault dosyası(ilk parametre) üzerinden belirtilen zaman aralıklarındaki tüm değerleri siler ayrıca işlem olduğunda silinen anahtar sayısı işlem olmaz ise 0 döndürür.
Örnek:
PHP Kod:
public bmPruneTest(bmID){
          
nvault_prune(bmVault,0,get_systime()); // Tüm verileri sildik
          // Yada
          
nvault_prune(bmVault,0,get_systime()-86400); // Bir gün eski tüm verileri sildik
          // Yada
          
nvault_prune(bmVault,get_systime()-3600,get_systime()); // Son 1 saat arasındaki tüm verileri sildik


nvault_remove(bmVault,const bmAnahtar[]): Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) o anahtarı siler ayrıca işlem olduğunda bir dönüş değerine sahip değildir.
Not: Örnek bölümündeki yazma bölümünü farklı bölümlerde düşünün ben aynı yere anlaşılması amacıyla yazdım yoksa zaten bu değişkenler tanımlı diye hata verir.
Örnek:
PHP Kod:
public bmStringTest(bmID){
          
// Yazma : 
          
new bmIsim[64],bmAnahtar[126],bmVeri[256];
          
get_user_name(bmID,bmIsim,charsmax(bmIsim));
          
formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          
formatex(bmVeri,charsmax(bmVeri),"naber selam bebegim");
          
nvault_set(bmVault,bmAnahtar,bmVeri);
          
// Silme : 
          
new bmIsim[64],bmAnahtar[126];
          
get_user_name(bmID,bmIsim,charsmax(bmIsim));
          
formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          
nvault_remove(bmVault,bmAnahtar);

teşekkürler bu tarz içerikler hep yabancı oluyor genelde türkçe bir anlatım iyi olmuş
Teşekürler başarılı anlatım olmuş.