* Revert "Revert GDTCORStorage changes for now (#5778)"
This reverts commit 93eb6d8c48.
* Store events and implement unit tests (#5790)
Resolves many TODOs in the flat file storage system
Bug fixes found by unit tests are also included.
* Get rid of event iterators and add separate folders for batching (#5829)
* Store events and implement unit tests (#5790)
Resolves many TODOs in the flat file storage system
Bug fixes found by unit tests are also included.
* Change to explicit nil comparison
* Address test comments
- Makes all APIs async
- Add thread-safety test
- Comments on where files are stored
- Broke up the library data get/set API into two blocks
* Implement events and batch expirations (#5842)
The upload coordinator will signal an expiration check whenever the app foregrounds.
* Remove prioritizers, upload packages, data futures, and backwards compatibility (#5874)
* Remove prioritizers, upload packages, data futures, and backwards compatibility
* Update a comment and console logging
* Reset the storage for every unit test, move event generation out of core init
* Return a nil request if data is nil.
* Fix prioritizer reference in watchOS test app
* Remove unnecessary check for termination
* Give more leeway for eventID generation
Change the transport API to a GDTCORTarget
Don't continue a long test after a failure
* Return nil if an eventID couldn't be created
Fix some swift in the watchOS test app
* Fix all rawValue GDTCORTarget usage
* Update CHANGELOGs
* Remove initializer annotations (#5878)
* Remove initializer designation from GDTCOREvent
Change the target property to the target type
* Add a couple more types
* Make implicit retain explicit
Nothing I do seems to get this warning to trigger locally...
* Address loss of precision issue
* Re-enable a disabled test
Don't delete while enumerating
* Additional test tweaks and hasEvents is now on the queue and async
* Adjust GDTCCT to the new API
* Always attempt to create a path, get rid of implicit self refs
* Change all waiting for be DISPATCH_TIME_FOREVER for debugging purposes
I suspect the travis machines are just overwhelmed, since the test errors don't make any sense.
* Try using a different separator
* Enable debug logging
* Enable verbose pod lib lint output
* Handle cases where the mappingID contains path components
* Revert "Enable debug logging"
This reverts commit b3e4a6ecc5.
* Revert "Enable verbose pod lib lint output"
This reverts commit a5b54460f9.
* Revert "Change all waiting for be DISPATCH_TIME_FOREVER for debugging purposes"
This reverts commit 55e4fff5dc.
* Attempt to create a folder before writing
* Temporarily enable verbose pod lib lint, again
* Temporarily add debug logging back in
* Don't double store events
Also print out errors if there are any
* Remove debug logging
* Put debug logs back in for Crashlytics test
* Update mock APIs to match and use a real target
* remove debug logging
* Apply nullability specifiers to Crashlytics mock class
* Change removeItemAtURL to removeItemAtPath
It seems to work better, for reasons that aren't clear. It may have something to do with forming URLs being more strict.
* Add logging levels, fix failed write events
* Update comment
* Make mph-gdtsqlite run travis (#3861)
* Implement a SQLite helper (#4075)
* Add support for in-memory and other types of stores (#4158)
* Add support for in-memory and other types of stores
* Temporarily add -x to know what's causing check.sh to fail
* Remove -x
* DO NOT MERGE TO MASTER: Remove commit math from check.sh temporarily
* Initial implementation of GDTCORDatabase (#4180)
* Initial implementation of GDTCORDatabase
* Style
* Check result of running a statement
* Simplify init
Also support >1 :memory: db
* Write test docs and fix one tsan issue (#4211)
* wip moving storage to sqlite
* Revert "wip moving storage to sqlite"
This reverts commit ee1895f1bd.
* Address tsan issue and document tests
* Address implicit self retains
Don't know why these aren't surfaced locally, I have the warning on.
* Implement bulk sql execution (#4528)
* Change custom prioritization dictionary to bytes (#4534)
* Change custom prioritization dictionary to bytes
* Fix a missed change for customBytes
* Refactor GDT's storage to be an interface (#5022)
* Refactor GDT's storage to be an interface
- Events are now removed by eventID
- Events now generate an ID when they are alloc/inited
- Copying events also copies their eventID
- Event hashing takes into account the eventID
- A static method in GDTCOREvent creates event IDs as the concat of <session counter><event counter during session>
- Session counters are incremented and stored in user defaults at app start
- Storage instances register themselves with GDTCORRegistrar like prioritizers and uploaders
- Storage fakes are refactored to be registered with GDTCORRegistrar
- Added some missing docs and fixed some typos
* Remove an unintended change from assert macro
* Use a variable
* Additional docs and test fixes
* Move saving the counter value to a file
* Update docs
* Rename GDTCORStorage to GDTCORFlatFileStorage (#5079)
* Rename GDTCORStorage to GDTCORFlatFileStorage
* Fix the NSCoding keys
* Fixes to get building and unit tests passing
* Address lack of thread safety affecting lifecycle tests
* Style
* Transition customPrioritizationDict to customBytes
Adds a category on GDTCOREvent to make checking network connection info easier.
* Remove all sqlite and database stufff or the purposes of merging back to maste (#5330)
* Update .travis.yml
* Libraries should save state if a completion block is requested
Currently, the onComplete block of sendXEvent:onComplete: is invoked when the event bytes are written to disk. However, if the app crashes before a lifecycle event occurs (trigger GDTCORStorage to serialize to disk), that event if effectively lost because the metadata has all been lost. This change triggers the saving of state of GDTCORStorage and prioritizers (if they implement it) if an onComplete block has been given.
* Remove flaky check
* Update GDTCORStorage.m
* Don't attempt to create data if the event's fileURL is nil.
This could be because of changes to NSCoding w.r.t. transitioning from GDTCORStoredEvent to GDTCOREvent.
* Attempt to address sudden analyzer issues
* Don't pass nil to a function that requires non-nil arguments.
* Change error code to the new GDTCORMCEFileReadError