GENIE
execution_policy.h
Go to the documentation of this file.
1 #ifndef GENIE_INTERFACE_EXECUTION_POLICY_H_
2 #define GENIE_INTERFACE_EXECUTION_POLICY_H_
3 
4 #include <string>
5 #include <memory>
6 #include <vector>
7 #include <utility>
9 #include "types.h"
10 #include "config.h"
11 
12 namespace genie {
13 
22  protected:
23  uint32_t k_;
24  uint32_t dim_;
25  uint32_t num_of_queries_;
26  public:
30  virtual std::shared_ptr<genie::table::inv_table> BuildTable(
31  const genie::TableData& table_data) = 0;
35  virtual std::vector<genie::query::Query> BuildQuery(
36  const std::shared_ptr<const genie::table::inv_table>& table,
37  const genie::QueryData& query_data) = 0;
41  virtual genie::SearchResult Match(
42  const std::shared_ptr<const genie::table::inv_table>& table,
43  const std::vector<genie::query::Query>& queries) = 0;
47  virtual genie::SearchResult Match(
48  const std::vector<std::shared_ptr<const genie::table::inv_table> >& tables,
49  const std::vector<std::vector<genie::query::Query> >& queries) = 0;
53  virtual void Validate();
57  void SetK(const uint32_t k);
61  void SetNumOfQueries(const uint32_t num_of_queries);
65  uint32_t GetNumOfQueries() const;
66 };
67 
71 std::shared_ptr<ExecutionPolicy> MakePolicy(const Config& config);
72 
73 } // end of namespace genie
74 
75 #endif
void SetNumOfQueries(const uint32_t num_of_queries)
Sets the number of query.
This is the top-level namespace of the project.
std::vector< std::vector< int > > QueryData
Raw query data format used for building the queries.
Definition: types.h:16
virtual void Validate()
Checks whether the given search parameters are in valid range.
virtual std::vector< genie::query::Query > BuildQuery(const std::shared_ptr< const genie::table::inv_table > &table, const genie::QueryData &query_data)=0
Builds the queries with the given query data.
std::vector< std::vector< int > > TableData
Raw table data format used for building the table.
Definition: types.h:12
virtual std::shared_ptr< genie::table::inv_table > BuildTable(const genie::TableData &table_data)=0
Builds the inverted index with the given data.
virtual genie::SearchResult Match(const std::shared_ptr< const genie::table::inv_table > &table, const std::vector< genie::query::Query > &queries)=0
Match the given queries on the table.
std::pair< std::vector< int >, std::vector< int > > SearchResult
Matching result (top K&#39;s ID and count).
Definition: types.h:20
uint32_t GetNumOfQueries() const
Returns the number of query.
Config class holds all user configurable settings of GENIE.
Definition: config.h:20
std::shared_ptr< ExecutionPolicy > MakePolicy(const Config &config)
Builds and returns a policy according to the configurations.
void SetK(const uint32_t k)
Sets K.
ExecutionPolicy class is the interface for building table, building query, and matching.