From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:33343) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RrCT6-0006Lu-U4 for qemu-devel@nongnu.org; Sat, 28 Jan 2012 12:53:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RrCT5-0003s3-Lj for qemu-devel@nongnu.org; Sat, 28 Jan 2012 12:53:40 -0500 Received: from cantor2.suse.de ([195.135.220.15]:43333 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RrCT5-0003rw-Fn for qemu-devel@nongnu.org; Sat, 28 Jan 2012 12:53:39 -0500 Received: from relay1.suse.de (unknown [195.135.220.254]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 3EAB98FFEB for ; Sat, 28 Jan 2012 18:53:38 +0100 (CET) From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Sat, 28 Jan 2012 18:51:19 +0100 Message-Id: <1327773079-31169-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH] qom: Introduce object_class_is_abstract() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Andreas=20F=C3=A4rber?= Since struct TypeImpl is not public, this is useful for enumerating available types. Signed-off-by: Andreas F=C3=A4rber --- include/qemu/object.h | 8 ++++++++ qom/object.c | 5 +++++ 2 files changed, 13 insertions(+), 0 deletions(-) diff --git a/include/qemu/object.h b/include/qemu/object.h index ba37850..8ec45f2 100644 --- a/include/qemu/object.h +++ b/include/qemu/object.h @@ -428,6 +428,14 @@ ObjectClass *object_class_dynamic_cast(ObjectClass *= klass, */ const char *object_class_get_name(ObjectClass *klass); =20 +/** + * object_class_is_abstract: + * @klass: The class to obtain the abstractness for. + * + * Returns: Whether @klass is an abstract class or not. + */ +bool object_class_is_abstract(ObjectClass *klass); + ObjectClass *object_class_by_name(const char *typename); =20 void object_class_foreach(void (*fn)(ObjectClass *klass, void *opaque), diff --git a/qom/object.c b/qom/object.c index 57cc592..1821959 100644 --- a/qom/object.c +++ b/qom/object.c @@ -451,6 +451,11 @@ const char *object_class_get_name(ObjectClass *klass= ) return klass->type->name; } =20 +bool object_class_is_abstract(ObjectClass *klass) +{ + return klass->type->abstract; +} + ObjectClass *object_class_by_name(const char *typename) { TypeImpl *type =3D type_get_by_name(typename); --=20 1.7.7