Ejemplo n.º 1
0
 static void OverrideSocketEvent(GLib.GType gtype, SocketEventNativeDelegate callback)
 {
     unsafe {
         IntPtr *raw_ptr = (IntPtr *)(((long)gtype.GetClassPtr()) + (long)class_abi.GetFieldOffset("event"));
         *raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate)callback);
     }
 }
Ejemplo n.º 2
0
        private void InternalSocketEvent(GLib.SocketClientEvent evnt, GLib.ISocketConnectable connectable, GLib.IOStream connection)
        {
            SocketEventNativeDelegate unmanaged = class_abi.BaseOverride <SocketEventNativeDelegate>(this.LookupGType(), "event");

            if (unmanaged == null)
            {
                return;
            }

            unmanaged(this.Handle, (int)evnt, connectable == null ? IntPtr.Zero : ((connectable is GLib.Object) ? (connectable as GLib.Object).Handle : (connectable as GLib.SocketConnectableAdapter).Handle), connection == null ? IntPtr.Zero : connection.Handle);
        }
Ejemplo n.º 3
0
        private void InternalSocketEvent(out GLib.SocketListenerEvent evnt, GLib.Socket socket)
        {
            SocketEventNativeDelegate unmanaged = class_abi.BaseOverride <SocketEventNativeDelegate>(this.LookupGType(), "event");

            if (unmanaged == null)
            {
                throw new InvalidOperationException("No base method to invoke");
            }

            int native_evnt;

            unmanaged(this.Handle, out native_evnt, socket == null ? IntPtr.Zero : socket.Handle);
            evnt = (GLib.SocketListenerEvent)native_evnt;
        }