+ /** Property data types */
+ enum property_type {
+ PTYPE_BOOL,
+ PTYPE_UNSIGNED,
+ PTYPE_STRING,
+ PTYPE_NODE
+ };
+
+ /** Information about a stored property. A vector of these structures
+ * is returned by get_properties().
+ * @see get_properties */
+ struct property_info {
+ property_info() {}
+ property_info(property_type t, const std::string &n, unsigned c = 1) : type(t), name(n), count(c) {}
+ ~property_info() {}
+
+ property_info(const property_info &other) : type(other.type), name(other.name), count(other.count) {}
+ const property_info &operator=(const property_info &other);
+
+ property_type type; /**< Data type of property. */
+ std::string name; /**< Name of property. */
+ unsigned count; /**< Number of occurrences. */
+ };
+ // Cint currently doesn't like vector<..,default_alloc> but malloc_alloc is
+ // unstandardized and not supported by newer GCCs. This ugly hack will go
+ // away soon!
+#if (defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ < 97)) || (defined(G__GNUC) && (G__GNUC == 2) && (G__GNUC_MINOR < 97))
+ typedef std::vector<property_info,malloc_alloc> propinfovector;
+#else
+ typedef std::vector<property_info> propinfovector;
+#endif
+