1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// found in the LICENSE file.
490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
5f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "ui/app_list/search_provider.h"
690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "ui/app_list/search_result.h"
890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)namespace app_list {
1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)SearchProvider::SearchProvider() {
12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)SearchProvider::~SearchProvider() {
14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void SearchProvider::ReleaseResult(std::vector<SearchResult*>* results) {
17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  results_.release(results);
18f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
1990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void SearchProvider::Add(scoped_ptr<SearchResult> result) {
2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  results_.push_back(result.release());
2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  FireResultChanged();
2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void SearchProvider::ClearResults() {
2690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  results_.clear();
2790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  FireResultChanged();
2890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void SearchProvider::FireResultChanged() {
3190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  if (result_changed_callback_.is_null())
3290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    return;
3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  result_changed_callback_.Run();
3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
3790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}  // namespace app_list
38