Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: test/BaseJsTest.cpp

Issue 29508591: Issue 5450 - don't expose std::shared_ptr<FilterEngine> (Closed) Base URL: https://github.com/adblockplus/libadblockplus.git
Patch Set: Created Aug. 7, 2017, 8:46 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/BaseJsTest.h ('k') | test/FilterEngine.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-2017 eyeo GmbH 3 * Copyright (C) 2006-2017 eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 17 matching lines...) Expand all
28 if (ii->timeout.count() == 0) 28 if (ii->timeout.count() == 0)
29 { 29 {
30 ii->callback(); 30 ii->callback();
31 ii = timerTasks->erase(ii); 31 ii = timerTasks->erase(ii);
32 } 32 }
33 else 33 else
34 ++ii; 34 ++ii;
35 } 35 }
36 } 36 }
37 37
38 FilterEnginePtr CreateFilterEngine(LazyFileSystem& fileSystem, 38 FilterEngine& CreateFilterEngine(LazyFileSystem& fileSystem,
39 Platform& paltform, 39 Platform& platform,
40 const FilterEngine::CreationParameters& creationParams) 40 const FilterEngine::CreationParameters& creationParams)
41 { 41 {
42 std::list<LazyFileSystem::Task> fileSystemTasks; 42 std::list<LazyFileSystem::Task> fileSystemTasks;
43 fileSystem.scheduler = [&fileSystemTasks](const LazyFileSystem::Task& task) 43 fileSystem.scheduler = [&fileSystemTasks](const LazyFileSystem::Task& task)
44 { 44 {
45 fileSystemTasks.emplace_back(task); 45 fileSystemTasks.emplace_back(task);
46 }; 46 };
47 FilterEnginePtr retValue; 47 bool isFilterEngineReady = false;
48 paltform.CreateFilterEngineAsync(creationParams, [&retValue, &fileSystem](cons t FilterEnginePtr& filterEngine) 48 platform.CreateFilterEngineAsync(creationParams, [&isFilterEngineReady, &fileS ystem](const FilterEngine& filterEngine)
49 { 49 {
50 retValue = filterEngine;
51 fileSystem.scheduler = LazyFileSystem::ExecuteImmediately; 50 fileSystem.scheduler = LazyFileSystem::ExecuteImmediately;
51 isFilterEngineReady = true;
52 }); 52 });
53 while (!retValue && !fileSystemTasks.empty()) 53 while (!isFilterEngineReady && !fileSystemTasks.empty())
54 { 54 {
55 (*fileSystemTasks.begin())(); 55 (*fileSystemTasks.begin())();
56 fileSystemTasks.pop_front(); 56 fileSystemTasks.pop_front();
57 } 57 }
58 return retValue; 58 return platform.GetFilterEngine();
59 } 59 }
60 60
61 ThrowingPlatformCreationParameters::ThrowingPlatformCreationParameters() 61 ThrowingPlatformCreationParameters::ThrowingPlatformCreationParameters()
62 { 62 {
63 logSystem.reset(new ThrowingLogSystem()); 63 logSystem.reset(new ThrowingLogSystem());
64 timer.reset(new ThrowingTimer()); 64 timer.reset(new ThrowingTimer());
65 fileSystem = std::make_shared<ThrowingFileSystem>(); 65 fileSystem = std::make_shared<ThrowingFileSystem>();
66 webRequest.reset(new ThrowingWebRequest()); 66 webRequest.reset(new ThrowingWebRequest());
67 } 67 }
OLDNEW
« no previous file with comments | « test/BaseJsTest.h ('k') | test/FilterEngine.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld