SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
Namespaces | Classes | Typedefs | Enumerations | Functions
smtk::task Namespace Reference

User-interface tasks. More...

Namespaces

 adaptor
 Adaptors that configure downstream tasks.
 
 json
 JSON serialization and deserialization of tasks.
 

Classes

class  Active
 This object provides applications a way to change and observe the active task. More...
 
class  Adaptor
 This object provides applications a way to configure a task using information adapted from its dependencies. More...
 
class  Agent
 Agent is a base class for all SMTK agents. More...
 
class  AgentlessTask
 AgentlessTask is a base class for all Tasks that do not use agents. More...
 
class  ChildCategoriesAgent
 ChildCategoriesAgent represents category-based constraints that can be used to determine if a task can be a child of the agent's task. More...
 
class  FillOutAttributes
 FillOutAttributes is a task that is incomplete until specified attributes are valid. More...
 
class  FillOutAttributesAgent
 FillOutAttributesAgent verifies that attributes are valid. More...
 
class  Gallery
 Gallery represents a map of tasks worklets. More...
 
class  GatherObjectsAgent
 GatherObjectsAgent broadcasts programmatically-provided data on an output port. More...
 
class  GatherResources
 GatherResources is a task that requires resources from a resource manager. More...
 
class  Instances
 Track smtk::task::Task objects with smtk::common::Instances. More...
 
class  Manager
 A task manager is responsible for creating new tasks. More...
 
class  ObjectsInRoles
 ObjectsInRoles holds references to objects as its payload. More...
 
class  Port
 Ports are components that pass information between tasks of a workflow. More...
 
class  PortData
 PortData is a base class for all types of information passed through Ports. More...
 
class  PortForwardingAgent
 PortForwardingAgent verifies that attributes are valid. More...
 
class  PortInstances
 Track smtk::task::Port objects with smtk::common::Instances. More...
 
class  Registrar
 
class  SubmitOperation
 SubmitOperation helps users prepare and optionally run an operation. More...
 
class  SubmitOperationAgent
 SubmitOperationAgent verifies that attributes are valid. More...
 
class  Task
 Task is a base class for all SMTK tasks. More...
 
class  TrivialProducerAgent
 TrivialProducerAgent outputs configured objects on output ports. More...
 
class  Worklet
 Worklet represents a set of tasks created to reuse a set of workflow logic in multiple workflows. More...
 

Typedefs

typedef smtk::shared_ptr< smtk::task::AdaptorAdaptorPtr
 
typedef smtk::shared_ptr< const smtk::task::AdaptorConstAdaptorPtr
 
typedef smtk::weak_ptr< smtk::task::AdaptorWeakAdaptorPtr
 
typedef smtk::weak_ptr< const smtk::task::AdaptorConstWeakAdaptorPtr
 
typedef smtk::shared_ptr< smtk::task::ManagerManagerPtr
 
typedef smtk::weak_ptr< smtk::task::ManagerWeakManagerPtr
 
typedef smtk::shared_ptr< smtk::task::TaskTaskPtr
 
typedef smtk::shared_ptr< const smtk::task::TaskConstTaskPtr
 
typedef smtk::weak_ptr< smtk::task::TaskWeakTaskPtr
 
typedef smtk::weak_ptr< const smtk::task::TaskConstWeakTaskPtr
 
using TaskInstancesBase = smtk::common::Instances< smtk::task::Task, void, std::tuple< smtk::task::Task::Configuration &, smtk::task::Manager &, std::shared_ptr< smtk::common::Managers > >, std::tuple< smtk::task::Task::Configuration &, smtk::task::Task::PassedDependencies, smtk::task::Manager &, std::shared_ptr< smtk::common::Managers > >>
 
using TaskManagerTaskObserver = std::function< void(smtk::common::InstanceEvent, const std::shared_ptr< Task > &)>
 Indicate that a task is being managed or unmanaged. More...
 
using TaskManagerTaskObservers = smtk::common::Observers< TaskManagerTaskObserver >
 
using TaskManagerAdaptorObserver = std::function< void(smtk::common::InstanceEvent, const std::shared_ptr< Adaptor > &)>
 Indicate that an adaptor is being managed or unmanaged. More...
 
using TaskManagerAdaptorObservers = smtk::common::Observers< TaskManagerAdaptorObserver >
 
using TaskManagerWorkflowObserver = std::function< void(const std::set< Task * > &, WorkflowEvent, Task *)>
 Indicate that a workflow is undergoing creation, destruction, or a topology change. More...
 
using TaskManagerWorkflowObservers = smtk::common::Observers< TaskManagerWorkflowObserver >
 
using PortInstancesBase = smtk::common::Instances< smtk::task::Port, void, std::tuple< const smtk::task::Port::Configuration &, smtk::task::Manager &, std::shared_ptr< smtk::common::Managers > >, std::tuple< const smtk::task::Port::Configuration &, smtk::task::Task *, std::shared_ptr< smtk::common::Managers > >>
 
using TaskList = std::tuple< Task, FillOutAttributes, GatherResources, SubmitOperation >
 
using TaskJSON = std::tuple< json::jsonTask, json::jsonFillOutAttributes, json::jsonGatherResources, json::jsonSubmitOperation >
 
using AdaptorList = std::tuple< adaptor::ConfigureOperation, adaptor::ResourceAndRole >
 
using AdaptorJSON = std::tuple< json::jsonConfigureOperation, json::jsonResourceAndRole >
 
using PortList = std::tuple< Port >
 
using PortJSON = std::tuple< json::jsonPort >
 
using AgentList = std::tuple< ChildCategoriesAgent, FillOutAttributesAgent, GatherObjectsAgent, PortForwardingAgent, SubmitOperationAgent, TrivialProducerAgent >
 
using OperationList = std::tuple< AddDependency, ConnectPorts, DisconnectPorts, EmplaceWorklet, RemoveDependency, RenameTask >
 

Enumerations

enum  WorkflowEvent {
  WorkflowEvent::Created, WorkflowEvent::TaskAdded, WorkflowEvent::TaskRemoved, WorkflowEvent::Destroyed,
  WorkflowEvent::Resuming
}
 An enum for events in the lifecycle of a workflow (tree of tasks). More...
 
enum  State {
  State::Irrelevant, State::Unavailable, State::Incomplete, State::Completable,
  State::Completed
}
 The set of states that a task may take on. More...
 

Functions

std::string stateName (const State &s)
 A type-conversion operation to cast enumerants to strings.
 
smtk::string::Token stateToken (const State &s)
 A type-conversion operation to cast enumerants to string tokens.
 
State stateEnum (const std::string &s, bool *valid=nullptr)
 A type-conversion operation to cast strings to enumerants.
 
std::ostream & operator<< (std::ostream &os, const State &s)
 States may be appended to streams.
 
void workflowsOfTask (Task *task, std::set< smtk::task::Task * > &workflows, std::set< smtk::task::Task * > &visited)
 Free functions that populate a set of workflow "head" tasks for an input task (this is the set of tasks that task ultimately depends on but are not themselves dependent on any task). More...
 
std::set< smtk::task::Task * > workflowsOfTask (Task &task)
 
SMTKCORE_EXPORT std::set< smtk::task::Task * > workflowsOfTask (const Task &task)
 
void to_json (nlohmann::json &j, const smtk::task::Adaptor::Ptr &adaptor)
 
void from_json (const nlohmann::json &j, smtk::task::Adaptor::Ptr &adaptor)
 
void from_json (const nlohmann::json &jj, Agent &agent)
 
void to_json (nlohmann::json &jj, const Agent &agent)
 
void from_json (const nlohmann::json &j, FillOutAttributes::AttributeSet &attributeSet)
 
void to_json (nlohmann::json &j, const FillOutAttributes::AttributeSet &attributeSet)
 
void from_json (const nlohmann::json &j, FillOutAttributes::ResourceAttributes &resourceAttributes)
 
void to_json (nlohmann::json &j, const FillOutAttributes::ResourceAttributes &resourceAttributes)
 
void from_json (const nlohmann::json &jj, FillOutAttributesAgent::AttributeSet &attributeSet)
 
void to_json (nlohmann::json &jj, const FillOutAttributesAgent::AttributeSet &attributeSet)
 
void from_json (const nlohmann::json &jj, FillOutAttributesAgent::ResourceAttributes &resourceAttributes)
 
void to_json (nlohmann::json &jj, const FillOutAttributesAgent::ResourceAttributes &resourceAttributes)
 
void from_json (const nlohmann::json &j, GatherResources::ResourceSet &resourceSet)
 
void to_json (nlohmann::json &j, const GatherResources::ResourceSet &resourceSet)
 
void from_json (const nlohmann::json &jj, std::shared_ptr< ObjectsInRoles > &objectsInRoles)
 
void to_json (nlohmann::json &jj, const std::shared_ptr< ObjectsInRoles > &objectsInRoles)
 
void to_json (nlohmann::json &jj, const smtk::task::Port::Ptr &port)
 
void from_json (const nlohmann::json &jj, smtk::task::Port::Ptr &port)
 
void from_json (const nlohmann::json &jj, PortForwardingAgent::ObjectFilter &objectFilter)
 
void to_json (nlohmann::json &jj, const PortForwardingAgent::ObjectFilter &objectFilter)
 
void from_json (const nlohmann::json &j, SubmitOperation::ParameterSpec &parameterSpec)
 
void to_json (nlohmann::json &j, const SubmitOperation::ParameterSpec &parameterSpec)
 
void from_json (const nlohmann::json &jj, SubmitOperationAgent::ParameterSpec &parameterSpec)
 
void to_json (nlohmann::json &jj, const SubmitOperationAgent::ParameterSpec &parameterSpec)
 
void from_json (const nlohmann::json &jj, SubmitOperationAgent::ParameterSpecRef &specRef)
 
void to_json (nlohmann::json &jj, const SubmitOperationAgent::ParameterSpecRef &specRef)
 
void to_json (nlohmann::json &jj, const smtk::task::Task::Ptr &task)
 
void from_json (const nlohmann::json &jj, smtk::task::Task::Ptr &task)
 
void to_json (nlohmann::json &jj, const smtk::task::Worklet::Ptr &worklet)
 
void from_json (const nlohmann::json &jj, smtk::task::Worklet::Ptr &worklet)
 

Detailed Description

User-interface tasks.

Typedef Documentation

◆ AdaptorPtr

typedef smtk::shared_ptr<smtk::task::Adaptor> smtk::task::AdaptorPtr

◆ ManagerPtr

typedef smtk::shared_ptr<smtk::task::Manager> smtk::task::ManagerPtr
See also
smtk::yask::Manager

◆ TaskManagerAdaptorObserver

using smtk::task::TaskManagerAdaptorObserver = typedef std::function<void(smtk::common::InstanceEvent, const std::shared_ptr<Adaptor>&)>

Indicate that an adaptor is being managed or unmanaged.

Emitted during operation observation by the task manager.

◆ TaskManagerTaskObserver

using smtk::task::TaskManagerTaskObserver = typedef std::function<void(smtk::common::InstanceEvent, const std::shared_ptr<Task>&)>

Indicate that a task is being managed or unmanaged.

Emitted during operation observation by the task manager.

◆ TaskManagerWorkflowObserver

using smtk::task::TaskManagerWorkflowObserver = typedef std::function<void(const std::set<Task*>&, WorkflowEvent, Task*)>

Indicate that a workflow is undergoing creation, destruction, or a topology change.

Emitted during operation observation by the task manager.

◆ TaskPtr

typedef smtk::shared_ptr<smtk::task::Task> smtk::task::TaskPtr

Enumeration Type Documentation

◆ State

enum smtk::task::State
strong

The set of states that a task may take on.

Enumerator
Irrelevant 

The user's work in prior tasks mean this task needs no user input.

Unavailable 

The task's dependencies are unmet.

Incomplete 

The task is available but its objective is not accomplished.

Completable 

The task is available and accomplished but has not been marked complete.

Completed 

The task has been marked completed by the user.

◆ WorkflowEvent

An enum for events in the lifecycle of a workflow (tree of tasks).

Enumerator
Created 

A workflow has been created.

TaskAdded 

A task has been added to the workflow.

TaskRemoved 

A task has been removed from the workflow.

Destroyed 

The tasks in the workflow have become unmanaged or dependent on another workflow.

Resuming 

Notifications had been paused and now are not.

The reported workflow heads are all extant workflows current. This event is also used to initialize observers added after tasks have been created.

Function Documentation

◆ from_json()

void SMTKCORE_EXPORT smtk::task::from_json ( const nlohmann::json &  j,
Manager taskManager 
)

Serialize/deserialize a task manager.

Note that the caller must push a smtk::task::json::Helper onto the stack before calling these methods and the helper must have its smtk::common::Managers set in order for these methods to work.

◆ to_json()

void SMTKCORE_EXPORT smtk::task::to_json ( nlohmann::json &  jj,
const Manager manager 
)

Serialize/deserialize a task manager.

Note that the caller must push a smtk::task::json::Helper onto the stack before calling these methods and the helper must have its smtk::common::Managers set in order for these methods to work.

◆ workflowsOfTask()

SMTKCORE_EXPORT void smtk::task::workflowsOfTask ( Task task,
std::set< smtk::task::Task * > &  workflows,
std::set< smtk::task::Task * > &  visited 
)

Free functions that populate a set of workflow "head" tasks for an input task (this is the set of tasks that task ultimately depends on but are not themselves dependent on any task).

The variant that accepts visited can be used to efficiently accumulate workflows across several tasks (by pruning visited nodes from its traversal).