summaryrefslogtreecommitdiffstats
path: root/include/framework/QueryInterface.h
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2023-07-27 18:21:26 -0400
committerDouglas Rumbaugh <dbr4@psu.edu>2023-07-27 18:21:26 -0400
commitd6e08e9d8d3ac9b356ac50cee22b41f828160247 (patch)
tree2c1f62f6385072e1a824e557693634acc3136cdd /include/framework/QueryInterface.h
parentf462921cbc52688fb478c6ac86a891e596fd6053 (diff)
downloaddynamic-extension-d6e08e9d8d3ac9b356ac50cee22b41f828160247.tar.gz
Expanded query interface
Query interface now enables skipping of delete processing and stopping query processing when first match is found.
Diffstat (limited to 'include/framework/QueryInterface.h')
-rw-r--r--include/framework/QueryInterface.h10
1 files changed, 9 insertions, 1 deletions
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 <vector>
#include <concepts>
#include "util/types.h"
template <typename Q>
-concept QueryInterface = requires(Q q, void *p) {
+concept QueryInterface = requires(Q q, void *p, std::vector<void*> &s) {
/*
{q.get_query_state(p, p)} -> std::convertible_to<void*>;
@@ -22,6 +23,13 @@ concept QueryInterface = requires(Q q, void *p) {
{q.merge()};
{q.delete_query_state(p)};
*/
+ {Q::EARLY_ABORT} -> std::convertible_to<bool>;
+ {Q::SKIP_DELETE_FILTER} -> std::convertible_to<bool>;
+ //{Q::get_query_state(p, p)} -> std::convertible_to<void*>;
+ //{Q::get_buffer_query_state(p, p)} -> std::convertible_to<void*>;
+ {Q::process_query_states(p, s, p)};
{Q::delete_query_state(std::declval<void*>())} -> std::same_as<void>;
+ {Q::delete_buffer_query_state(p)};
+
};