Changes between Version 1 and Version 2 of Ticket #5138


Ignore:
Timestamp:
04/14/2017 07:11:35 AM (2 years ago)
Author:
trev
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #5138

    • Property Blocked By changed from to 5137
    • Property Blocking changed from to 4122
  • Ticket #5138 – Description

    v1 v2  
    44=== What to change === 
    55Create `compiled/storage/serializer.cpp` providing a `Serializer` class (should be exposed to JavaScript as `_FilterStorage_Serializer`). The parser should allocate a 64kB (?) buffer, with the pointer to the buffer being returned by its buffer property. `FilterStorage.exportData` (JavaScript, located in `lib/filterStorage.js`) should create a serializer instance and call `Serializer.continue()` until it returns 0 (no more data). `Serializer.continue()` should write output lines into the buffer (followed by newline character) until there is no more space and return the number of characters written. `FilterStorage.exportData` should then extract the lines and yield them. 
     6 
     7=== Notes === 
     8* The `Serializer` class should make a copy of the current subscriptions list when created, to avoid bogus output if something changes during export. 
     9* Methods `FilterStorage.saveToDisk()` and `FilterStorage.getBackupFiles()` can stay in JavaScript, without any changes.