[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
RE: [dsdp-tm-dev] Correct way to implement multiple targets -	multiplesubsystems for a host
 | 
Hello Tobias,
 
Sorry for taking so long to reply.
 
Yes, I 
think your new proposal is a good way to go (at least until
the 
RSE Framework natively supports a concept of "connection 
groups").
 
In 
Wind River Workbench, our commercial offering based on 
Eclipse,
we 
have actually implemented something very similar to your 
proposal.
We 
have a "WR Registry Subsystem" registered under the "Local"
connection, where the Registries's entries are actually 
connections.
 
We 
have a "Registry Synchronizer" which programmatically 
creates
new 
connections as they appear in the Registry, or removes them
when 
they disappear in the Registry. 
 
Here 
is an additional trick that might help your user experience 
--
we 
haven't actually tried this out, but it should work:
  - Your 
  "Target1 - Connection" connection is of some type (IRSEystemType).
I assume 
  that you always want to create these programmatically only, and
not want to 
  see this connection type in a new connection wizard, right?
If this is 
  true, then you can register a dynamic systemTypeProvider, which
creates 
  those systemTypes always as "disabled".
RSE will never show them in a 
  wizard, and also not as root nodes in the systemView. 
  - For your Connection / Subsystem / Target1 node, 
  you have some ISystemViewElementAdapter.
You can now simply override its 
  getChildren() method to also return the IHost object that
corresponds to 
  the Target1 - Connection connection.  
And, 
voila, you should be able to see your target1 - connection contents under the 
connection / subsystem / Target1 hierarchy, rather than at the root of the 
RSE tree...
 
This 
provides the user experience that you originally wanted; but, other than 
your
original proposal it uses a correct model supported by 
RSE, and only the visual
display (view layer) is tweaked.
 
Cheers,
--
Martin Oberhuber, Senior Member of Technical 
Staff, Wind River
Target Management Project 
Lead, DSDP PMC Member
 
 
  
  
  Hello TM 
  list,
   
  This is a question 
  regarding how to make use of the RSE tree in a good way, thus this is not a TM 
  framework dev question. If I am mailing the wrong list, please feel free to 
  rebuke and steer me to the correct list. Here goes:
   
  I have the 
  following scenario which I would like to model in the RSE 
  tree:
   
  o A host to 
  which multiple targets can be connected.
  o A target with 
  multiple services, such as file system, process explorer, access to log 
  data etc.
   
  Initially I had 
  implemented a subsystem which connects to the host and lists the targets. 
  
  Under the target, 
  the hacking begun where I instantiated a new remote 
  file subsystem using my file service and tried to fit this 
  solution the RSE framework:
   
  RSE 
  Tree
  =======
  Connection
    + 
  Subsystem
      + Target1
        + file system 
  root   <--using remote file subsystem, my file 
  service
          + 
  [dir]            
  <--using remote file subsystem, my file service
          + 
  file.txt         <--using remote 
  file subsystem, my file service
  
  This works 
  for a bit, but e.g. drag&drop fails because the subsystem is not 
  registered in the registry, hence it cannot be found for the drop target. 
  
   
  My next 
  attempt would be to have it like:
   
  
  RSE 
  Tree
  =======
Connection 
    + 
  Subsystem
      + Target1  <-- "Connect 
  action[1]"
      + Target2
  Target1 - 
  Connection[2]
    + 
  file system root  <-- remote file subsystem, my file 
  service
      + 
  [dir]           <-- 
  remote file subsystem, my file service
    + 
  Processes         <-- Process 
  subsystem
   
  [1] The 
  Connect action would programmatically create a new target connection 
  instance[2] using a TargetSubSystemConfiguration. 
  On this 
  connection, all the desired target subsystems should be 
  activated.
  Since 
  targets can come and go, the target connection should be automatically closed 
  and removed if a target dissappear.
   
  Is this a 
  better solution, can it be done using the RSE framework or are there better 
  alternatives?
  Hoping for 
  some enlightenment on this subject.
   
  Best 
  regards,
  Tobias 
  Sodergren