[Spice-devel] [spice-common 4/5] codegen: Factor common is_server/is_client code
Christophe Fergeau
cfergeau at redhat.com
Fri Jun 24 08:35:48 UTC 2016
On Fri, Jun 24, 2016 at 04:04:36AM -0400, Frediano Ziglio wrote:
>
> > Hi,
> >
> > what will happen if both '--server' and '--client' are used on the
> > commandline?
> > Only client's will be generated ?
> >
> > Pavel
> >
>
> Agreed, form the comment on code and code looks like you can specify both
> (client and server) to have both processed, from your comments looks like
> you can't specify both.
Agreed too that it won't allow both to be specified, I'd say this does
not make sense though, and that they should be mutually exclusive.
But I don't mind dropping this patch.
Christophe
>
> Frediano
>
> > On Thu, 2016-06-23 at 12:57 +0200, Christophe Fergeau wrote:
> > > We currently have 2 very similar codepaths in the marshaller and
> > > demarshaller cases which check whether we are building client or server
> > > code, error out if we specified neither on the command line and then
> > > they call the same function with True or False for client/server.
> > >
> > > We can factor this code a little bit to make things a bit simpler.
> > > ---
> > > spice_codegen.py | 26 +++++++++++---------------
> > > 1 file changed, 11 insertions(+), 15 deletions(-)
> > >
> > > diff --git a/spice_codegen.py b/spice_codegen.py
> > > index 410acbd..e1aab3a 100755
> > > --- a/spice_codegen.py
> > > +++ b/spice_codegen.py
> > > @@ -217,28 +217,24 @@ if options.includes:
> > > if options.generate_enums or options.generate_dissector:
> > > write_enums(writer, options.generate_dissector)
> > >
> > > +if not options.server and not options.client:
> > > + print >> sys.stderr, "Must specify client and/or server"
> > > + sys.exit(1)
> > > +
> > > +if options.client:
> > > + is_client = True
> > > +else:
> > > + is_client = False
> > > +
> > > if options.generate_demarshallers:
> > > - if not options.server and not options.client:
> > > - print >> sys.stderr, "Must specify client and/or server"
> > > - sys.exit(1)
> > > demarshal.write_includes(writer)
> > > -
> > > - if options.server:
> > > - demarshal.write_protocol_parser(writer, proto, False)
> > > - if options.client:
> > > - demarshal.write_protocol_parser(writer, proto, True)
> > > + demarshal.write_protocol_parser(writer, proto, is_client)
> > >
> > > if options.generate_marshallers or (options.struct_marshallers and
> > > len(options.struct_marshallers) > 0):
> > > marshal.write_includes(writer)
> > >
> > > if options.generate_marshallers:
> > > - if not options.server and not options.client:
> > > - print >> sys.stderr, "Must specify client and/or server"
> > > - sys.exit(1)
> > > - if options.server:
> > > - marshal.write_protocol_marshaller(writer, proto, False,
> > > options.private_marshallers)
> > > - if options.client:
> > > - marshal.write_protocol_marshaller(writer, proto, True,
> > > options.private_marshallers)
> > > + marshal.write_protocol_marshaller(writer, proto, is_client,
> > > options.private_marshallers)
> > >
> > > if options.struct_marshallers:
> > > for structname in options.struct_marshallers:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20160624/10858d7e/attachment.sig>
More information about the Spice-devel
mailing list