Commit Graph

31 Commits

Author SHA1 Message Date
Dean Herbert 78d86fd3ff Fix `PerformWrite` not rolling back transaction on exception 2022-06-30 15:15:09 +09:00
Dan Balasescu f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Bartłomiej Dach a378e78ced
Fix `RealmLive` unnecessarily passing ID around
Appears to have never been needed. When the `retrieveFromID` method was
created in 81b5717ae7, it didn't use the
`id` parameter for anything either.
2022-02-01 21:35:12 +01:00
Dean Herbert cd71ec0edd Remove `ILive<>` interface (and use `abstract Live<>` instead) 2022-01-26 13:38:56 +09:00
Dean Herbert d37c3c463e Move statistics to static class 2022-01-26 13:29:12 +09:00
Dean Herbert c7947b3489 Add statistics for `Live` usage 2022-01-26 12:42:24 +09:00
Dean Herbert 56b06f34f0 Fix `RealmLive` not refetching if update thread context was closed at some point 2022-01-26 12:32:34 +09:00
Dean Herbert d76822b685 Avoid creating realm contexts or refetching when accessing `RealmLive` from the update thread 2022-01-26 12:32:34 +09:00
Dean Herbert e23b10e6a5 Update remaining cases of clashing variable name in `realm.Run(realm..` 2022-01-25 13:04:05 +09:00
Dean Herbert 6eb2c28e41 Rename `RealmContextFactory` to `RealmAccess` 2022-01-24 20:38:07 +09:00
Dean Herbert 81b5717ae7 Fix `RealmLive` failing to retrieve due to lack of refresh 2022-01-21 17:33:03 +09:00
Dean Herbert d2655c0825 Fix `RealmLive` not necessarily being in refreshed state due to potentially using update context 2022-01-21 17:27:30 +09:00
Dean Herbert 114c9e8c1f Update all usages of `CreateContext` to use either `Run` or `Write` 2022-01-21 17:27:08 +09:00
Dean Herbert 7baff18764 Add back `PerformRead` return safety by checking `IsManaged` status of returned data 2022-01-13 13:14:44 +09:00
Dean Herbert 8461eaab46 `BeatmapSetInfo` detach support 2022-01-12 17:00:16 +09:00
Dean Herbert a9dbcd92a1 Split out unmanaged implementation of `RealmLive` into its own class 2021-12-16 15:23:55 +09:00
Dean Herbert 441b7baa93 Provide a realm factory to usages of `ToLive`/`RealmLive` 2021-12-14 14:26:34 +09:00
Dean Herbert ef3d0ee0db Merge branch 'master' into realm-integration/skins-rebase 2021-11-30 19:59:59 +09:00
Dean Herbert f3f77fa053 Update missed xmldoc/comments 2021-11-30 11:56:53 +09:00
Dean Herbert 35d68d6ab0 Remove all optimisations from `RealmLive` 2021-11-30 11:47:29 +09:00
Dean Herbert cd0c811ab1 Add the ability to call `ToString` on a `RealmLive` to get the underlying object's implementation 2021-11-29 18:28:25 +09:00
Dean Herbert 348d1d0be9 Don't dispose fetched realm instance when using `RealmLive.Value`
See https://github.com/realm/realm-dotnet/discussions/2734#discussioncomment-1705038 for reasoning.
2021-11-29 18:28:25 +09:00
Dean Herbert 1dd5e1ca89 Remove `RealmLive` context re-fetch optimisation for now 2021-11-29 18:28:25 +09:00
Dean Herbert 6dcc244e21 Fix `RealmLive` not working is data is attached to realm post-`ToLive` call 2021-11-29 17:34:58 +09:00
Dean Herbert cb8fa80352 Don't dispose fetched realm instance when using `RealmLive.Value`
See https://github.com/realm/realm-dotnet/discussions/2734#discussioncomment-1705038 for reasoning.
2021-11-29 14:25:43 +09:00
Dean Herbert e40e5096ea Remove `RealmLive` context re-fetch optimisation for now 2021-11-29 14:25:43 +09:00
Dan Balasescu 5e53f51c99
Merge pull request #15812 from peppy/realm-live-unmanaged-fetch-fix
Avoid attempting to fetch a non-managed `RealmLive` instance from the realm backing
2021-11-26 15:37:58 +09:00
Dean Herbert 40d1b97af1 Avoid attempting to fetch a non-managed `RealmLive` instance from the realm backing
For compatibility reasons, we quite often convert completely unmanaged
instances to `ILive`s so they fit the required parameters of a property
or method call. This ensures such cases will not cause any issues when
trying to interact with the underlying data.

Originally I had this allowing write operations, but that seems a bit
unsafe (when performing a write one would assume that the underlying
data is being persisted, whereas in this case it is not). We can change
this if the requirements change in the future, but I think throwing is
the safest bet for now.
2021-11-26 15:06:14 +09:00
Dean Herbert 13612c0d02 Add equality support to `ILive` types 2021-11-26 14:56:16 +09:00
Dean Herbert 93d7cdc509 Don't check whether the source realm was closed or not
Based on what we now know, this is not required, as long as there is
another realm context open on the same thread.
2021-10-13 15:50:06 +09:00
Dean Herbert b01d82b3fd Add `RealmLive` implementation 2021-10-11 15:36:41 +09:00