Re: Deleage Methods - was Events
Jim <[email protected]> Tue, 20 Sep 2016 16:51:54 -0600
| Newsgroups | gmane.comp.java.ikvm.devel |
|---|---|
| Message-ID | <[email protected]> |
For my edification, what's the method signature for BeginInvoke and
EndInvoke in this delegate?
public static final class MessageDelegate extends MulticastDelegate
{
public MessageDelegate(Method m) { }
public native void Invoke(MessageNotifierEventArgs args);
//public native IAsyncResult BeginInvoke(AsyncCallback
callback, Object obj);
//public native void EndInvoke(IAsyncResult res);
public interface Method
{
void Invoke(MessageNotifierEventArgs arg);
}
}
Thanks,
Jim
On 09/17/2016 02:12 AM, Jeroen Frijters wrote:
> Hi Jim,
>
> There's no support for defining events from the Java side.
>
> Regards,
> Jeroen
>
>> -----Original Message-----
>> From: Jim [mailto:[email protected]]
>> Sent: Friday, September 16, 2016 23:15
>> To: [email protected]
>> Subject: [Ikvm-developers] Events
>>
>> Given this C# snippet:
>>
>> class MainClass
>> {
>> public static void Main (string[] args)
>> {
>> [...]
>> MessageReceiveNotifier messageNotifier = [...]
>> messageNotifier.MessageReceived +=
>> c_HostCommandMessageReceived;
>> [...]
>> }
>>
>> static void c_HostCommandMessageReceived (object sender,
>> MessageNotifierEventArgs e)
>> {
>> // the status will be -1 to indicate an unsolicited message.
>> Console.WriteLine ("The Host Command Message {1} was
>> received with Status {0}.", e.Status, e.Message);
>> [...]
>> }
>> }
>>
>> I would expect that this in Java:
>>
>> import cli.System.EventHandler;
>>
>>
>> public class MessageReceiveNotifier {
>>
>> [...]
>>
>> public static void add_MessageReceived(EventHandler
>> messageReceivedEventHandler) {
>> }
>>
>> public static void remove_MessageReceived(EventHandler
>> messageReceivedEventHandler) {
>>
>> }
>>
>> }
>>
>> Would meet the requirements of the line:
>>
>>
>> messageNotifier.MessageReceived += c_HostCommandMessageReceived;
>>
>> However MonoDevelop gives me the error:
>>
>> Type 'MessageReceiveNotifier' does not contain a definition for
>> 'MessageReceived' and no extension method 'MessageReceived' of type
>> 'MessageReceiveNotifier' can be found. Are you missing an assembly
>> reference?
>>
>> The Java class are in the same assembly and there is no complaint about
>> MessageReceiveNotifier (and the MessageNotifierEventArgs class) so I
>> think that the assemblies are all correct.
>>
>> I have tried static and non-static for the add_ remove_ methods.
>>
>> Help and ideas would be much appreciated?
>>
>> Thanks,
>>
>> Jim
>>
>>
>> --
>> Jim Redman
>> (505) 662 5156 x85
>> http://www.ergotech.com
--
Jim Redman
(505) 662 5156 x85
http://www.ergotech.com
------------------------------------------------------------------------------