[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 06/12] qapi: Track owner of each object membe
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH v6 06/12] qapi: Track owner of each object member |
Date: |
Fri, 2 Oct 2015 16:35:59 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 |
On 10/02/2015 11:05 AM, Markus Armbruster wrote:
>> Might be doable, but then we'd have to generate the implicit object name
>> prior to creating its Member objects (thus splitting
>> _make_implicit_object_type() into two parts).
>
> def _make_implicit_object_type(self, name, role, members):
> if not members:
> return None
> (1) name = ':obj-%s-%s' % (name, role)
> if not self.lookup_entity(name, QAPISchemaObjectType):
> (2) self._def_entity(QAPISchemaObjectType(name, None, None,
> members, None))
> return name
>
> We create the implicit object type name at (1), and we associate the
> type and its members in (2), by creating references from type to
> members. Isn't that the natural place for creating back-references,
> too? Assuming we need them.
Okay, I don't think we need a backref; a string name is good enough. And
I like your idea of making the implicit object name something where the
suffix is usable as-is. So I'm currently playing with:
class QAPISchemaObjectTypeMember...
def __init__...
self.owner = None
def check...
assert self.owner
class QAPISchemaObjectType...
def __init__(..., members):
for m in members:
assert isinstance(m, QAPISchemaObjectTypeMember)
assert not m.owner
m.owner = self.name
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PATCH v6 07/12] qapi: Detect collisions in C member names, (continued)
- [Qemu-devel] [PATCH v6 07/12] qapi: Detect collisions in C member names, Eric Blake, 2015/10/08
- [Qemu-devel] [PATCH v6 06/12] qapi: Track owner of each object member, Eric Blake, 2015/10/08
- [Qemu-devel] [PATCH v6 02/12] qapi: Don't use info as witness of implicit object type, Eric Blake, 2015/10/08
- Re: [Qemu-devel] [PATCH v6 02/12] qapi: Don't use info as witness of implicit object type, Markus Armbruster, 2015/10/08
- Re: [Qemu-devel] [PATCH v6 02/12] qapi: Don't use info as witness of implicit object type, Eric Blake, 2015/10/08
- Re: [Qemu-devel] [PATCH v6 02/12] qapi: Don't use info as witness of implicit object type, Markus Armbruster, 2015/10/08
- Re: [Qemu-devel] [PATCH v6 02/12] qapi: Don't use info as witness of implicit object type, Eric Blake, 2015/10/08
- Re: [Qemu-devel] [PATCH v6 02/12] qapi: Don't use info as witness of implicit object type, Markus Armbruster, 2015/10/08
- Re: [Qemu-devel] [PATCH v6 02/12] qapi: Don't use info as witness of implicit object type, Eric Blake, 2015/10/08
- Re: [Qemu-devel] [PATCH v6 02/12] qapi: Don't use info as witness of implicit object type, Markus Armbruster, 2015/10/08
- Re: [Qemu-devel] [PATCH v6 02/12] qapi: Don't use info as witness of implicit object type, Eric Blake, 2015/10/08
- Re: [Qemu-devel] [PATCH v6 02/12] qapi: Don't use info as witness of implicit object type, Markus Armbruster, 2015/10/08