Add post about Vala interfaces

This commit is contained in:
Gergely Polonkai 2016-02-26 15:24:32 +01:00
parent 3769d93439
commit 6e619efc75
2 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,33 @@
---
layout: post
title: "Vala interface madness"
date: 2016-02-26 15:07:62+02:00
tags: [vala, development]
published: true
author:
name: "Gergely Polonkai"
email: "gergely@polonkai.eu"
---
Although I have just started making it in C, I decided to move my
Matrix GLib SDK to Vala. First to learn a new language, and second
because it is much easier to write GObject based stuff with it.
For the first step I created a `.vapi` file from my existing sources,
so the whole SDK prototype was available for me in Vala.
I had a `MatrixEvent` class that implemented the `GInitable`
interface, and many others were subclassed `MatrixEvent`. For some
reason I dont remember, I created the following header for one of the
event classes:
public class MatrixPresenceEvent : GLib.Object, GLib.Initable {
This is nice and everything, but as I didnt create an `init()` method
for `MatrixPresenceEvent`, it tried to use the one from the parent
class and somehow got into an infinite loop. The Vala transformer
(`valac`), however, doesnt mention this.
Lessons learned: if you implement an interface on a subclass that is
implemented by the parent dont forget to add the necessary functions
to the subclass.

4
blog/tag/vala.html Normal file
View File

@ -0,0 +1,4 @@
---
layout: posts-by-tag
tag: vala
---