2011-10-13 2 views
0

D 버스에서 사용 가능한 모든 정보 트리를 어떻게 인쇄 할 수 있습니까? 나는이 문제를 해결하는 방법을 보여주기 위해 자식 저장소를 만든D 버스 인트로 피시 트리 인쇄

*Bus Name 
    * Interface 
     *Method 
      *Signature 
    * Interface 
     *Method 
      *Signature 
     *Method 
      *Signature 
*Bus Name 
    * Interface 
     *Method 
      *Signature 

답변

0

: 그것은 콜 백업을 사용하지 않기 때문에 https://github.com/smokedice/PyDBusTree

코드는 다소 느립니다. 누구든지 코드를 개선하고 싶다면 여기에 게시하거나 저장소로 이동하십시오.

+0

그것은 당신이 한 것이 멋진하지만, 보편적 인 표준 D 버스 도구 세트를 홍보하는 것이 좋습니다. –

+0

개인적으로 동의하지 않습니다. D-Feet과 같은 도구는 모든 필요를 충족하지 못합니다. 필자는 이제 '인쇄'가 툴링보다는 코드와 더 관련이 있다고 생각할 때이 질문이 모호하다는 것을 알게되었습니다. 이것은 언어 또는 문맥 때문일 수 있습니다. – smokedice

+0

[여기] (https://github.com/ldo/dbussy_examples/blob/master/introspect_all)의 또 다른 옵션 : [asyncio 호환] (https://github.com/ldo/dbussy) 파이썬 D- 버스 래퍼. –

2

DFeet과 같은 dbus 디버깅 도구를 사용하면 DBus를 통해 노출 된 모든 것을 멋진 구조로 볼 수 있습니다.

+0

D-feet은 귀중한 도구이며 dbus 내부에서 일어나는 일에 대해 전체적인 그림을 얻으려는 사람에게 좋습니다. – Zimano

0

뿐만 아니라 D-Feet (이전 답변에서 언급)는 gdbus command line tool가 주어진 고유하거나 잘 알려진 버스의 이름을 특정 객체 경로의 성찰을 허용합니다 :

$ gdbus introspect --session --dest org.gnome.Contacts --object-path /org/gnome/Contacts 
node /org/gnome/Contacts { 
    interface org.freedesktop.DBus.Properties { 
    methods: 
     Get(in s interface_name, 
      in s property_name, 
      out v value); 
     … 
    signals: 
     PropertiesChanged(s interface_name, 
         a{sv} changed_properties, 
         as invalidated_properties); 
    properties: 
    }; 
    … 
}