[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