private static void InternalOnMessageReceivedCallback(long id, string name, IntPtr data, UIntPtr dataLength, bool isReliable, IntPtr userData)
 {
     NativeMessageListenerHelper.OnMessageReceived permanentCallback = Callbacks.IntPtrToPermanentCallback <NativeMessageListenerHelper.OnMessageReceived>(userData);
     if (permanentCallback == null)
     {
         return;
     }
     try
     {
         permanentCallback(id, name, Callbacks.IntPtrAndSizeToByteArray(data, dataLength), isReliable);
     }
     catch (Exception ex)
     {
         Logger.e("Error encountered executing NativeMessageListenerHelper#InternalOnMessageReceivedCallback. Smothering to avoid passing exception into Native: " + (object)ex);
     }
 }
 internal void SetOnMessageReceivedCallback(NativeMessageListenerHelper.OnMessageReceived callback)
 {
     MessageListenerHelper.MessageListenerHelper_SetOnMessageReceivedCallback(this.SelfPtr(), new MessageListenerHelper.OnMessageReceivedCallback(NativeMessageListenerHelper.InternalOnMessageReceivedCallback), Callbacks.ToIntPtr((Delegate)callback));
 }