All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: aliguori@amazon.com, sw@weilnetz.de, mjt@tls.msk.ru,
	qemu-devel@nongnu.org, lcapitulino@redhat.com,
	blauwirbel@gmail.com, stefanha@redhat.com, afaerber@suse.de,
	rth@twiddle.net
Subject: Re: [Qemu-devel] [RFC 0/5] -object/object-add support custom location and 2nd stage initialization
Date: Fri, 10 Jan 2014 12:38:57 +0100	[thread overview]
Message-ID: <52CFDBD1.5030705@redhat.com> (raw)
In-Reply-To: <20140110122810.7d34b120@thinkpad>

Il 10/01/2014 12:28, Igor Mammedov ha scritto:
>> > Regarding the "overloading" of the realize name, I was against it in
>> > previous discussion and I still am (I was in favor of something like
>> > UserCreatable and naming the method "complete" or "construct"), but I
>> > didn't want to sound too negative. :)
> issue with naming interface as CommandLine or UserCreatable is that, it could
> be used not only by CLI/user but also it could be used internally. For example
> see "[PATCH 3/5] virtio_rng: use object_realize interface instead of calling
> backend API", where default backend is created by frontend.

I see.  Yes, with something like UserCreatable, you would not have that
patch.  Instead, UserCreatable's complete method would redirect to the
backend-specific API.

BTW, note that UserCreatable's complete method should take a
UserCreatable (or whatever the name is) as the first parameter, not an
Object.  This would affect that patch, too.

> how about naming it for what it is: object-2nd-stage-init

That would also work for me (TwoStageConstructable or something like that).

One advantage of UserCreatable is that -object/object_add could check
for it and reject creation of objects that are not meant for
command-line instantiation.  You could do the same for
TwoStageConstructable, but it would look weird to define an object as
two-stage constructable with an empty complete method.

With a name like UserCreatable, instead, it would be quite natural to do
this:

void user_creatable_complete(UserCreatable *uc, Error **errp)
{
    UserCreatableClass *ucc = USER_CREATABLE_GET_CLASS(uc);
    if (ucc->complete) {
        ucc->complete(uc, errp);
    }
}

> neutral object-complementary-interface that could be extended later with
> another methods

No, we don't want a hodge-podge interface that's basically UserCreatable
except in the name. :)

Paolo

  reply	other threads:[~2014-01-10 11:39 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-08 16:09 [Qemu-devel] [RFC 0/5] -object/object-add support custom location and 2nd stage initialization Igor Mammedov
2014-01-08 16:09 ` [Qemu-devel] [PATCH 1/5] object_add: consolidate error handling Igor Mammedov
2014-01-08 16:09 ` [Qemu-devel] [PATCH 2/5] add optional 2nd stage initialization to -object/object-add/object_add commands Igor Mammedov
2014-01-08 16:09 ` [Qemu-devel] [PATCH 3/5] virtio_rng: use object_realize interface instead of calling backend API Igor Mammedov
2014-01-08 16:09 ` [Qemu-devel] [PATCH 4/5] vl.c: -object: handle duplicate 'id' properly Igor Mammedov
2014-01-08 16:09 ` [Qemu-devel] [PATCH 5/5] -object/object-add: use custom default object location if provided Igor Mammedov
2014-01-09  4:35   ` Stefan Hajnoczi
2014-01-10 10:59     ` Igor Mammedov
2014-01-08 16:24 ` [Qemu-devel] [RFC 0/5] -object/object-add support custom location and 2nd stage initialization Paolo Bonzini
2014-01-08 16:45   ` Andreas Färber
2014-01-08 17:00     ` Igor Mammedov
2014-01-08 16:51   ` Igor Mammedov
2014-01-08 17:33     ` Paolo Bonzini
2014-01-10 11:28       ` Igor Mammedov
2014-01-10 11:38         ` Paolo Bonzini [this message]
2014-01-10 14:44           ` Igor Mammedov
2014-01-10 15:40             ` Paolo Bonzini
2014-01-10 15:31         ` Igor Mammedov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52CFDBD1.5030705@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=afaerber@suse.de \
    --cc=aliguori@amazon.com \
    --cc=blauwirbel@gmail.com \
    --cc=imammedo@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=mjt@tls.msk.ru \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=stefanha@redhat.com \
    --cc=sw@weilnetz.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.