bool HalDevice::QueryCapability( const char* capability ) { /* build request */ DBus::CallMessage msg ( HAL_PATH, _udi.c_str(), HALDEV_IFACE, "QueryCapability" ); // DBus::MessageIter iter = msg.w_iter(); // iter.append_string(capability); msg.append(DBUS_TYPE_STRING, &capability, DBUS_TYPE_INVALID); /* invoke remote method */ try { DBus::Message reply = conn().send_blocking(msg, 2000); DBus::MessageIter ri = reply.r_iter(); return ri.get_bool(); } catch( std::exception& e ) { hal_dbg("%s",e.what()); return false; } }
bool HalDevice::PropertyExists( const char* property ) { /* build request */ DBus::CallMessage msg ( HAL_PATH, _udi.c_str(), HALDEV_IFACE, "PropertyExists" ); DBus::MessageIter iter = msg.w_iter(); iter.append_string(property); /* invoke remote method */ DBus::Message reply = conn().send_blocking(msg, 1000); DBus::MessageIter ri = reply.r_iter(); return ri.get_bool(); }