Giriş
Yazının ismi RTIambassador Arayüzü ancak hem RTIambassador hem de FederateAmbassador çağrılarını gösteriyor.
requestFederationRestore metodu
Federate için çağrı sırası şöyle.
Federation Save işleminde RTI save işlemine başlayıp başlayamayacağını belirtmiyor. restore işleminde neden bu yapıya ihtiyaç duyulmuş bilmiyorum. Sanırım RTI kendi içinde tutarlılık kontrolleri yapıyor diye düşünüyordum. Ancak save edilmemiş bir labe ile çağrılsa bile bu metod hata dönmüyor!
FederateAmbassador.federationRestoreBegun metodu
HLA thread'i içinde çalılır. Bu metod içinde genellikle bir başka thread'e Command gönderilir. Yani Command Örüntüsü kullanılır.
RTI'dan bu çağrıyı aldıktan sonra uygulamanın HLA mesajları göndermemesi gerekir. Özellikle yavaş olan katılımcıların bu çağrıdan sonra bir şekilde hesaplama yapmayı durdurması gerekir. Çünkü yapacağı işlemler muhtemelen çöpe gidecektir.
Ben bu kullanım şeklini çok pratik bulmuyorum çünkü hesaplamanın ortasında işlemi bölmek mümkün olmayabilir. Daha pratik bir kullanım şeklinde tüm hesaplamaları halen göndermek ve alıcı tarafta bir kuyrukta biriktirmek olabilir.
FederateAmbassador initiateFederateRestore metodu
HLA thread'i içinde çalılır. Bu metod içinde genellikle bir başka thread'e Command gönderilir. Yani Command Örüntüsü kullanılır.
Bu çağrının parametrelerinden bir tanesi federateName. Bu parametre neden gerekli bilmiyorum. Bu çağrı sonucunda katılımce eski veriyisine geri döner. Eğer geriye sarma işlemi başarılı ise federationRestoreComplete() metodunu çağırır. Başarılı değilse federationRestoreNotComplete() metodunu çağırır.
Tüm katılımcıların geriye sarma işlemi başarılı ise RTI federationRestored() metodunu çağırır. Başarılı değilse federationNotRestored() metodunu çağırır.
Federation Restore işlemi devam ederken updateAttributeValues() çağrısı yapılırsa hla.rt.1516e.exceptions.RestoreInProgress fırlatılır.
FederateAmbassador federationNotRestored metodu
Hata kodu FEDERATE_REPORTED_FAILURE_DURING_RESTORE olabilir.
Yazının ismi RTIambassador Arayüzü ancak hem RTIambassador hem de FederateAmbassador çağrılarını gösteriyor.
requestFederationRestore metodu
Federate için çağrı sırası şöyle.
requestFederationRestore (String label) -> RTI - 1Bu çağrının sonucunda RTI requestFederationRestoreSucceded() metodu ile restore işlemine başlayabileceğini belirtir. Eğer başlayamayacaksa requestFederationRestoreFailed() çağrısını yapar ve akış burada biter.
requestFederationRestoreSucceded (String label) <- RTI - 2requestFederationRestoreFailed (String label) <- RTI - 2federationRestoreBegun () <- RTI - 3initiateFederateRestore (String label, String federateName) <- RTI - 4federationRestoreComplete() -> RTI - 5federationRestoreNotComplete() -> RTI - 5federationRestored() <- RTI - 6federationNotRestored () <- RTI - 6
Federation Save işleminde RTI save işlemine başlayıp başlayamayacağını belirtmiyor. restore işleminde neden bu yapıya ihtiyaç duyulmuş bilmiyorum. Sanırım RTI kendi içinde tutarlılık kontrolleri yapıyor diye düşünüyordum. Ancak save edilmemiş bir labe ile çağrılsa bile bu metod hata dönmüyor!
FederateAmbassador.federationRestoreBegun metodu
HLA thread'i içinde çalılır. Bu metod içinde genellikle bir başka thread'e Command gönderilir. Yani Command Örüntüsü kullanılır.
RTI'dan bu çağrıyı aldıktan sonra uygulamanın HLA mesajları göndermemesi gerekir. Özellikle yavaş olan katılımcıların bu çağrıdan sonra bir şekilde hesaplama yapmayı durdurması gerekir. Çünkü yapacağı işlemler muhtemelen çöpe gidecektir.
Ben bu kullanım şeklini çok pratik bulmuyorum çünkü hesaplamanın ortasında işlemi bölmek mümkün olmayabilir. Daha pratik bir kullanım şeklinde tüm hesaplamaları halen göndermek ve alıcı tarafta bir kuyrukta biriktirmek olabilir.
FederateAmbassador initiateFederateRestore metodu
HLA thread'i içinde çalılır. Bu metod içinde genellikle bir başka thread'e Command gönderilir. Yani Command Örüntüsü kullanılır.
Bu çağrının parametrelerinden bir tanesi federateName. Bu parametre neden gerekli bilmiyorum. Bu çağrı sonucunda katılımce eski veriyisine geri döner. Eğer geriye sarma işlemi başarılı ise federationRestoreComplete() metodunu çağırır. Başarılı değilse federationRestoreNotComplete() metodunu çağırır.
Tüm katılımcıların geriye sarma işlemi başarılı ise RTI federationRestored() metodunu çağırır. Başarılı değilse federationNotRestored() metodunu çağırır.
Federation Restore işlemi devam ederken updateAttributeValues() çağrısı yapılırsa hla.rt.1516e.exceptions.RestoreInProgress fırlatılır.
FederateAmbassador federationNotRestored metodu
Hata kodu FEDERATE_REPORTED_FAILURE_DURING_RESTORE olabilir.
Hiç yorum yok:
Yorum Gönder