11 #ifndef smtk_operation_Group_h
12 #define smtk_operation_Group_h
14 #include "smtk/CoreExports.h"
16 #include "smtk/operation/GroupObserver.h"
17 #include "smtk/operation/Operation.h"
55 Group(
const std::string& name, std::shared_ptr<smtk::operation::Manager> manager)
61 const std::string& name()
const {
return m_name; };
64 bool registerOperation(
66 std::set<std::string> values = std::set<std::string>());
69 bool registerOperation(
70 const Operation::Index&,
71 std::set<std::string> values = std::set<std::string>());
74 template<
typename OperationType>
75 bool registerOperation(std::set<std::string> values = std::set<std::string>());
78 bool unregisterOperation(
const std::string&);
81 bool unregisterOperation(
const Operation::Index&);
84 template<
typename OperationType>
85 bool unregisterOperation();
88 Operation::Specification specification(
const std::string&)
const;
91 Operation::Specification specification(
const Operation::Index&)
const;
94 template<
typename OperationType>
95 Operation::Specification specification()
const;
98 bool contains(
const std::string&)
const;
101 bool contains(
const Operation::Index&)
const;
104 template<
typename OperationType>
105 bool contains()
const;
109 std::set<std::string> values(
const std::string&)
const;
113 std::set<std::string> values(
const Operation::Index&)
const;
117 template<
typename OperationType>
118 std::set<std::string> values()
const;
121 std::set<Operation::Index> operations()
const;
124 std::set<std::string> operationNames()
const;
127 std::string operationName(
const Operation::Index&)
const;
130 std::string operationLabel(
const Operation::Index&)
const;
133 std::weak_ptr<smtk::operation::Manager> m_manager;
151 std::size_t operationObjectDistance(
152 const Operation::Index& index,
157 const Operation::Index& index)
const;
163 template<
typename OperationType>
169 template<
typename OperationType>
175 template<
typename OperationType>
178 return specification(std::type_index(
typeid(OperationType)).hash_code());
181 template<
typename OperationType>
184 return contains(std::type_index(
typeid(OperationType)).hash_code());
187 template<
typename OperationType>
190 return values(std::type_index(
typeid(OperationType)).hash_code());
195 #endif // smtk_operation_Metadata_h