OLD | NEW |
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-present eyeo GmbH | 3 * Copyright (C) 2006-present 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 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 { | 201 { |
202 result.exists = true; | 202 result.exists = true; |
203 } | 203 } |
204 callback(result, ""); | 204 callback(result, ""); |
205 }); | 205 }); |
206 } | 206 } |
207 public: | 207 public: |
208 Scheduler scheduler; | 208 Scheduler scheduler; |
209 }; | 209 }; |
210 | 210 |
| 211 class InMemoryFileSystem : public LazyFileSystem |
| 212 { |
| 213 std::map<std::string, IOBuffer> files; |
| 214 public: |
| 215 using LazyFileSystem::LazyFileSystem; |
| 216 void Read(const std::string& fileName, const ReadCallback& callback) const ove
rride |
| 217 { |
| 218 scheduler([this, fileName, callback]() |
| 219 { |
| 220 auto ii_file = files.find(fileName); |
| 221 if (ii_file == files.end()) |
| 222 { |
| 223 callback(IOBuffer(), "File not found, " + fileName); |
| 224 return; |
| 225 } |
| 226 callback(IOBuffer(ii_file->second), ""); |
| 227 }); |
| 228 } |
| 229 |
| 230 void Write(const std::string& fileName, const IOBuffer& data, |
| 231 const Callback& callback) override |
| 232 { |
| 233 scheduler([this, fileName, data, callback]() |
| 234 { |
| 235 files[fileName] = data; |
| 236 callback(""); |
| 237 }); |
| 238 } |
| 239 |
| 240 void Move(const std::string& fromFileName, const std::string& toFileName, |
| 241 const Callback& callback) override |
| 242 { |
| 243 scheduler([this, fromFileName, toFileName, callback]() |
| 244 { |
| 245 auto ii_fromFile = files.find(fromFileName); |
| 246 if (ii_fromFile == files.end()) |
| 247 { |
| 248 callback("File (from) not found, " + fromFileName); |
| 249 return; |
| 250 } |
| 251 Write(toFileName, ii_fromFile->second, [this, fromFileName, callback](cons
t std::string& error) |
| 252 { |
| 253 if (!error.empty()) |
| 254 { |
| 255 callback(error); |
| 256 return; |
| 257 } |
| 258 Remove(fromFileName, callback); |
| 259 }); |
| 260 }); |
| 261 } |
| 262 |
| 263 void Remove(const std::string& fileName, const Callback& callback) override |
| 264 { |
| 265 scheduler([this, fileName, callback]() |
| 266 { |
| 267 files.erase(fileName); |
| 268 callback(""); |
| 269 }); |
| 270 } |
| 271 |
| 272 void Stat(const std::string& fileName, const StatCallback& callback) const ove
rride |
| 273 { |
| 274 scheduler([this, fileName, callback]() |
| 275 { |
| 276 StatResult result; |
| 277 result.exists = files.find(fileName) != files.end(); |
| 278 callback(result, ""); |
| 279 }); |
| 280 } |
| 281 }; |
| 282 |
211 AdblockPlus::FilterEngine& CreateFilterEngine(LazyFileSystem& fileSystem, | 283 AdblockPlus::FilterEngine& CreateFilterEngine(LazyFileSystem& fileSystem, |
212 AdblockPlus::Platform& platform, | 284 AdblockPlus::Platform& platform, |
213 const AdblockPlus::FilterEngine::CreationParameters& creationParams = AdblockP
lus::FilterEngine::CreationParameters()); | 285 const AdblockPlus::FilterEngine::CreationParameters& creationParams = AdblockP
lus::FilterEngine::CreationParameters()); |
214 | 286 |
215 class NoopWebRequest : public AdblockPlus::IWebRequest | 287 class NoopWebRequest : public AdblockPlus::IWebRequest |
216 { | 288 { |
217 public: | 289 public: |
218 void GET(const std::string& url, const AdblockPlus::HeaderList& requestHeaders
, const GetCallback& callback) override | 290 void GET(const std::string& url, const AdblockPlus::HeaderList& requestHeaders
, const GetCallback& callback) override |
219 { | 291 { |
220 } | 292 } |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 } | 341 } |
270 | 342 |
271 void TearDown() override | 343 void TearDown() override |
272 { | 344 { |
273 if (platform) | 345 if (platform) |
274 platform.reset(); | 346 platform.reset(); |
275 } | 347 } |
276 }; | 348 }; |
277 | 349 |
278 #endif | 350 #endif |
OLD | NEW |