blob: 89af7546ad52fab1bef9435f93307aebaabf4012 [file] [log] [blame]
Akron965f5d92017-01-20 18:38:08 +01001package Krawfish::Query::Reference;
2use parent 'Krawfish::Query';
3use Krawfish::Log;
4use strict;
5use warnings;
6
7# TODO:
8# This is not an actual query,
9# but a pointer to a query buffer.
10#
11# Maybe use a Util::MultiBuffer
Akronae3f3372017-02-03 20:40:48 +010012
13# Support a BufferedRef query mechanism,
14# that will be used for identical subqueries.
Akron965f5d92017-01-20 18:38:08 +010015# This is especially important for filtering.
Akronae3f3372017-02-03 20:40:48 +010016# This Buffered Reference supports multiple
17# fingers at different positions in the query.
18
19# The ring buffer query is well suited for this.
Akron965f5d92017-01-20 18:38:08 +010020
Akrona588d072017-10-13 14:45:34 +020021# Constructor
Akron965f5d92017-01-20 18:38:08 +010022sub new {
23 my $class = shift;
24
25 # This is a buffered query
26 my $query = shift;
27
28 # Get signature
29 my $sig = $query->signature;
30 bless {
31 query => shift,
32 }, $class;
Akronae3f3372017-02-03 20:40:48 +010033};
34
Akron965f5d92017-01-20 18:38:08 +010035
Akrona588d072017-10-13 14:45:34 +020036# Clone query
Akron290f59f2017-08-17 21:55:07 +020037sub clone {
38 ...
39};
Akronb7653672017-08-07 14:34:14 +020040
Akrona588d072017-10-13 14:45:34 +020041
42# Move to next posting
Akron290f59f2017-08-17 21:55:07 +020043sub next {
44 ...
45};
Akron965f5d92017-01-20 18:38:08 +010046
Akronae3f3372017-02-03 20:40:48 +010047
Akrona588d072017-10-13 14:45:34 +020048# Stringification
Akron965f5d92017-01-20 18:38:08 +010049sub to_string {
50 my $self = shift;
51};
52
Akrona588d072017-10-13 14:45:34 +020053
54# Get maximum frequency
Akron290f59f2017-08-17 21:55:07 +020055sub max_freq {
56 ...
57};
Akronfaf76852017-07-19 17:37:07 +020058
Akron15fc1972017-07-20 22:53:00 +020059
Akrona588d072017-10-13 14:45:34 +020060# Filter query by VC
Akron290f59f2017-08-17 21:55:07 +020061sub filter_by {
62 ...
63};
64
65
Akron965f5d92017-01-20 18:38:08 +0100661;