Commit Graph

530 Commits

Author SHA1 Message Date
Thomas Goyne 5f5510e170 Remove the Query version of Results::index_of()
It didn't work for queries based on a LinkView because for those the arguments
to count() are indexes in the LinkView rather than table rows, and there's
currently no way to check if a query is based on a LinkView.
2016-02-10 10:52:33 -08:00
Thomas Goyne f7957b7633 Merge pull request #22 from realm/tg-realm-coordinator
Extract cache management and inter-Realm sharing to RealmCoordinator
2016-02-10 10:20:51 -08:00
Thomas Goyne 638b4ec35e Actually update the coordinator's copy of the schema 2016-02-08 14:46:42 -08:00
Thomas Goyne a3dab7e4b1 Add wrappers for platform-specific headers and normalize include paths
Building the objectstore code now only requires adding the root `src` directory
to the include paths.
2016-02-08 14:46:42 -08:00
Thomas Goyne 74eb195e7f Add wrappers for a bunch more LinkView methods 2016-02-03 18:05:56 -08:00
Thomas Goyne fdc67777bb Make List default constructable 2016-02-03 18:05:56 -08:00
Thomas Goyne 4c5389dbac Return RowExpr from List::get() 2016-02-03 18:05:55 -08:00
Thomas Goyne 8e58fc693c Call verify_attached() from verify_in_transaction() 2016-02-03 18:05:55 -08:00
Thomas Goyne 27acf3f109 Fix spelling of verify_in_transaction 2016-02-03 18:05:55 -08:00
Thomas Goyne 9152198962 Change List::realm() to List::get_realm() for consistency 2016-02-03 18:05:55 -08:00
Thomas Goyne 6276266d67 Make List const-correct 2016-02-03 18:05:55 -08:00
Thomas Goyne 1cbbf1958f Check the thread in all of List's methods 2016-02-03 18:05:55 -08:00
Thomas Goyne 243ae32187 Fix incorrect error message 2016-02-03 18:05:55 -08:00
Thomas Goyne 0819f72b1b Remove call to sync_if_needed() on a LinkView 2016-02-03 18:05:55 -08:00
Thomas Goyne 62d573c1d9 Remove std:: from size_t in list.* 2016-02-03 18:05:55 -08:00
Thomas Goyne 356c17ba11 Remove list.hpp's dependency on shared_realm.hpp 2016-02-03 18:05:54 -08:00
Thomas Goyne 07c40b4517 Reformat list.{hpp,cpp} to match core style 2016-02-03 18:05:44 -08:00
Nabil Hachicha d5ad23bad4 fixes #209 download core in gradle task 2016-01-30 18:26:27 +00:00
Thomas Goyne ad5db72767 Destroy all notifiers before closing realms in clear_cache() 2016-01-25 17:46:40 -08:00
Thomas Goyne e557babaad Fix the generic implementation of ExternalCommitHelper 2016-01-25 17:46:39 -08:00
Thomas Goyne 4eb49ce6dc Add a not-very-useful generic CachedRealm implementation 2016-01-25 17:46:39 -08:00
Thomas Goyne 112c778d8e Extract the non-Apple specific parts of CachedRealm to a base class 2016-01-25 17:46:39 -08:00
Thomas Goyne 178c562f2c Add an untested non-Apple ExternalCommitHelper implementation 2016-01-25 17:46:39 -08:00
Thomas Goyne 4c195c92e0 Remove some unused cruft from ExternalCommitHelper 2016-01-25 17:46:39 -08:00
Thomas Goyne 513b3d770c Add a short explanation of CachedRealm 2016-01-25 17:46:39 -08:00
Thomas Goyne 89bd55a535 Actually remove the Realm from the cache when close() is called 2016-01-25 17:46:38 -08:00
Thomas Goyne 9b8a0d5346 Log uncaught exceptions in the notifier thread
By default the thread just silently goes away.
2016-01-25 17:46:38 -08:00
Thomas Goyne ebfca16d00 Eliminate a config copy when opening Realms 2016-01-25 17:46:38 -08:00
Thomas Goyne e30e2ff278 Simplify RealmCoordinator::get_coordinator() 2016-01-25 17:46:38 -08:00
Thomas Goyne 7a0c83929f Use an unordered map for the Realm coordinator cache 2016-01-25 17:46:38 -08:00
Thomas Goyne d6daa052e8 Decouple Realm instance tracking from interprocess notifications 2016-01-25 17:46:38 -08:00
Thomas Goyne 2ed90e6d79 Check for invalid schema changes even when KVO is not used 2016-01-25 10:58:30 -08:00
Thomas Goyne d5e00c9315 Handle allowed schema changes in the transaction log observer 2016-01-25 10:56:06 -08:00
Thomas Goyne f3397d48c0 Add IndexSet tests
And fix a bug that resulted in ranges not being merged.
2016-01-25 10:36:54 -08:00
Thomas Goyne c3a9489b02 Fix a potential deadlock when opening a realm 2016-01-25 10:13:44 -08:00
Thomas Goyne e87a507223 Extract cache management and inter-Realm sharing to RealmCoordinator 2016-01-25 10:13:44 -08:00
Thomas Goyne 5e71c4178e Merge pull request #17 from realm/tg-multiprocess-schema-init
Fix race condition in multiprocess schema init
2016-01-25 10:04:10 -08:00
Thomas Goyne 016112da8c Merge pull request #20 from realm/tg-read-only-realm
Fix opening read-only Realms in read-only directories
2016-01-25 10:01:45 -08:00
Thomas Goyne 4a971b0102 Merge pull request #35 from realm/tg/cmake-fixes
Add headers and core's CPP flags to cmake
2016-01-25 10:01:34 -08:00
Thomas Goyne 4607e75f90 Merge pull request #36 from realm/tg/schema-literal
Make Schema constructable from initializer lists
2016-01-25 10:01:26 -08:00
Thomas Goyne 8d10a65088 Make Schema constructable from initializer lists
This enables the following syntax for defining object schemas, which is useful for writing tests:

    Schema schema = {
        {"origin", "", {
            {"array", PropertyTypeArray, "target"}
        }},
        {"target", "", {
            {"prop1", PropertyTypeInt},
            {"prop2", PropertyTypeFloat},
        }},
    };
2016-01-22 11:55:05 -08:00
Thomas Goyne 0e08e05238 Only set REALM_DEBUG for debug builds 2016-01-21 13:56:41 -08:00
Thomas Goyne 9d1a3da411 Add the required preprocessor flags for using core 2016-01-21 11:06:23 -08:00
Thomas Goyne 62a729fbfd Add headers to CMakeLists 2016-01-21 11:06:14 -08:00
Thomas Goyne 4b001e1842 Extract some logic to a helper function to avoid recursion in update_schema() 2016-01-20 16:26:30 -08:00
Thomas Goyne 8d7b5d8d08 Remove the tracking of if any changes were made from update_realm_with_schema()
It was no longer actually used for anything since we now check if any changes
are actually needed before calling it (to avoid beginning a write transaction
when not needed).
2016-01-20 16:26:30 -08:00
Thomas Goyne 9c2d4703ed Reshuffle the updating of m_config in Realm::update_schema() 2016-01-20 16:26:30 -08:00
Thomas Goyne 6c25eeb85c Fix race condition in multiprocess schema init
If the schema was initialized by a different process between when the old
schema was read and the write transaction was began, the schema init code would
see the updated schema version but not re-read the schema, resulting in it
thinking that a migration was required when the schema actually matched.
2016-01-20 16:26:29 -08:00
kishikawa katsumi 0bae415718 Read-only Realm should be opened even in immutable directory Realm files in an app bundle should be opened if marked as read-only 2016-01-20 16:25:10 -08:00
Mark Rowe 415bfe4d35 Merge pull request #33 from realm/mar/cmake
Add a CMake build system
2016-01-20 15:48:53 -08:00