1 // Generated by gmmproc 2.64.2 -- DO NOT MODIFY! 2 #ifndef _GIOMM_DBUSINTROSPECTION_H 3 #define _GIOMM_DBUSINTROSPECTION_H 4 5 #include <giommconfig.h> 6 7 8 #include <glibmm/ustring.h> 9 #include <sigc++/sigc++.h> 10 11 /* Copyright (C) 2010 The giomm Development Team 12 * 13 * This library is free software; you can redistribute it and/or 14 * modify it under the terms of the GNU Lesser General Public 15 * License as published by the Free Software Foundation; either 16 * version 2.1 of the License, or (at your option) any later version. 17 * 18 * This library is distributed in the hope that it will be useful, 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 21 * Lesser General Public License for more details. 22 * 23 * You should have received a copy of the GNU Lesser General Public 24 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 25 */ 26 27 28 #include <gio/gio.h> 29 #include <glibmm/arrayhandle.h> 30 31 32 namespace Gio 33 { 34 35 namespace DBus 36 { 37 38 /** @addtogroup giommEnums giomm Enums and Flags */ 39 40 /** 41 * @var PropertyInfoFlags PROPERTY_INFO_FLAGS_NONE 42 * No flags set. 43 * 44 * @var PropertyInfoFlags PROPERTY_INFO_FLAGS_READABLE 45 * Property is readable. 46 * 47 * @var PropertyInfoFlags PROPERTY_INFO_FLAGS_WRITABLE 48 * Property is writable. 49 * 50 * @enum PropertyInfoFlags 51 * 52 * Flags describing the access control of a D-Bus property. 53 * 54 * @newin{2,26} 55 * 56 * @ingroup giommEnums 57 * @par Bitwise operators: 58 * <tt>%PropertyInfoFlags operator|(PropertyInfoFlags, PropertyInfoFlags)</tt><br> 59 * <tt>%PropertyInfoFlags operator&(PropertyInfoFlags, PropertyInfoFlags)</tt><br> 60 * <tt>%PropertyInfoFlags operator^(PropertyInfoFlags, PropertyInfoFlags)</tt><br> 61 * <tt>%PropertyInfoFlags operator~(PropertyInfoFlags)</tt><br> 62 * <tt>%PropertyInfoFlags& operator|=(PropertyInfoFlags&, PropertyInfoFlags)</tt><br> 63 * <tt>%PropertyInfoFlags& operator&=(PropertyInfoFlags&, PropertyInfoFlags)</tt><br> 64 * <tt>%PropertyInfoFlags& operator^=(PropertyInfoFlags&, PropertyInfoFlags)</tt><br> 65 */ 66 enum PropertyInfoFlags 67 { 68 PROPERTY_INFO_FLAGS_NONE = 0x0, 69 PROPERTY_INFO_FLAGS_READABLE = (1<<0), 70 PROPERTY_INFO_FLAGS_WRITABLE = (1<<1) 71 }; 72 73 /** @ingroup giommEnums */ 74 inline PropertyInfoFlags operator|(PropertyInfoFlags lhs, PropertyInfoFlags rhs) 75 { return static_cast<PropertyInfoFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); } 76 77 /** @ingroup giommEnums */ 78 inline PropertyInfoFlags operator&(PropertyInfoFlags lhs, PropertyInfoFlags rhs) 79 { return static_cast<PropertyInfoFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); } 80 81 /** @ingroup giommEnums */ 82 inline PropertyInfoFlags operator^(PropertyInfoFlags lhs, PropertyInfoFlags rhs) 83 { return static_cast<PropertyInfoFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); } 84 85 /** @ingroup giommEnums */ 86 inline PropertyInfoFlags operator~(PropertyInfoFlags flags) 87 { return static_cast<PropertyInfoFlags>(~static_cast<unsigned>(flags)); } 88 89 /** @ingroup giommEnums */ 90 inline PropertyInfoFlags& operator|=(PropertyInfoFlags& lhs, PropertyInfoFlags rhs) 91 { return (lhs = static_cast<PropertyInfoFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); } 92 93 /** @ingroup giommEnums */ 94 inline PropertyInfoFlags& operator&=(PropertyInfoFlags& lhs, PropertyInfoFlags rhs) 95 { return (lhs = static_cast<PropertyInfoFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); } 96 97 /** @ingroup giommEnums */ 98 inline PropertyInfoFlags& operator^=(PropertyInfoFlags& lhs, PropertyInfoFlags rhs) 99 { return (lhs = static_cast<PropertyInfoFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); } 100 101 102 /** Stores information about an annotation. 103 * 104 * @newin{2,28} 105 * @ingroup DBus 106 */ 107 class GIOMM_API AnnotationInfo final 108 { 109 public: 110 #ifndef DOXYGEN_SHOULD_SKIP_THIS 111 using CppObjectType = AnnotationInfo; 112 using BaseObjectType = GDBusAnnotationInfo; 113 #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 114 115 116 /** Increment the reference count for this object. 117 * You should never need to do this manually - use the object via a RefPtr instead. 118 */ 119 void reference() const; 120 121 /** Decrement the reference count for this object. 122 * You should never need to do this manually - use the object via a RefPtr instead. 123 */ 124 void unreference() const; 125 126 ///Provides access to the underlying C instance. 127 GDBusAnnotationInfo* gobj(); 128 129 ///Provides access to the underlying C instance. 130 const GDBusAnnotationInfo* gobj() const; 131 132 ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. 133 GDBusAnnotationInfo* gobj_copy() const; 134 135 AnnotationInfo() = delete; 136 137 // noncopyable 138 AnnotationInfo(const AnnotationInfo&) = delete; 139 AnnotationInfo& operator=(const AnnotationInfo&) = delete; 140 141 protected: 142 // Do not derive this. Gio::DBus::AnnotationInfo can neither be constructed nor deleted. 143 144 void operator delete(void*, std::size_t); 145 146 private: 147 148 149 public: 150 151 152 /** Looks up the value of an annotation. 153 * 154 * The cost of this function is O(n) in number of annotations. 155 * 156 * @newin{2,26} 157 * 158 * @param annotations A <tt>nullptr</tt>-terminated array of annotations or <tt>nullptr</tt>. 159 * @param name The name of the annotation to look up. 160 * @return The value or <tt>nullptr</tt> if not found. Do not free, it is owned by @a annotations. 161 */ 162 static Glib::ustring info_lookup(const Glib::ArrayHandle< Glib::RefPtr<AnnotationInfo> >& annotations, const Glib::ustring& name); 163 164 165 }; 166 167 /** ArgInfo - Stores information about an argument for a method or a 168 * signal. 169 * 170 * @newin{2,28} 171 * @ingroup DBus 172 */ 173 class GIOMM_API ArgInfo final 174 { 175 public: 176 #ifndef DOXYGEN_SHOULD_SKIP_THIS 177 using CppObjectType = ArgInfo; 178 using BaseObjectType = GDBusArgInfo; 179 #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 180 181 182 /** Increment the reference count for this object. 183 * You should never need to do this manually - use the object via a RefPtr instead. 184 */ 185 void reference() const; 186 187 /** Decrement the reference count for this object. 188 * You should never need to do this manually - use the object via a RefPtr instead. 189 */ 190 void unreference() const; 191 192 ///Provides access to the underlying C instance. 193 GDBusArgInfo* gobj(); 194 195 ///Provides access to the underlying C instance. 196 const GDBusArgInfo* gobj() const; 197 198 ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. 199 GDBusArgInfo* gobj_copy() const; 200 201 ArgInfo() = delete; 202 203 // noncopyable 204 ArgInfo(const ArgInfo&) = delete; 205 ArgInfo& operator=(const ArgInfo&) = delete; 206 207 protected: 208 // Do not derive this. Gio::DBus::ArgInfo can neither be constructed nor deleted. 209 210 void operator delete(void*, std::size_t); 211 212 private: 213 214 215 public: 216 217 218 }; 219 220 /** Stores information about a method on an D-Bus interface. 221 * 222 * @newin{2,28} 223 * @ingroup DBus 224 */ 225 class GIOMM_API MethodInfo final 226 { 227 public: 228 #ifndef DOXYGEN_SHOULD_SKIP_THIS 229 using CppObjectType = MethodInfo; 230 using BaseObjectType = GDBusMethodInfo; 231 #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 232 233 234 /** Increment the reference count for this object. 235 * You should never need to do this manually - use the object via a RefPtr instead. 236 */ 237 void reference() const; 238 239 /** Decrement the reference count for this object. 240 * You should never need to do this manually - use the object via a RefPtr instead. 241 */ 242 void unreference() const; 243 244 ///Provides access to the underlying C instance. 245 GDBusMethodInfo* gobj(); 246 247 ///Provides access to the underlying C instance. 248 const GDBusMethodInfo* gobj() const; 249 250 ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. 251 GDBusMethodInfo* gobj_copy() const; 252 253 MethodInfo() = delete; 254 255 // noncopyable 256 MethodInfo(const MethodInfo&) = delete; 257 MethodInfo& operator=(const MethodInfo&) = delete; 258 259 protected: 260 // Do not derive this. Gio::DBus::MethodInfo can neither be constructed nor deleted. 261 262 void operator delete(void*, std::size_t); 263 264 private: 265 266 267 public: 268 269 270 }; 271 272 /** Stores information about a signal on a D-Bus interface. 273 * 274 * @newin{2,28} 275 * @ingroup DBus 276 */ 277 class GIOMM_API SignalInfo final 278 { 279 public: 280 #ifndef DOXYGEN_SHOULD_SKIP_THIS 281 using CppObjectType = SignalInfo; 282 using BaseObjectType = GDBusSignalInfo; 283 #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 284 285 286 /** Increment the reference count for this object. 287 * You should never need to do this manually - use the object via a RefPtr instead. 288 */ 289 void reference() const; 290 291 /** Decrement the reference count for this object. 292 * You should never need to do this manually - use the object via a RefPtr instead. 293 */ 294 void unreference() const; 295 296 ///Provides access to the underlying C instance. 297 GDBusSignalInfo* gobj(); 298 299 ///Provides access to the underlying C instance. 300 const GDBusSignalInfo* gobj() const; 301 302 ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. 303 GDBusSignalInfo* gobj_copy() const; 304 305 SignalInfo() = delete; 306 307 // noncopyable 308 SignalInfo(const SignalInfo&) = delete; 309 SignalInfo& operator=(const SignalInfo&) = delete; 310 311 protected: 312 // Do not derive this. Gio::DBus::SignalInfo can neither be constructed nor deleted. 313 314 void operator delete(void*, std::size_t); 315 316 private: 317 318 319 public: 320 321 322 }; 323 324 /** Stores information about a property on a D-Bus interface. 325 * 326 * @newin{2,28} 327 * @ingroup DBus 328 */ 329 class GIOMM_API PropertyInfo final 330 { 331 public: 332 #ifndef DOXYGEN_SHOULD_SKIP_THIS 333 using CppObjectType = PropertyInfo; 334 using BaseObjectType = GDBusPropertyInfo; 335 #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 336 337 338 /** Increment the reference count for this object. 339 * You should never need to do this manually - use the object via a RefPtr instead. 340 */ 341 void reference() const; 342 343 /** Decrement the reference count for this object. 344 * You should never need to do this manually - use the object via a RefPtr instead. 345 */ 346 void unreference() const; 347 348 ///Provides access to the underlying C instance. 349 GDBusPropertyInfo* gobj(); 350 351 ///Provides access to the underlying C instance. 352 const GDBusPropertyInfo* gobj() const; 353 354 ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. 355 GDBusPropertyInfo* gobj_copy() const; 356 357 PropertyInfo() = delete; 358 359 // noncopyable 360 PropertyInfo(const PropertyInfo&) = delete; 361 PropertyInfo& operator=(const PropertyInfo&) = delete; 362 363 protected: 364 // Do not derive this. Gio::DBus::PropertyInfo can neither be constructed nor deleted. 365 366 void operator delete(void*, std::size_t); 367 368 private: 369 370 371 public: 372 373 374 }; 375 376 /** Stores information about a D-Bus interface. 377 * 378 * @newin{2,28} 379 * @ingroup DBus 380 */ 381 class GIOMM_API InterfaceInfo final 382 { 383 public: 384 #ifndef DOXYGEN_SHOULD_SKIP_THIS 385 using CppObjectType = InterfaceInfo; 386 using BaseObjectType = GDBusInterfaceInfo; 387 #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 388 389 /** Get the GType for this class, for use with the underlying GObject type system. 390 */ 391 static GType get_type() G_GNUC_CONST; 392 393 394 /** Increment the reference count for this object. 395 * You should never need to do this manually - use the object via a RefPtr instead. 396 */ 397 void reference() const; 398 399 /** Decrement the reference count for this object. 400 * You should never need to do this manually - use the object via a RefPtr instead. 401 */ 402 void unreference() const; 403 404 ///Provides access to the underlying C instance. 405 GDBusInterfaceInfo* gobj(); 406 407 ///Provides access to the underlying C instance. 408 const GDBusInterfaceInfo* gobj() const; 409 410 ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. 411 GDBusInterfaceInfo* gobj_copy() const; 412 413 InterfaceInfo() = delete; 414 415 // noncopyable 416 InterfaceInfo(const InterfaceInfo&) = delete; 417 InterfaceInfo& operator=(const InterfaceInfo&) = delete; 418 419 protected: 420 // Do not derive this. Gio::DBus::InterfaceInfo can neither be constructed nor deleted. 421 422 void operator delete(void*, std::size_t); 423 424 private: 425 426 427 public: 428 429 /** Looks up information about a method. 430 * 431 * The cost of this function is O(n) in number of methods unless 432 * g_dbus_interface_info_cache_build() has been used on @a info. 433 * 434 * @newin{2,26} 435 * 436 * @param name A D-Bus method name (typically in CamelCase). 437 * @return A DBusMethodInfo or <tt>nullptr</tt> if not found. Do not free, it is owned by @a info. 438 */ 439 Glib::RefPtr<MethodInfo> lookup_method(const Glib::ustring& name); 440 441 /** Looks up information about a method. 442 * 443 * The cost of this function is O(n) in number of methods unless 444 * g_dbus_interface_info_cache_build() has been used on @a info. 445 * 446 * @newin{2,26} 447 * 448 * @param name A D-Bus method name (typically in CamelCase). 449 * @return A DBusMethodInfo or <tt>nullptr</tt> if not found. Do not free, it is owned by @a info. 450 */ 451 Glib::RefPtr<const MethodInfo> lookup_method(const Glib::ustring& name) const; 452 453 454 /** Looks up information about a signal. 455 * 456 * The cost of this function is O(n) in number of signals unless 457 * g_dbus_interface_info_cache_build() has been used on @a info. 458 * 459 * @newin{2,26} 460 * 461 * @param name A D-Bus signal name (typically in CamelCase). 462 * @return A DBusSignalInfo or <tt>nullptr</tt> if not found. Do not free, it is owned by @a info. 463 */ 464 Glib::RefPtr<SignalInfo> lookup_signal(const Glib::ustring& name); 465 466 /** Looks up information about a signal. 467 * 468 * The cost of this function is O(n) in number of signals unless 469 * g_dbus_interface_info_cache_build() has been used on @a info. 470 * 471 * @newin{2,26} 472 * 473 * @param name A D-Bus signal name (typically in CamelCase). 474 * @return A DBusSignalInfo or <tt>nullptr</tt> if not found. Do not free, it is owned by @a info. 475 */ 476 Glib::RefPtr<const SignalInfo> lookup_signal(const Glib::ustring& name) const; 477 478 479 /** Looks up information about a property. 480 * 481 * The cost of this function is O(n) in number of properties unless 482 * g_dbus_interface_info_cache_build() has been used on @a info. 483 * 484 * @newin{2,26} 485 * 486 * @param name A D-Bus property name (typically in CamelCase). 487 * @return A DBusPropertyInfo or <tt>nullptr</tt> if not found. Do not free, it is owned by @a info. 488 */ 489 Glib::RefPtr<PropertyInfo> lookup_property(const Glib::ustring& name); 490 491 /** Looks up information about a property. 492 * 493 * The cost of this function is O(n) in number of properties unless 494 * g_dbus_interface_info_cache_build() has been used on @a info. 495 * 496 * @newin{2,26} 497 * 498 * @param name A D-Bus property name (typically in CamelCase). 499 * @return A DBusPropertyInfo or <tt>nullptr</tt> if not found. Do not free, it is owned by @a info. 500 */ 501 Glib::RefPtr<const PropertyInfo> lookup_property(const Glib::ustring& name) const; 502 503 504 /** Builds a lookup-cache to speed up 505 * g_dbus_interface_info_lookup_method(), 506 * g_dbus_interface_info_lookup_signal() and 507 * g_dbus_interface_info_lookup_property(). 508 * 509 * If this has already been called with @a info, the existing cache is 510 * used and its use count is increased. 511 * 512 * Note that @a info cannot be modified until 513 * g_dbus_interface_info_cache_release() is called. 514 * 515 * @newin{2,44} 516 */ 517 void cache_build(); 518 519 /** Decrements the usage count for the cache for @a info built by 520 * g_dbus_interface_info_cache_build() (if any) and frees the 521 * resources used by the cache if the usage count drops to zero. 522 * 523 * @newin{2,44} 524 */ 525 void cache_release(); 526 527 //TODO: _WRAP_METHOD(void generate_xml(guint indent, GString* string_builder), g_dbus_interface_info_generate_xml) 528 529 530 }; 531 532 /** NodeInfo - Stores information about nodes in a remote object 533 * hierarchy. 534 * 535 * @newin{2,28} 536 * @ingroup DBus 537 */ 538 class GIOMM_API NodeInfo final 539 { 540 public: 541 #ifndef DOXYGEN_SHOULD_SKIP_THIS 542 using CppObjectType = NodeInfo; 543 using BaseObjectType = GDBusNodeInfo; 544 #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 545 546 547 /** Increment the reference count for this object. 548 * You should never need to do this manually - use the object via a RefPtr instead. 549 */ 550 void reference() const; 551 552 /** Decrement the reference count for this object. 553 * You should never need to do this manually - use the object via a RefPtr instead. 554 */ 555 void unreference() const; 556 557 ///Provides access to the underlying C instance. 558 GDBusNodeInfo* gobj(); 559 560 ///Provides access to the underlying C instance. 561 const GDBusNodeInfo* gobj() const; 562 563 ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. 564 GDBusNodeInfo* gobj_copy() const; 565 566 NodeInfo() = delete; 567 568 // noncopyable 569 NodeInfo(const NodeInfo&) = delete; 570 NodeInfo& operator=(const NodeInfo&) = delete; 571 572 protected: 573 // Do not derive this. Gio::DBus::NodeInfo can neither be constructed nor deleted. 574 575 void operator delete(void*, std::size_t); 576 577 private: 578 579 580 public: 581 582 /** Parses @a xml_data and returns a DBusNodeInfo representing the data. 583 * 584 * The introspection XML must contain exactly one top-level 585 * <node> element. 586 * 587 * Note that this routine is using a 588 * [GMarkup][glib-Simple-XML-Subset-Parser.description]-based 589 * parser that only accepts a subset of valid XML documents. 590 * 591 * @newin{2,26} 592 * 593 * @param xml_data Valid D-Bus introspection XML. 594 * @return A DBusNodeInfo structure or <tt>nullptr</tt> if @a error is set. Free 595 * with g_dbus_node_info_unref(). 596 */ 597 598 599 /** @throw Glib::Error. 600 */ 601 static Glib::RefPtr<NodeInfo> create_for_xml(const Glib::ustring& xml_data); 602 603 604 /** Looks up information about an interface. 605 * 606 * The cost of this function is O(n) in number of interfaces. 607 * 608 * @newin{2,26} 609 * 610 * @param name A D-Bus interface name. 611 * @return A DBusInterfaceInfo or <tt>nullptr</tt> if not found. Do not free, it is owned by @a info. 612 */ 613 Glib::RefPtr<InterfaceInfo> lookup_interface(const Glib::ustring& name); 614 615 /** Looks up information about an interface. 616 * 617 * The cost of this function is O(n) in number of interfaces. 618 * 619 * @newin{2,26} 620 * 621 * @param name A D-Bus interface name. 622 * @return A DBusInterfaceInfo or <tt>nullptr</tt> if not found. Do not free, it is owned by @a info. 623 */ 624 Glib::RefPtr<const InterfaceInfo> lookup_interface(const Glib::ustring& name) const; 625 626 /** Looks up information about the first interface. 627 */ 628 Glib::RefPtr<InterfaceInfo> lookup_interface(); 629 630 /** Looks up information about the first interface. 631 */ 632 Glib::RefPtr<const InterfaceInfo> lookup_interface() const; 633 634 //TODO: _WRAP_METHOD(void generate_xml(guint indent, GString* string_builder), g_dbus_node_info_generate_xml) 635 636 637 }; 638 639 } //namespace DBus 640 641 } // namespace Gio 642 643 644 namespace Glib 645 { 646 647 /** A Glib::wrap() method for this object. 648 * 649 * @param object The C instance. 650 * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. 651 * @result A C++ instance that wraps this C instance. 652 * 653 * @relates Gio::DBus::AnnotationInfo 654 */ 655 GIOMM_API 656 Glib::RefPtr<Gio::DBus::AnnotationInfo> wrap(GDBusAnnotationInfo* object, bool take_copy = false); 657 658 } // namespace Glib 659 660 661 namespace Glib 662 { 663 664 /** A Glib::wrap() method for this object. 665 * 666 * @param object The C instance. 667 * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. 668 * @result A C++ instance that wraps this C instance. 669 * 670 * @relates Gio::DBus::ArgInfo 671 */ 672 GIOMM_API 673 Glib::RefPtr<Gio::DBus::ArgInfo> wrap(GDBusArgInfo* object, bool take_copy = false); 674 675 } // namespace Glib 676 677 678 namespace Glib 679 { 680 681 /** A Glib::wrap() method for this object. 682 * 683 * @param object The C instance. 684 * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. 685 * @result A C++ instance that wraps this C instance. 686 * 687 * @relates Gio::DBus::MethodInfo 688 */ 689 GIOMM_API 690 Glib::RefPtr<Gio::DBus::MethodInfo> wrap(GDBusMethodInfo* object, bool take_copy = false); 691 692 } // namespace Glib 693 694 695 namespace Glib 696 { 697 698 /** A Glib::wrap() method for this object. 699 * 700 * @param object The C instance. 701 * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. 702 * @result A C++ instance that wraps this C instance. 703 * 704 * @relates Gio::DBus::SignalInfo 705 */ 706 GIOMM_API 707 Glib::RefPtr<Gio::DBus::SignalInfo> wrap(GDBusSignalInfo* object, bool take_copy = false); 708 709 } // namespace Glib 710 711 712 namespace Glib 713 { 714 715 /** A Glib::wrap() method for this object. 716 * 717 * @param object The C instance. 718 * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. 719 * @result A C++ instance that wraps this C instance. 720 * 721 * @relates Gio::DBus::PropertyInfo 722 */ 723 GIOMM_API 724 Glib::RefPtr<Gio::DBus::PropertyInfo> wrap(GDBusPropertyInfo* object, bool take_copy = false); 725 726 } // namespace Glib 727 728 729 namespace Glib 730 { 731 732 /** A Glib::wrap() method for this object. 733 * 734 * @param object The C instance. 735 * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. 736 * @result A C++ instance that wraps this C instance. 737 * 738 * @relates Gio::DBus::InterfaceInfo 739 */ 740 GIOMM_API 741 Glib::RefPtr<Gio::DBus::InterfaceInfo> wrap(GDBusInterfaceInfo* object, bool take_copy = false); 742 743 #ifndef DOXYGEN_SHOULD_SKIP_THIS 744 template <> 745 class GIOMM_API Value<Glib::RefPtr<Gio::DBus::InterfaceInfo>> : public Glib::Value_RefPtrBoxed<Gio::DBus::InterfaceInfo> 746 { 747 public: get()748 CppType get() const { return Glib::wrap(static_cast<GDBusInterfaceInfo*>(get_boxed()), true); } 749 }; 750 #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 751 752 } // namespace Glib 753 754 755 namespace Glib 756 { 757 758 /** A Glib::wrap() method for this object. 759 * 760 * @param object The C instance. 761 * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. 762 * @result A C++ instance that wraps this C instance. 763 * 764 * @relates Gio::DBus::NodeInfo 765 */ 766 GIOMM_API 767 Glib::RefPtr<Gio::DBus::NodeInfo> wrap(GDBusNodeInfo* object, bool take_copy = false); 768 769 } // namespace Glib 770 771 772 #endif /* _GIOMM_DBUSINTROSPECTION_H */ 773 774