Hi,
Thank you very much for this example with EventHandler. I didn't know about it
and wanted to implement asynchronous display refresh my way - I wanted to
create thread that would receive data from ttb and update view without freezing
all GUI. Tomorrow I'll try to use EventHandlers.
I wanted to create another node for tracing application because I was thinking
about tracing multiple nodes in the same time. And I thought that it's better
when tracing application runs on completely different node than on one of which
are being traced. Another reason is amount of trace data which is being
generated - when tracing application runs on same node your tracing results
will be "polluted" with events generated by it.
So could you explain me how can I create new node (what arguments should I pass
to BackendManager.createBackend) on which I could start something (ttb in this
case)?
regards,
Piotrek
> Hi,
>
> In order to start another node, you have to use
> BackendManager.createBackend. (OtpNode will not start a beam process
> and other ways will not make the beam process die when the Eclipse
> instance shuts down). But I don't think it would be useful in this
> case: the node will run on the same machine, so the processing will
> take just as much. The problem is that we don't want to have to wait
> for the trace data, but start the processing asynchronously and get
> notified when it's ready.
>
> I think that the way to do it is to update the view in the background
> using events. Something like this
>
> public class TraceEventHandler extends EventHandler {
>
> @Override
> protected void doHandleMsg(final OtpErlangObject msg) throws
> Exception {
> final OtpErlangObject event = getStandardEvent(msg,
> "trace_ttb");
> if (event == null) {
> return;
> }
> // ErlLogger.debug("************>>> " + event);
> // get item from event and add it to the
> viewer data
> }
> }
>
> // somewhere in the view
> handler = new TraceEventHandler();
> backend.getEventDaemon().addHandler(handler);
>
>
> %% for the time being this has to be added to erlide_jrpc:init/1
> add_service(io_server, JPid),
>
> %% use this to send
> send_event(String, From) ->
> erlide_jrpc:event(trace_ttb, TraceData).
>
> Check how it's done for ProcessEventHandler, which updates the
> Process
> list view.
>
> regards,
> Vlad
------------------------------------------------------------------------------
This SF.net email is sponsored by
Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev
_______________________________________________
Erlide-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/erlide-devel