From d6e08e9d8d3ac9b356ac50cee22b41f828160247 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Thu, 27 Jul 2023 18:21:26 -0400 Subject: Expanded query interface Query interface now enables skipping of delete processing and stopping query processing when first match is found. --- include/framework/QueryInterface.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'include/framework/QueryInterface.h') diff --git a/include/framework/QueryInterface.h b/include/framework/QueryInterface.h index 886bdc8..46a1ce1 100644 --- a/include/framework/QueryInterface.h +++ b/include/framework/QueryInterface.h @@ -8,11 +8,12 @@ */ #pragma once +#include #include #include "util/types.h" template -concept QueryInterface = requires(Q q, void *p) { +concept QueryInterface = requires(Q q, void *p, std::vector &s) { /* {q.get_query_state(p, p)} -> std::convertible_to; @@ -22,6 +23,13 @@ concept QueryInterface = requires(Q q, void *p) { {q.merge()}; {q.delete_query_state(p)}; */ + {Q::EARLY_ABORT} -> std::convertible_to; + {Q::SKIP_DELETE_FILTER} -> std::convertible_to; + //{Q::get_query_state(p, p)} -> std::convertible_to; + //{Q::get_buffer_query_state(p, p)} -> std::convertible_to; + {Q::process_query_states(p, s, p)}; {Q::delete_query_state(std::declval())} -> std::same_as; + {Q::delete_buffer_query_state(p)}; + }; -- cgit v1.2.3