45
47
QueryCtrlProxy QueryBaseImpl::create_subquery(ScopeProxy const& scope,
46
48
string const& query_string,
47
VariantMap const& hints,
48
shared_ptr<SearchListener> const& reply)
49
SearchListener::SPtr const& reply)
51
assert(search_metadata_);
50
53
// Forward the create request to the child scope and remember the control.
51
54
// This allows cancel() to forward incoming cancellations to subqueries
52
55
// without intervention from the scope application code.
53
QueryCtrlProxy qcp = scope->create_query(query_string, hints, reply);
54
subqueries_.push_back(qcp);
56
QueryCtrlProxy qcp = scope->create_query(query_string, *search_metadata_, reply);
57
subqueries_.push_back(qcp);
61
QueryCtrlProxy QueryBaseImpl::create_subquery(ScopeProxy const& scope,
62
std::string const& query_string,
63
FilterState const& filter_state,
64
SearchListener::SPtr const& reply)
66
assert(search_metadata_);
68
QueryCtrlProxy qcp = scope->create_query(query_string, filter_state, *search_metadata_, reply);
69
subqueries_.push_back(qcp);
73
QueryCtrlProxy QueryBaseImpl::create_subquery(ScopeProxy const& scope,
74
std::string const& query_string,
75
std::string const& department_id,
76
FilterState const& filter_state,
77
SearchListener::SPtr const& reply)
79
assert(search_metadata_);
81
QueryCtrlProxy qcp = scope->create_query(query_string, department_id, filter_state, *search_metadata_, reply);
82
subqueries_.push_back(qcp);
86
QueryCtrlProxy QueryBaseImpl::create_subquery(ScopeProxy const& scope,
87
std::string const& query_string,
88
std::string const& department_id,
89
FilterState const& filter_state,
90
SearchMetadata const& metadata,
91
SearchListener::SPtr const& reply)
93
QueryCtrlProxy qcp = scope->create_query(query_string, department_id, filter_state, metadata, reply);
94
subqueries_.push_back(qcp);
98
void QueryBaseImpl::set_metadata(QueryMetadata const& metadata)
102
auto sm = dynamic_cast<SearchMetadata const&>(metadata);
103
search_metadata_.reset(new SearchMetadata(sm));
105
catch (std::bad_cast const& e) // this shouldn't really happen, if it does, that's a bug
108
std::cerr << "QueryBaseImpl()::set_metadata(): " << e.what() << std::endl;
58
113
void QueryBaseImpl::cancel()