311 Commits

Author SHA1 Message Date
Thomas Goyne
f5ae1bdf80 Merge pull request #39 from realm/tg/validate-schema-changes
Handle allowed schema changes in the transaction log observer
2016-02-16 10:07:01 -08:00
Thomas Goyne
a99cbb7b84 Merge pull request #41 from realm/tg/index_of
Remove the Query version of Results::index_of()
2016-02-12 17:37:24 -08:00
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
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
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
Mark Rowe
1ff80797ed Add information on using the build system to the README. 2016-01-19 10:55:07 -08:00
Mark Rowe
fbb386a735 Improve things a little for Linux. 2016-01-19 10:41:25 -08:00
Mark Rowe
548701c2fd Remove a bogus forward-declaration. 2016-01-19 10:41:25 -08:00
Mark Rowe
9d43f8952e Rework download_realm_core to avoid re-downloading core on clean builds. 2016-01-19 10:41:25 -08:00
Mark Rowe
c4191d8af6 Hook the parser tests into the CMake build system. 2016-01-19 10:41:25 -08:00
Mark Rowe
9cf26ed2cb Add an initial pass at a CMake-based build system.
It currently creates a dynamic library, and builds on OS X only.
2016-01-19 10:41:25 -08:00
Ari Lazier
dd2c87c3b7 Merge pull request #29 from realm/al-js-fixes
Outstanding ObjectStore changes from the JS branch
2016-01-19 10:32:58 -08:00
Ari Lazier
a2befeeffb Merge pull request #32 from realm/alazier-readme
Create README.md
2016-01-12 15:39:37 -08:00
Ari Lazier
8f8982c448 Create README.md 2016-01-12 11:02:30 -08:00
Ari Lazier
d4f5f45e56 fix for member initializtion ordering 2016-01-08 13:05:13 -08:00
Ari Lazier
d0715cc8e4 pr fixes 2016-01-08 11:37:05 -08:00
Thomas Goyne
854d6bea53 Merge pull request #31 from realm/tg-file-not-found
Catch File::NotFound and rethrow correctly
2016-01-07 15:19:21 -08:00
Marius Rackwitz
7e96fa9732 Catch File::NotFound and rethrow correctly 2016-01-07 15:19:03 -08:00