Skip to content
  • David Thompson's avatar
    ENH: Added the concept of Ports to the Task System · 8c31efbd
    David Thompson authored
    
    
    Ports are used to define the interface of a Task. As in the case of Tasks, Ports are components of a Project and are managed by the Task Manager.  Ports have a direction - they can be either inputs (meaning the owning task consumes the data coming in from the port) or outputs (meaning that the Task is producing data on to the port).  An input Port can either be connected to another Task's output or it can be connected to another Persistent Object.
    
    The data a Port can consume or produce is represented by the virtual PortData class - ObjectsInRoles is a non-abstract example of PortData.
    
    Ports and their connections are serialized and de-serialized when saving a Project.
    
    Operations to connect and disconnect ports have been created.
    
    qtTaskPortNode and qtTaskPortArc classes have been added in order to visualize Ports and their connections.
    
    Modified FillOutAttribute Task to make of Ports.
    
    Also made the following non-related changes:
    
    Fix `Categories::Expression::compare()`.
    Add `smtk::common::Paths::findAvailablePlugins()`.
    
    `qtDiagramGenerator::updateScene()` has been split into two methods
    so that all nodes are created before arcs are updated. This allows
    arcs between nodes managed by different generators to be properly
    restored when loading project files.
    
    Co-authored-by: default avatarRobert O'Bara <bob.obara@kitware.com>
    Co-authored-by: default avatarDavid Thompson <david.thompson@kitware.com>
    8c31efbd
Loading