10 #ifndef smtk_resource_query_Metadata_h
11 #define smtk_resource_query_Metadata_h
13 #include "smtk/CoreExports.h"
15 #include "smtk/resource/query/Query.h"
34 std::function<
int(
const std::size_t&)> priorityFunctor,
35 std::function<
Query*()> createFunctor)
36 : create(createFunctor)
37 , priority(priorityFunctor)
42 template<
typename QueryType>
44 :
Metadata(QueryType::typeIndex(), priorityFunctor, []() {
return new QueryType; })
48 template<
typename QueryType>
51 QueryType::typeIndex(),
52 [](
const std::size_t& typeIndex) {
53 return QueryType::numberOfGenerationsFromType(typeIndex);
55 []() {
return new QueryType; })
59 const std::size_t& index()
const {
return m_index; }
61 std::function<
Query*()> create = []() {
return nullptr; };
62 std::function<int(
const std::size_t&)> priority = [](
const std::size_t&) {
63 return std::numeric_limits<int>::lowest();