Re: [Vala] How to properly define struct in manually written VAPI?
- From: Al Thomas <astavale yahoo co uk>
- To: vala <vala-list gnome org>, "marcin saepia net" <marcin saepia net>
- Subject: Re: [Vala] How to properly define struct in manually written VAPI?
- Date: Wed, 2 Mar 2016 16:43:57 +0000 (UTC)
From: "marcin saepia net" <marcin saepia net>
Sent: Wednesday, 2 March 2016, 16:08
Subject: Re: [Vala] How to properly define struct in manually written VAPI?
thank you for suggestions. I'll try to implement them.
But should I keep it as struct or rather compact class?
As a struct.
A compact class in Vala is used to bind a set of function calls
that operate on a struct, the struct being the instance data.
For a compact class Vala will automatically generate the first parameter
of the function call to be a struct of the right type to pass the
instance data.
Regarding json-glib: I intentionally try to avoid it. I was able to make
segfault even with a few simple attempts that should be tested in properly
written library, I don't need mapping for GObject properties, and I think I
encountered also some issues with big integers, I don't remember now. In my
use case more low level, better-tested library will a be better choice.
json-glib is perfectly stable for the uses I'm putting it to. I remember it
took a while to get used to the API. Here's an example that prints out a
JSON array in JSON. The format is:
{ "script" : [] }
It is in Genie, so meaningful whitespace and types are after identifiers:
def print_script( script:Json.Node )
print "about to create JSON generator"
var test = new Json.Generator
test.set_pretty( true )
print "about to create root node"
var root = new Json.Node( Json.NodeType.OBJECT )
print "about to create script object"
var script_object = new Json.Object
print "about to set script member"
script_object.set_member( "script", script )
print "about to add script object to root node"
root.set_object( script_object )
print "about to set root"
test.set_root( root )
length:size_t
print "about to print JSON"
print test.to_data( out length )
Regards,
Al
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]