diff options
| author | Douglas Rumbaugh <dbr4@psu.edu> | 2023-07-27 18:21:26 -0400 |
|---|---|---|
| committer | Douglas Rumbaugh <dbr4@psu.edu> | 2023-07-27 18:21:26 -0400 |
| commit | d6e08e9d8d3ac9b356ac50cee22b41f828160247 (patch) | |
| tree | 2c1f62f6385072e1a824e557693634acc3136cdd /include/framework/QueryInterface.h | |
| parent | f462921cbc52688fb478c6ac86a891e596fd6053 (diff) | |
| download | dynamic-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.h | 10 |
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)}; + }; |