Можем ли мы получить доступ к элементам данных и указателям на объекты по шине D-Bus? - PullRequest
0 голосов
/ 12 декабря 2011

Я обращался к открытым функциям-членам, соответствующим объекту, выставленному через D-Bus.Есть ли способ, которым я могу получить доступ к (общедоступным) членам данных?Если да, то как?

Также я читаю здесь -

[http://www.qtcentre.org/archive/index.php/t-24238.html]

, что невозможно передавать указатели через D-BusПросто хотел подтвердить то же самое.

1 Ответ

0 голосов
/ 12 декабря 2011

Доступ к данным у членов объекта зависит от того, объявлены они public или private. Посмотрите на определение класса (или структуры) в заголовочном файле. Это верно независимо от того, что класс отображается на что-то на D-Bus, хотя гипотетически возможно, что класс написан неправильно и позволяет вам делать то, что D-Bus не поддерживает, и в этом случае я по предоставленной информации не могу знать, что произойдет.

class DBusThing
{
  int seeBelowMember;
public:
  int accessibleMember;
  int accessibleMethod(int argument);
private:
  int inaccessibleMember;
}

void someFunc()
{
   DBusThing foo;
   int ret = foo.accessibleMethod(5); // legal
   foo.accessibleMember=5; // legal
   foo.inaccessibleMember=5; // illegal
   foo.seeBelowMember=5; // illegal because DBusThing is declared class.
   // If DBusThing had been declared struct, seeBelowMember would be accessible.
}

Я считаю вероятным, что класс написан правильно и не позволит вам сделать невозможное.

...