|
virtual void | register_departments (Department::SCPtr const &parent)=0 |
| Register departments for the current search reply and provide the current department. More...
|
|
virtual Category::SCPtr | register_category (std::string const &id, std::string const &title, std::string const &icon, CategoryRenderer const &renderer_template=CategoryRenderer())=0 |
| Register new category and send it to the source of the query. More...
|
|
virtual void | register_category (Category::SCPtr category)=0 |
| Register an existing category instance and send it to the source of the query. More...
|
|
virtual Category::SCPtr | lookup_category (std::string const &id)=0 |
| Returns a previously registered category. More...
|
|
virtual bool | push (CategorisedResult const &result)=0 |
| Sends a single result to the source of a query. More...
|
|
virtual bool | push (experimental::Annotation const &annotation)=0 |
| Push an annotation. More...
|
|
virtual bool | push (Filters const &filters, FilterState const &filter_state)=0 |
| Sends all filters and their state to the source of a query. More...
|
|
virtual | ~SearchReply () |
| Destroys a Reply. More...
|
|
virtual Category::SCPtr | register_category (std::string const &id, std::string const &title, std::string const &icon, CannedQuery const &query, CategoryRenderer const &renderer_template=CategoryRenderer())=0 |
| Register new category and send it to the source of the query. More...
|
|
virtual void | push_surfacing_results_from_cache ()=0 |
| Push the results that were produced by the most recent surfacing query. More...
|
|
virtual void | finished ()=0 |
| Informs the source of a query that the query results are complete. More...
|
|
virtual void | error (std::exception_ptr ex)=0 |
| Informs the source of a query that the query was terminated due to an error. More...
|
|
virtual void | info (OperationInfo const &op_info)=0 |
| Informs the source of a query that additional information regarding the reply is available. More...
|
|
virtual | ~Reply () |
| Destroys a Reply. More...
|
|
virtual std::string | endpoint ()=0 |
| Returns the endpoint this proxy connects to. More...
|
|
virtual std::string | identity ()=0 |
| Returns the identity of the target object of this proxy. More...
|
|
virtual std::string | target_category ()=0 |
| Returns the category of the target object of this proxy. More...
|
|
virtual int64_t | timeout ()=0 |
| Returns the timeout in milliseconds if this proxy is a twoway proxy. More...
|
|
virtual std::string | to_string ()=0 |
| Converts a proxy into its string representation. More...
|
|
Allows the results of a search query to be sent to the query source.
virtual void unity::scopes::SearchReply::push_surfacing_results_from_cache |
( |
| ) |
|
|
pure virtual |
Push the results that were produced by the most recent surfacing query.
The runtime automatically saves the results of the most recent surfacing query. If a scope cannot produce a result for a surfacing query (presumably, due to connectivity problems), calling push_surfacing_results_from_cache() pushes the results that were produced by the most recent successful surfacing query from the cache. If a scope cannot produce surfacing results, it can call this method to "replay" the previous results. In turn, this avoids the user being presented with an empty screen if he/she swipes to the scope while the device does not have connectivity.
This method has an effect only if called for a surfacing query (that is, a query with an empty query string). If called for a non-empty query, it does nothing.
You must call this method before calling finished(), otherwise no cached results will be pushed (push_surfacing_results_from_cache() implicitly calls finished()).
virtual void unity::scopes::SearchReply::register_departments |
( |
Department::SCPtr const & |
parent | ) |
|
|
pure virtual |
Register departments for the current search reply and provide the current department.
Departments are optional. If scope supports departments, it is expected to register departments on every search as follows:
For example, assuming the user is visiting a "History" department in "Books", and "History" has sub-departments such as "World War Two" and "Ancient", the code that registers departments for current search in "History" may look like this:
history->set_subdepartments(history_depts);
books->set_subdepartments({history});
reply->register_departments(books);
Current department should be the department returned by unity::scopes::CannedQuery::department_id(). Empty department id denotes the root deparment.
- Parameters
-
parent | The parent department of current department, or current one if visiting root department. |
- Exceptions
-
unity::LogicException | if departments are invalid (nullptr passed, current department not present in the parent's tree, duplicated department ids present in the tree). |