Oh god, they use opaque handlers. See the orientdb type as a context. You might abstract or hide it with a static global. Careful with the initalization of statics in vala. I am not experienced with vapis, but i believe you can instantiate a static field in a class within it.
On Sat, May 14, 2016 at 20:57 Daniel Brendle <grindh...@skarphed.org> wrote: > Hi, Guys > > I want to write VAPI bindings for liborient [0]. > > While analyzing the C-code i came across the functions which turned out > to work in a somewhat unexpected way. > Usually one has some struct, methods to create and free the struct and a > set of methods that operate on that struct. Such code can be converted > to VAPI bindings in a straightforward way. > However liborient keeps managing stuff like this: > > - One struct to represent a handle > - One struct to represent a connection > - A set of methods which operate on _both_ of the previously mentioned > structs. > > A typical method-definition looks like this: > > long o_bin_dataclustercount(orientdb *o, orientdb_con *c, struct timeval > *timeout, int nonblocking, short clusternumber); > > In Vala I'd like to use the lib like this: > var handle = new OrientDB(); > var connection = handle.connect("foo","bar"); > connection.dataclustercount(sometimeval, 1, 1); > > Under the given circumstances I have the feeling that the best thing one > can achieve is something like this: > > var handle = new OrientDB(); > var connection = Connection.connect(handle, "foo", "bar") > handle.dataclustercount(connection, sometimeval, 1, 1); > > Am I right? Is there any possibility to cover this C-Pattern? > > Second question: The library imports <sys/time.h> at some point and uses > the timeval definition from in there in method signatures. How can i > write equivalent Vala Types to write Vala signatures for them? > > Thanks in Advance and a nice evening, > grindhold > > > _______________________________________________ > vala-list mailing list > vala-list@gnome.org > https://mail.gnome.org/mailman/listinfo/vala-list > _______________________________________________ vala-list mailing list vala-list@gnome.org https://mail.gnome.org/mailman/listinfo/vala-list