GObject の GInterfaces について基本に戻ることにしたので、もう一度基本チュートリアルを読みに行きました。この章では、非常に単純な GInterface を定義する方法を見ることができます。
ご覧のとおり、メソッドmaman_ibaz_do_actionとのシグネチャは、シンボルとmaman_ibaz_do_somethingのシグネチャとそれぞれ一致します。_MamanIbazInterface.do_action_MamanIbazInterface.do_something
しかし、そうしないとどうなりますか?私は実際の例を持っています。GInterface はgpollableinputstream (ソースはこちら) です。特にメソッドは read_nonblocking() で、VT に 4 つのパラメーターがありますが、後でヘッダー関数に 5 つのパラメーターがあります。
したがって、このインターフェイスの実装者が前者 (ここで実際の例) をオーバーライドする場合、他のクラスからこの実装を呼び出すにはどうすればよいでしょうか?