comar-dbus.txt 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. Nesne Yolu
  2. |
  3. Bus Adresi (ters çevrilir) |
  4. | |
  5. _______|________ __________|_________
  6. / \ / \
  7. dbus://comar.pardus.org.tr/package/wireless_tools
  8. Nesnenin sunduğu işlem arayüzleri (Interface):
  9. - org.freedesktop.Introspectable (Standart)
  10. - Introspect()
  11. - tr.org.pardus.comar.System.Package
  12. - postInstall()
  13. - preRemove()
  14. - tr.org.pardus.comar.Net.Link
  15. - setConnection(name, device)
  16. - setAddress(name, mode, address, ...)
  17. - ...
  18. ...
  19. İsimlendirme Kuralları
  20. ======================
  21. - Bus adresi, nesne yolu, arayüz ve metod isimlerinin her biri en
  22. fazla 255 karakter olabilir.
  23. - Bus adresleri (örnek: tr.org.pardus.commar, :1.35, ...)
  24. - Her bağlantının bir ya da daha fazla Bus adresi olabilir. ":"
  25. ile başlayanlar özgün bağlantı isimleridir.
  26. - Noktalarla ayrılmış, en az iki kelimeden oluşur. Kelimeler
  27. sadece "[A-Z][a-z][0-9]_-" karakterlerini içerebilir.
  28. - Rakam ve "." ile başlayan Bus adresi olamaz.
  29. - Arayüz isimleri (örnek: tr.org.pardus.comar.Net.Link)
  30. - Noktalarla ayrılmış, en az iki kelimeden oluşur. Kelimeler
  31. sadece "[A-Z][a-z][0-9]_" karakterlerini içerebilir. Bus
  32. adresinden farkı, "-" karakteri içermemeleridir.
  33. - Rakam ve "." ile başlayan arayüz ismi olamaz.
  34. - Üye (method, sinyal) isimleri (örnek: postInstall)
  35. - "[A-Z][a-z][0-9]_" karakterlerinden oluşan en az bir karakter
  36. uzunlukta bir kelime olabilir.
  37. - "." içeremez
  38. - Rakam ile başlayamaz.
  39. - Hata isimleri (örnek: org.freedesktop.DBus.Exception)
  40. - Arayüz isimlendirme kuralları aynen geçerlidir.
  41. COMAR'ın Sunduğu Nesne/Arayüz/Methodlar
  42. =======================================
  43. / (kök)
  44. * org.freedesktop.Introspectable
  45. - Introspect()
  46. * tr.org.pardus.comar
  47. - register(app, model, script_file)
  48. - remove(app)
  49. - listApplications()
  50. - listModels()
  51. - listModelApplications(model)
  52. - listApplicationModels(app)
  53. /package
  54. /package/mysql
  55. * org.freedesktop.Introspectable
  56. - Introspect()
  57. * tr.org.pardus.comar.System.Package
  58. - postInstall(fromVersion, toVersion, ...)
  59. - preRemove()
  60. /package/wireless_tools
  61. * org.freedesktop.Introspectable
  62. - Introspect()
  63. * tr.org.pardus.comar.System.Package
  64. - postInstall(fromVersion, toVersion, ...)
  65. - preRemove()
  66. * tr.org.pardus.comar.Net.Link
  67. - setConnection(name, deviceID)
  68. - setAddress(name, mode, address, ...)
  69. - ...
  70. * ...
  71. /package/...
  72. Kök nesne altındaki tr.org.pardus.comar arayüzü, ÇOMAR'a yeni uygulama
  73. ve uygulama betikleri ekleme, varolanları sorgulama/silme için gerekli
  74. metodları sunar.
  75. Her nesne standart org.freedesktop.Introspectable arayüzünü sunar. Bu
  76. arayüzün Introspect() methodu ile, o anki nesne yolunun sunduğu
  77. arayüzler, alt nesleler ve metodlar sorgulanabilir.
  78. tr.org.pardus.comar.System.Package ve tr.org.pardus.comar.Net.Link
  79. gibi arayüz isimleri, model.xml'den üretilir. Arayüzün sunduğu method
  80. ve sinyaller (üyeler), yine model.xml'de tanımlıdır.
  81. register() metodu ile ÇOMAR'a kayıt edilen paketler, /package altına
  82. eklenir. Kayıt ederken bir model ismi ve o model ile tanımlı işi
  83. gerçekleştirecek Python betiğinin tam dosya yolu belirtilmelidir:
  84. register("apache", "System.Package", "/root/apache_package.py")
  85. Yukarıdaki methodun çağrılmasının ardından, eğer System.Package
  86. arayüzü model.xml'de tanımlı ise, "apache" geçerli bir paket ismi
  87. ise "apache_package.py", Apache'ye ait ÇOMAR veritabanına eklenir
  88. ve /package/apache nesnesi altında tr.org.pardus.comar.System.Package
  89. arayüzü sunulmaya başlanır.