11 #ifndef smtk_operation_ArcDeleter_h
12 #define smtk_operation_ArcDeleter_h
14 #include "smtk/CoreExports.h"
18 #include "smtk/operation/Group.h"
19 #include "smtk/operation/Manager.h"
20 #include "smtk/operation/Operation.h"
21 #include "smtk/operation/SpecificationOps.h"
23 #include "smtk/attribute/Attribute.h"
24 #include "smtk/attribute/ComponentItem.h"
25 #include "smtk/attribute/Definition.h"
26 #include "smtk/attribute/ReferenceItemDefinition.h"
29 #include <unordered_set>
69 static constexpr
const char*
const type_name =
"arcDeleter";
71 ArcDeleter(std::shared_ptr<smtk::operation::Manager> manager)
72 :
Group(type_name, manager)
80 template<
typename OperationType>
81 bool registerOperation();
82 bool registerOperation(Operation::Index operationIndex);
87 std::set<std::string> allArcTypes()
const;
90 std::set<std::pair<std::string, Operation::Index>> allArcDeleters()
const;
94 std::unordered_set<Operation::Index> matchingOperations(
109 static bool appendArc(
112 const std::shared_ptr<smtk::resource::PersistentObject>& from,
113 const std::shared_ptr<smtk::resource::PersistentObject>& to);
124 bool introspectArcTypes(
125 Operation::Definition parameterDefinition,
126 std::set<std::string>& arcTypes);
137 endpointItemDefs(Operation::Definition parameterDefinition,
smtk::string::Token arcType)
const;
140 template<
typename OperationType>
143 Operation::Index index = std::type_index(
typeid(OperationType)).hash_code();
150 #endif // smtk_operation_ArcDeleter_h