[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[dsdp-tm-dev] TCF Subsystem development
|
I'm working on
adding a new service using TCF to explore the windows on a target and run into
an issue and have a couple of requests for cleanup. I'm trying
to figure out how to connect things up between TCF and the
RSE. I did find the example
org.eclipse.tm.tcf.examples.daytime, and from it I see how to register a
ChannelOpenListener and get notified when a channel opens. But what I'm
trying to do is create a new RSE Subsystem. I see that
TCFConnectorServiceManager.getConnectorService can be used to get a
TCFConnectorService for a particular IHost. I use getConnectorService in
my implementation of ISubSystemConfiguration to get a connector
service. But what I don't see is how to get the IChannel for a particular
IHost? TCFConnectorService manages this but I don't see a way to get it
out. I've added a method "getChannel" in a local copy of
TCFConnectorService, but am looking to see if there is an official way to do
this (or if I should just file something into
bugzilla)?
A cleanup issue is
that both TCF and RSE have a different concept of Service, and in fact have
different interfaces IService. This isn't wrong, but it is confusing to
have two different design elements with the same name.
Another cleanup
issue is that it appears that the constructor for class Command (which issues an
channel.send) has to be executed on the Protocol thread. This forces some
awkward code if you want to get the IToken for a command in any other
thread--you're pretty much forced to do a Protocol.invokeAndWait all over and
this seems like an opportunity for improvement. I've implemented a
WrapperChannel class which hides the invokeAndWait, but it would be great to get
the IToken on any thread.
-Brian
Nettleton
Wind River
Systems