AsynchronousUpdates

From ParaQ Wiki
Revision as of 17:57, 1 December 2005 by Tshead (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Rough Draft ...

Requirements

  • When multiple clients are connected to a server, ensure that server state changes are propagated to all clients so they remain in-sync.
  • Ensure that user interfaces remain responsive at all times.

Use Cases

  • Two-or-more clients are connected to a server. Client "A" makes a change to the server state. Client "B" ("C", "D", etc) are notified of the change.
  • A client with a graphical user interface is connected to a server. The client initiates a time-consuming recalculation of the visualization network. The call to the server should return immediately, and the client should be notified asynchronously as calculation progresses and when the calculations are complete.

Design

VTK already provides a straightforward implementation of Observer Design Pattern, using derivatives of the vtkCommand class, plus methods of vtkObject. The ParaView Server Manager can easily expose an API based on vtkCommand that will allow clients to register observers for server events. The set of events enumerated in vtkCommand::EventIds will likely have to be expanded to include events appropriate to the server manager.

  • ProxyAdded
  • ProxyDeleted
  • PropertyValueChanged
  • PropertyDomainChanged
  • PropertyConnected
  • PropertyDisconnected
  • RenderStarted
  • RenderProgress
  • RenderComplete

Event Loops