nano-store 0.3.13 → 0.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.rvmrc +1 -1
- data/Rakefile +1 -1
- data/lib/nano_store.rb +1 -1
- data/lib/nano_store/finder.rb +26 -9
- data/lib/nano_store/version.rb +1 -1
- data/nano-store.gemspec +2 -2
- data/spec/finder_spec.rb +29 -12
- data/vendor/Podfile.lock +8 -2
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoBag.h +312 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoBag_Private.h +37 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoEngine.h +542 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoEngine_Private.h +69 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoExpression.h +125 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoExpression_Private.h +35 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoGlobals.h +323 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoGlobals_Private.h +99 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoObject.h +323 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoObjectProtocol.h +119 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoObject_Private.h +35 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoPredicate.h +123 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoPredicate_Private.h +35 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoResult.h +137 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoResult_Private.h +43 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoSearch.h +383 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoSearch_Private.h +48 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoSortDescriptor.h +124 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoStore.h +475 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NSFNanoStore_Private.h +57 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NanoStore.h +463 -0
- data/vendor/Pods/BuildHeaders/NanoStore/NanoStore_Private.h +37 -0
- data/vendor/Pods/Headers/NanoStore/NSFNanoObject.h +25 -0
- data/vendor/Pods/NanoStore/Classes/Public/NSFNanoObject.h +25 -0
- data/vendor/Pods/NanoStore/Classes/Public/NSFNanoObject.m +53 -28
- data/vendor/Pods/NanoStore/README.md +5 -1
- data/vendor/Pods/Pods.bridgesupport +635 -621
- data/vendor/Pods/Pods.xcconfig +4 -1
- metadata +36 -8
@@ -0,0 +1,48 @@
|
|
1
|
+
/*
|
2
|
+
NSFNanoSearch_Private.h
|
3
|
+
NanoStore
|
4
|
+
|
5
|
+
Copyright (c) 2010 Webbo, L.L.C. All rights reserved.
|
6
|
+
|
7
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted
|
8
|
+
provided that the following conditions are met:
|
9
|
+
|
10
|
+
* Redistributions of source code must retain the above copyright notice, this list of conditions
|
11
|
+
and the following disclaimer.
|
12
|
+
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
13
|
+
and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
14
|
+
* Neither the name of Webbo nor the names of its contributors may be used to endorse or promote
|
15
|
+
products derived from this software without specific prior written permission.
|
16
|
+
|
17
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
|
18
|
+
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
19
|
+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
|
20
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
21
|
+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
22
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
23
|
+
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
24
|
+
SUCH DAMAGE.
|
25
|
+
*/
|
26
|
+
|
27
|
+
#import "NanoStore.h"
|
28
|
+
|
29
|
+
/** \cond */
|
30
|
+
|
31
|
+
@interface NSFNanoSearch (Private)
|
32
|
+
- (NSDictionary *)_retrieveDataWithError:(out NSError **)outError;
|
33
|
+
- (NSArray *)_dataWithKey:(NSString *)aKey attribute:(NSString *)anAttribute value:(NSString *)aValue matching:(NSFMatchType)match;
|
34
|
+
- (NSArray *)_dataWithKey:(NSString *)aKey attribute:(NSString *)anAttribute value:(NSString *)aValue matching:(NSFMatchType)match returning:(NSFReturnType)returnedObjectType;
|
35
|
+
- (NSDictionary *)_retrieveDataAdded:(NSFDateMatchType)aDateMatch calendarDate:(NSDate *)aDate error:(out NSError **)outError;
|
36
|
+
- (NSString *)_preparedSQL;
|
37
|
+
- (NSString *)_prepareSQLQueryStringWithKey:(NSString *)aKey attribute:(NSString *)anAttribute value:(id)aValue matching:(NSFMatchType)match;
|
38
|
+
- (NSString *)_prepareSQLQueryStringWithExpressions:(NSArray *)someExpressions;
|
39
|
+
- (NSArray *)_resultsFromSQLQuery:(NSString *)theSQLStatement;
|
40
|
+
+ (NSString *)_prepareSQLQueryStringWithKeys:(NSArray *)someKeys;
|
41
|
+
+ (NSString *)_querySegmentForColumn:(NSString *)aColumn value:(id)aValue matching:(NSFMatchType)match;
|
42
|
+
+ (NSString *)_querySegmentForAttributeColumnWithValue:(id)anAttributeValue matching:(NSFMatchType)match valueColumnWithValue:(id)aValue;
|
43
|
+
- (NSDictionary *)_dictionaryForKeyPath:(NSString *)keyPath value:(id)value;
|
44
|
+
+ (NSString *)_quoteStrings:(NSArray *)strings joiningWithDelimiter:(NSString *)delimiter;
|
45
|
+
- (id)_sortResultsIfApplicable:(NSDictionary *)results returnType:(NSFReturnType)theReturnType;
|
46
|
+
@end
|
47
|
+
|
48
|
+
/** \endcond */
|
@@ -0,0 +1,124 @@
|
|
1
|
+
/*
|
2
|
+
NSFNanoSortDescriptor.h
|
3
|
+
NanoStore
|
4
|
+
|
5
|
+
Copyright (c) 2010 Webbo, L.L.C. All rights reserved.
|
6
|
+
|
7
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted
|
8
|
+
provided that the following conditions are met:
|
9
|
+
|
10
|
+
* Redistributions of source code must retain the above copyright notice, this list of conditions
|
11
|
+
and the following disclaimer.
|
12
|
+
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
13
|
+
and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
14
|
+
* Neither the name of Webbo nor the names of its contributors may be used to endorse or promote
|
15
|
+
products derived from this software without specific prior written permission.
|
16
|
+
|
17
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
|
18
|
+
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
19
|
+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
|
20
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
21
|
+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
22
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
23
|
+
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
24
|
+
SUCH DAMAGE.
|
25
|
+
*/
|
26
|
+
|
27
|
+
#import <Foundation/Foundation.h>
|
28
|
+
|
29
|
+
#import "NSFNanoGlobals.h"
|
30
|
+
|
31
|
+
/*! @file NSFNanoSortDescriptor.h
|
32
|
+
@brief A unit that describes a sort to be used in conjunction with a search operation.
|
33
|
+
*/
|
34
|
+
|
35
|
+
/** @class NSFNanoSortDescriptor
|
36
|
+
* A unit that describes a sort to be used in conjunction with a search operation.
|
37
|
+
* @details <b>Example:</b>
|
38
|
+
@code
|
39
|
+
// Instantiate a NanoStore and open it
|
40
|
+
NSFNanoStore *nanoStore = [NSFNanoStore createAndOpenStoreWithType:NSFMemoryStoreType path:nil error:nil];
|
41
|
+
[nanoStore removeAllObjectsFromStoreAndReturnError:nil];
|
42
|
+
|
43
|
+
NSFNanoObject *obj1 = [NSFNanoObject nanoObjectWithDictionary:[NSDictionary dictionaryWithObject:@"Madrid" forKey:@"City"]];
|
44
|
+
NSFNanoObject *obj2 = [NSFNanoObject nanoObjectWithDictionary:[NSDictionary dictionaryWithObject:@"Barcelona" forKey:@"City"]];
|
45
|
+
NSFNanoObject *obj3 = [NSFNanoObject nanoObjectWithDictionary:[NSDictionary dictionaryWithObject:@"San Sebastian" forKey:@"City"]];
|
46
|
+
NSFNanoObject *obj4 = [NSFNanoObject nanoObjectWithDictionary:[NSDictionary dictionaryWithObject:@"Zaragoza" forKey:@"City"]];
|
47
|
+
NSFNanoObject *obj5 = [NSFNanoObject nanoObjectWithDictionary:[NSDictionary dictionaryWithObject:@"Tarragona" forKey:@"City"]];
|
48
|
+
|
49
|
+
[nanoStore addObjectsFromArray:[NSArray arrayWithObjects:obj1, obj2, obj3, obj4, obj5, nil] error:nil];
|
50
|
+
|
51
|
+
// Prepare the sort descriptor
|
52
|
+
NSFNanoSortDescriptor *sortCities = [[NSFNanoSortDescriptor alloc]initWithAttribute:@"City" ascending:YES];
|
53
|
+
|
54
|
+
// Prepare the search
|
55
|
+
NSFNanoSearch *search = [NSFNanoSearch searchWithStore:nanoStore];
|
56
|
+
search.sort = [NSArray arrayWithObjects: sortCities, nil];
|
57
|
+
|
58
|
+
// Perform the search
|
59
|
+
NSArray *searchResults = [search searchObjectsWithReturnType:NSFReturnObjects error:nil];
|
60
|
+
STAssertTrue ([searchResults count] == 5, @"Expected to find five objects.");
|
61
|
+
STAssertTrue ([[[[searchResults objectAtIndex:0]info]objectForKey:@"City"]isEqualToString:@"Barcelona"], @"Expected to find Barcelona.");
|
62
|
+
|
63
|
+
for (NSFNanoObject *object in searchResults) {
|
64
|
+
NSLog(@"%@", [[object info]objectForKey:@"City"]);
|
65
|
+
}
|
66
|
+
|
67
|
+
// Cleanup
|
68
|
+
[sortCities release];
|
69
|
+
|
70
|
+
// Close the document store
|
71
|
+
[nanoStore closeWithError:nil];
|
72
|
+
@endcode
|
73
|
+
*/
|
74
|
+
|
75
|
+
@interface NSFNanoSortDescriptor : NSObject
|
76
|
+
|
77
|
+
/** * The property key to use when performing a comparison */
|
78
|
+
@property (nonatomic, readonly) NSString *attribute;
|
79
|
+
/** * The property to indicate whether the comparison should be performed in ascending mode */
|
80
|
+
@property (nonatomic, readonly) BOOL isAscending;
|
81
|
+
|
82
|
+
/** @name Creating and Initializing Expressions
|
83
|
+
*/
|
84
|
+
|
85
|
+
//@{
|
86
|
+
|
87
|
+
/** * Creates and returns an sort descriptor with the specified key and ordering.
|
88
|
+
* @param theKey the property key to use when performing a comparison. Must not be nil or empty.
|
89
|
+
* @param ascending YES if the sort descriptor specifies sorting in ascending order, otherwise NO.
|
90
|
+
* @return A sort descriptor initialized with the specified key and ordering.
|
91
|
+
* @warning The parameter theKey must not be nil.
|
92
|
+
* @throws NSFUnexpectedParameterException is thrown if the key is nil.
|
93
|
+
* @see \link initWithKey:ascending: - (id)initWithKey:(NSString *)theKey ascending:(BOOL)ascending \endlink
|
94
|
+
*/
|
95
|
+
|
96
|
+
+ (NSFNanoSortDescriptor *)sortDescriptorWithAttribute:(NSString *)theAttribute ascending:(BOOL)ascending;
|
97
|
+
|
98
|
+
/** * Initializes a newly allocated sort descriptor with the specified key and ordering.
|
99
|
+
* @param theKey the property key to use when performing a comparison. Must not be nil or empty.
|
100
|
+
* @param ascending YES if the sort descriptor specifies sorting in ascending order, otherwise NO.
|
101
|
+
* @return A sort descriptor initialized with the specified key and ordering.
|
102
|
+
* @warning The parameter theKey must not be nil.
|
103
|
+
* @throws NSFUnexpectedParameterException is thrown if the key is nil.
|
104
|
+
* @see \link sortDescriptorWithKey:ascending: - (NSFNanoSortDescriptor *)sortDescriptorWithKey:(NSString *)theKey ascending:(BOOL)ascending \endlink
|
105
|
+
*/
|
106
|
+
|
107
|
+
- (id)initWithAttribute:(NSString *)theAttribute ascending:(BOOL)ascending;
|
108
|
+
|
109
|
+
//@}
|
110
|
+
|
111
|
+
/** @name Miscellaneous
|
112
|
+
*/
|
113
|
+
|
114
|
+
//@{
|
115
|
+
|
116
|
+
/** * Returns a string representation of the sort.
|
117
|
+
* @note Check properties attribute and isAscending to find out the current state of the sort.
|
118
|
+
*/
|
119
|
+
|
120
|
+
- (NSString *)description;
|
121
|
+
|
122
|
+
//@}
|
123
|
+
|
124
|
+
@end
|
@@ -0,0 +1,475 @@
|
|
1
|
+
/*
|
2
|
+
NSFNanoStore.h
|
3
|
+
NanoStore
|
4
|
+
|
5
|
+
Copyright (c) 2010 Webbo, L.L.C. All rights reserved.
|
6
|
+
|
7
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted
|
8
|
+
provided that the following conditions are met:
|
9
|
+
|
10
|
+
* Redistributions of source code must retain the above copyright notice, this list of conditions
|
11
|
+
and the following disclaimer.
|
12
|
+
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
13
|
+
and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
14
|
+
* Neither the name of Webbo nor the names of its contributors may be used to endorse or promote
|
15
|
+
products derived from this software without specific prior written permission.
|
16
|
+
|
17
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
|
18
|
+
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
19
|
+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
|
20
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
21
|
+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
22
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
23
|
+
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
24
|
+
SUCH DAMAGE.
|
25
|
+
*/
|
26
|
+
|
27
|
+
/*! @file NSFNanoStore.h
|
28
|
+
@brief The document store is where the objects get saved. It can be file-based (permanent of temporary) or memory-backed.
|
29
|
+
*/
|
30
|
+
|
31
|
+
/** @class NSFNanoStore
|
32
|
+
* The document store is where the objects get saved. It can be file-based (permanent of temporary) or memory-backed.
|
33
|
+
*
|
34
|
+
* @details <b>Example:</b>
|
35
|
+
@code
|
36
|
+
// Instantiate a NanoStore and open it
|
37
|
+
NSFNanoStore *nanoStore = [NSFNanoStore createAndOpenStoreWithType:NSFMemoryStoreType path:nil error:nil];
|
38
|
+
|
39
|
+
// Add some data to the document store
|
40
|
+
NSDictionary *info = ...;
|
41
|
+
NSFNanoObject *object = [NSFNanoObject nanoObjectWithDictionary:info];
|
42
|
+
[nanoStore addObject:object error:nil];
|
43
|
+
|
44
|
+
// Return all objects via NSFNanoSearch
|
45
|
+
NSFNanoSearch *search = [NSFNanoSearch searchWithStore:nanoStore];
|
46
|
+
NSDictionary *searchResults = [search searchObjectsWithReturnType:NSFReturnObjects error:nil];
|
47
|
+
|
48
|
+
// Return the keys of all objects
|
49
|
+
NSArray *keys = [search searchObjectsWithReturnType:NSFReturnKeys error:nil];
|
50
|
+
|
51
|
+
// Search one or more objects with a series of keys via NSFNanoStore
|
52
|
+
NSArray *objects = [nanoStore objectsWithKeysInArray:[NSArray arrayWithObject:@"ABC-123"]];
|
53
|
+
|
54
|
+
// Search an object with a given key via NSFNanoSearch
|
55
|
+
[search setKey:@"ABC-123"];
|
56
|
+
objects = [search searchObjectsWithReturnType:NSFReturnObjects error:nil];
|
57
|
+
|
58
|
+
// Remove an object from the document store
|
59
|
+
[nanoStore removeObject:object error:nil];
|
60
|
+
|
61
|
+
// Close the document store
|
62
|
+
[nanoStore closeWithError:nil];
|
63
|
+
@endcode
|
64
|
+
*/
|
65
|
+
|
66
|
+
#import <Foundation/Foundation.h>
|
67
|
+
|
68
|
+
#import <sqlite3.h>
|
69
|
+
|
70
|
+
@class NSFNanoEngine, NSFNanoResult, NSFNanoBag, NSFNanoSortDescriptor;
|
71
|
+
|
72
|
+
@interface NSFNanoStore : NSObject
|
73
|
+
|
74
|
+
/** * A reference to the engine used by the document store, which contains a reference to the SQLite database. */
|
75
|
+
@property (nonatomic, strong, readonly) NSFNanoEngine *nanoStoreEngine;
|
76
|
+
/** * The type of engine mode used by NanoStore to process data in the document store.
|
77
|
+
The mode can be one of two options: <i>NSFEngineProcessingDefaultMode</i> and <i>NSFEngineProcessingFastMode</i>. See <i>NSFEngineProcessingMode</i>
|
78
|
+
to learn more about how these options affect the engine behavior.
|
79
|
+
|
80
|
+
In default mode, the pragmas are set as follows:
|
81
|
+
|
82
|
+
- PRAGMA fullfsync = OFF;
|
83
|
+
- PRAGMA synchronous = FULL;
|
84
|
+
- PRAGMA journal_mode = DELETE;
|
85
|
+
- PRAGMA temp_store = DEFAULT;
|
86
|
+
|
87
|
+
In fast mode, the pragmas are set to:
|
88
|
+
|
89
|
+
- PRAGMA fullfsync = OFF;
|
90
|
+
- PRAGMA synchronous = OFF;
|
91
|
+
- PRAGMA journal_mode = MEMORY;
|
92
|
+
- PRAGMA temp_store = MEMORY;
|
93
|
+
|
94
|
+
@note Set this property before you open the document store.
|
95
|
+
@see - (BOOL)openWithError:(out NSError **)outError;
|
96
|
+
*/
|
97
|
+
@property (nonatomic, assign, readwrite) NSFEngineProcessingMode nanoEngineProcessingMode;
|
98
|
+
/** * Number of iterations that will trigger an automatic save. */
|
99
|
+
@property (nonatomic, assign, readwrite) NSUInteger saveInterval;
|
100
|
+
/** * Whether there are objects that haven't been saved to the store. */
|
101
|
+
@property (nonatomic, readonly) BOOL hasUnsavedChanges;
|
102
|
+
|
103
|
+
/** @name Creating and Initializing NanoStore
|
104
|
+
*/
|
105
|
+
|
106
|
+
//@{
|
107
|
+
|
108
|
+
/** * Creates and returns a document store of a specific type at a given file path.
|
109
|
+
* @param theType the type of document store that will be created.
|
110
|
+
* @param thePath the file path where the document store will be created. Can be nil (see warning for additional info).
|
111
|
+
* @return A document store upon success, nil otherwise.
|
112
|
+
* @note
|
113
|
+
* To manipulate the document store, you must first open it. If you don't need to configure settings for the document store, you can use
|
114
|
+
* \link createAndOpenStoreWithType:path:error: + (NSFNanoStore *)createAndOpenStoreWithType:(NSFNanoStoreType)theType path:(NSString *)thePath error:(out NSError **)outError \endlink instead.
|
115
|
+
* @warning
|
116
|
+
* The path is only meaningful for document stores of type \link NSFGlobals::NSFPersistentStoreType NSFPersistentStoreType \endlink. It must not be nil.
|
117
|
+
* @throws NSFUnexpectedParameterException is thrown if the file path is nil or empty and the type is set to @ref NSFPersistentStoreType "NSFPersistentStoreType".
|
118
|
+
* @see \link openWithError: - (BOOL)openWithError:(out NSError **)outError \endlink
|
119
|
+
* @see \link createAndOpenStoreWithType:path:error: + (NSFNanoStore *)createAndOpenStoreWithType:(NSFNanoStoreType)theType path:(NSString *)thePath error:(out NSError **)outError \endlink
|
120
|
+
*/
|
121
|
+
|
122
|
+
+ (NSFNanoStore *)createStoreWithType:(NSFNanoStoreType)theType path:(NSString *)thePath;
|
123
|
+
|
124
|
+
/** * Creates, opens and returns a document store of a specific type at a given file path.
|
125
|
+
* @param theType the type of document store that will be created.
|
126
|
+
* @param thePath the file path where the document store will be created. Can be nil (see warning for additional info).
|
127
|
+
* @param outError is used if an error occurs. May be NULL.
|
128
|
+
* @return A document store upon success, nil otherwise.
|
129
|
+
* @note
|
130
|
+
* If you need to configure settings for the document store, you can use \link createStoreWithType:path: + (NSFNanoStore *)createStoreWithType:(NSFNanoStoreType)theType path:(NSString *)thePath \endlink instead.
|
131
|
+
* @warning
|
132
|
+
* The path is only meaningful for document stores of type @ref NSFPersistentStoreType "NSFPersistentStoreType". It must not be nil.
|
133
|
+
* @throws NSFUnexpectedParameterException is thrown if the file path is nil or empty and the type is set to @ref NSFPersistentStoreType "NSFPersistentStoreType".
|
134
|
+
* @see \link openWithError: - (BOOL)openWithError:(out NSError **)outError \endlink
|
135
|
+
* @see \link createStoreWithType:path: + (NSFNanoStore *)createStoreWithType:(NSFNanoStoreType)theType path:(NSString *)thePath \endlink
|
136
|
+
*/
|
137
|
+
|
138
|
+
+ (NSFNanoStore *)createAndOpenStoreWithType:(NSFNanoStoreType)theType path:(NSString *)thePath error:(out NSError **)outError;
|
139
|
+
|
140
|
+
/** * Initializes a newly allocated document store of a specific type at a given file path.
|
141
|
+
* @param theType the type of document store that will be created.
|
142
|
+
* @param thePath the file path where the document store will be created. Can be nil (see note for additional info).
|
143
|
+
* @return A document store upon success, nil otherwise.
|
144
|
+
* @note
|
145
|
+
* To manipulate the document store, you must first open it. If you don't need to configure settings for the document store, you can use
|
146
|
+
* \link createAndOpenStoreWithType:path:error: + (NSFNanoStore *)createAndOpenStoreWithType:(NSFNanoStoreType)theType path:(NSString *)thePath error:(out NSError **)outError \endlink instead.
|
147
|
+
* @warning
|
148
|
+
* The path is only meaningful for document stores of type @ref NSFPersistentStoreType "NSFPersistentStoreType". It must not be nil.
|
149
|
+
* @throws NSFUnexpectedParameterException is thrown if the file path is nil and the type is set to @ref NSFPersistentStoreType "NSFPersistentStoreType".
|
150
|
+
* @see \link openWithError: - (BOOL)openWithError:(out NSError **)outError \endlink
|
151
|
+
* @see \link createAndOpenStoreWithType:path:error: + (NSFNanoStore *)createAndOpenStoreWithType:(NSFNanoStoreType)theType path:(NSString *)thePath error:(out NSError **)outError \endlink
|
152
|
+
*/
|
153
|
+
|
154
|
+
- (id)initStoreWithType:(NSFNanoStoreType)theType path:(NSString *)thePath;
|
155
|
+
|
156
|
+
//@}
|
157
|
+
|
158
|
+
/** @name Opening and Closing
|
159
|
+
*/
|
160
|
+
|
161
|
+
//@{
|
162
|
+
|
163
|
+
/** * Opens the document store, making it ready for manipulation.
|
164
|
+
* @param outError is used if an error occurs. May be NULL.
|
165
|
+
* @return YES upon success, NO otherwise.
|
166
|
+
* @note The document store needs to be opened only after opening a document store via
|
167
|
+
* \link createStoreWithType:path: + (NSFNanoStore *)createStoreWithType:(NSFNanoStoreType)theType path:(NSString *)thePath\endlink.
|
168
|
+
* The property nanoEngineProcessingMode allows to set the type of engine mode used by NanoStore to process data in the document store. Set this property before you open the document store.
|
169
|
+
* @see \link createStoreWithType:path: + (NSFNanoStore *)createStoreWithType:(NSFNanoStoreType)theType path:(NSString *)thePath \endlink
|
170
|
+
*/
|
171
|
+
|
172
|
+
- (BOOL)openWithError:(out NSError **)outError;
|
173
|
+
|
174
|
+
/** * Closes the document store.
|
175
|
+
* @param outError is used if an error occurs. May be NULL.
|
176
|
+
* @see \link isClosed - (BOOL)isClosed \endlink
|
177
|
+
*/
|
178
|
+
|
179
|
+
- (BOOL)closeWithError:(out NSError **)outError;
|
180
|
+
|
181
|
+
//@}
|
182
|
+
|
183
|
+
/** @name Accessors
|
184
|
+
*/
|
185
|
+
|
186
|
+
//@{
|
187
|
+
|
188
|
+
/** * Location where the document store is found.
|
189
|
+
* @note If the document store is file-based, its path will be returned. If it's a memory-backed document store, \link :Globals::NSFMemoryDatabase NSFMemoryDatabase \endlink will be returned instead.
|
190
|
+
*/
|
191
|
+
|
192
|
+
- (NSString *)filePath;
|
193
|
+
|
194
|
+
/** * Checks whether the document store is closed or open.
|
195
|
+
* @see \link close - (void)close \endlink
|
196
|
+
*/
|
197
|
+
|
198
|
+
- (BOOL)isClosed;
|
199
|
+
|
200
|
+
//@}
|
201
|
+
|
202
|
+
/** @name Adding and Removing Objects
|
203
|
+
*/
|
204
|
+
|
205
|
+
//@{
|
206
|
+
|
207
|
+
/** * Adds an \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant object to the document store.
|
208
|
+
* @param theObject is added to the document store.
|
209
|
+
* @param outError is used if an error occurs. May be NULL.
|
210
|
+
* @return YES upon success, NO otherwise.
|
211
|
+
* @warning This value cannot be nil and it must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
|
212
|
+
* @throws NSFNonConformingNanoObjectProtocolException is thrown if the object is non-\link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink compliant.
|
213
|
+
* @see \link addObjectsFromArray:error: - (BOOL)addObjectsFromArray:(NSArray *)theObjects error:(out NSError **)outError \endlink
|
214
|
+
*/
|
215
|
+
|
216
|
+
- (BOOL)addObject:(id <NSFNanoObjectProtocol>)theObject error:(out NSError **)outError;
|
217
|
+
|
218
|
+
/** * Adds a series of \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant objects to the document store.
|
219
|
+
* @param theObjects is an array of objects to be added to the document store. The objects must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
|
220
|
+
* @param outError is used if an error occurs. May be NULL.
|
221
|
+
* @return YES upon success, NO otherwise.
|
222
|
+
* @warning The objects of the array must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
|
223
|
+
* @throws NSFNonConformingNanoObjectProtocolException is thrown if the object is non-\link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink compliant.
|
224
|
+
* @see \link addObject:error: - (BOOL)addObject:(id <NSFNanoObjectProtocol>)theObject error:(out NSError **)outError \endlink
|
225
|
+
*/
|
226
|
+
|
227
|
+
- (BOOL)addObjectsFromArray:(NSArray *)theObjects error:(out NSError **)outError;
|
228
|
+
|
229
|
+
/** * Removes an object from the document store.
|
230
|
+
* @param theObject the object to be removed from the document store.
|
231
|
+
* @param outError is used if an error occurs. May be NULL.
|
232
|
+
* @return YES upon success, NO otherwise.
|
233
|
+
* @warning The objects of the array must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
|
234
|
+
* @see \link removeObjectsWithKeysInArray:error: - (BOOL)removeObjectsWithKeysInArray:(NSArray *)theKeys error:(out NSError **)outError \endlink
|
235
|
+
* @see \link removeObjectsInArray:error: - (BOOL)removeObjectsInArray:(NSArray *)theObjects error:(out NSError **)outError \endlink
|
236
|
+
* @see \link removeAllObjectsFromStoreAndReturnError: - (BOOL)removeAllObjectsFromStoreAndReturnError:(out NSError **)outError \endlink
|
237
|
+
*/
|
238
|
+
|
239
|
+
- (BOOL)removeObject:(id <NSFNanoObjectProtocol>)theObject error:(out NSError **)outError;
|
240
|
+
|
241
|
+
/** * Removes the list of objects with the specified keys from the document store.
|
242
|
+
* @param theKeys the list of keys to be removed from the document store.
|
243
|
+
* @param outError is used if an error occurs. May be NULL.
|
244
|
+
* @return YES upon success, NO otherwise.
|
245
|
+
* @warning The objects of the array must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
|
246
|
+
* @see \link removeObject:error: - (BOOL)removeObject:(id <NSFNanoObjectProtocol>)theObject error:(out NSError **)outError \endlink
|
247
|
+
* @see \link removeObjectsInArray:error: - (BOOL)removeObjectsInArray:(NSArray *)theObjects error:(out NSError **)outError \endlink
|
248
|
+
* @see \link removeAllObjectsFromStoreAndReturnError: - (BOOL)removeAllObjectsFromStoreAndReturnError:(out NSError **)outError \endlink
|
249
|
+
*/
|
250
|
+
|
251
|
+
- (BOOL)removeObjectsWithKeysInArray:(NSArray *)theKeys error:(out NSError **)outError;
|
252
|
+
|
253
|
+
/** * Removes the list of objects from the document store.
|
254
|
+
* @param theObjects the list of objects to be removed from the document store.
|
255
|
+
* @param outError is used if an error occurs. May be NULL.
|
256
|
+
* @return YES upon success, NO otherwise.
|
257
|
+
* @warning The objects of the array must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
|
258
|
+
* @see \link removeObject:error: - (BOOL)removeObject:(id <NSFNanoObjectProtocol>)theObject error:(out NSError **)outError \endlink
|
259
|
+
* @see \link removeObjectsWithKeysInArray:error: - (BOOL)removeObjectsWithKeysInArray:(NSArray *)theKeys error:(out NSError **)outError \endlink
|
260
|
+
* @see \link removeAllObjectsFromStoreAndReturnError: - (BOOL)removeAllObjectsFromStoreAndReturnError:(out NSError **)outError \endlink
|
261
|
+
*/
|
262
|
+
|
263
|
+
- (BOOL)removeObjectsInArray:(NSArray *)theObjects error:(out NSError **)outError;
|
264
|
+
|
265
|
+
/** * Removes all objects from the document store.
|
266
|
+
* @param outError is used if an error occurs. May be NULL.
|
267
|
+
* @return YES upon success, NO otherwise.
|
268
|
+
* @note Please note that the unoccupied space will not be reclaimed, so after clearing the cache use \link compactStoreAndReturnError: - (BOOL)compactStoreAndReturnError:(out NSError **)outError \endlink
|
269
|
+
* if you want to decrease the database file size.
|
270
|
+
* @see \link removeObject:error: - (BOOL)removeObject:(id <NSFNanoObjectProtocol>)theObject error:(out NSError **)outError \endlink
|
271
|
+
* @see \link removeObjectsWithKeysInArray:error: - (BOOL)removeObjectsWithKeysInArray:(NSArray *)theKeys error:(out NSError **)outError \endlink
|
272
|
+
* @see \link removeObjectsInArray:error: - (BOOL)removeObjectsInArray:(NSArray *)theObjects error:(out NSError **)outError \endlink
|
273
|
+
*/
|
274
|
+
|
275
|
+
- (BOOL)removeAllObjectsFromStoreAndReturnError:(out NSError **)outError;
|
276
|
+
|
277
|
+
//@}
|
278
|
+
|
279
|
+
/** @name Searching and Gathering Data
|
280
|
+
*/
|
281
|
+
|
282
|
+
//@{
|
283
|
+
|
284
|
+
/** * Returns a new array containing the bags found in the document store.
|
285
|
+
* @returns An array with the bags found in the document store.
|
286
|
+
* @see \link bagsWithKeysInArray: - (NSArray *)bagsWithKeysInArray:(NSArray *)theKeys \endlink
|
287
|
+
* @see \link bagsContainingObjectWithKey: - (NSArray *)bagsContainingObjectWithKey:(NSString *)theKey \endlink
|
288
|
+
*/
|
289
|
+
|
290
|
+
- (NSArray *)bags;
|
291
|
+
|
292
|
+
/** * Retrieves the bag associated with the specified name.
|
293
|
+
* @param theName the name of the bag.
|
294
|
+
* @returns The bag that matches the specified name, nil otherwise.
|
295
|
+
* @note Check properties savedObjects, unsavedObjects and removedObjects to find out the current state of the bag.
|
296
|
+
*/
|
297
|
+
|
298
|
+
- (NSFNanoBag *)bagWithName:(NSString *)theName;
|
299
|
+
|
300
|
+
/** * Returns a new array containing the bags found in the document store matching the specified list of keys.
|
301
|
+
* @param theKeys the list of bag keys.
|
302
|
+
* @returns An array with the bags that match the specified list of keys.
|
303
|
+
* @see \link bags - (NSArray *)bags \endlink
|
304
|
+
* @see \link bagsContainingObjectWithKey: - (NSArray *)bagsContainingObjectWithKey:(NSString *)theKey \endlink
|
305
|
+
*/
|
306
|
+
|
307
|
+
- (NSArray *)bagsWithKeysInArray:(NSArray *)theKeys;
|
308
|
+
|
309
|
+
/** * Returns a new array containing the bags found in the document store which contain the object specified by the key.
|
310
|
+
* @param theKey the key of the object.
|
311
|
+
* @returns An array with the bags that contain the object matching the specified key.
|
312
|
+
* @see \link bags - (NSArray *)bags \endlink
|
313
|
+
* @see \link bagsWithKeysInArray: - (NSArray *)bagsWithKeysInArray:(NSArray *)theKeys \endlink
|
314
|
+
*/
|
315
|
+
|
316
|
+
- (NSArray *)bagsContainingObjectWithKey:(NSString *)theKey;
|
317
|
+
|
318
|
+
/** * Returns a new array containing the objects found in the document store matching the specified list of keys.
|
319
|
+
* @param theKeys the list of \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant object keys.
|
320
|
+
* @returns An array with the objects matching the specified list of keys.
|
321
|
+
* @note The keys can belong to any object class: NSFNanoObject, NSFNanoBag or any \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant object.
|
322
|
+
*/
|
323
|
+
|
324
|
+
- (NSArray *)objectsWithKeysInArray:(NSArray *)theKeys;
|
325
|
+
|
326
|
+
/** * Returns a new array containing the objects classes in the document store.
|
327
|
+
* @returns An array of the class names found in the document store.
|
328
|
+
* @note The classes can be NSFNanoObject, NSFNanoBag or any \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant object.
|
329
|
+
*/
|
330
|
+
|
331
|
+
- (NSArray *)allObjectClasses;
|
332
|
+
|
333
|
+
/** * Returns an array containing the objects in the document store which match a specific class name.
|
334
|
+
* @param theClassName the name of the class that will be used for searching. Cannot be NULL.
|
335
|
+
* @returns An array of objects of the specified class name.
|
336
|
+
* @note The classes can be NSFNanoObject, NSFNanoBag or any \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant object.
|
337
|
+
* @throws NSFUnexpectedParameterException is thrown if the class name is nil or empty.
|
338
|
+
*/
|
339
|
+
|
340
|
+
- (NSArray *)objectsOfClassNamed:(NSString *)theClassName;
|
341
|
+
|
342
|
+
/** * Returns a sorted array containing the objects in the document store which match a specific class name.
|
343
|
+
* @param theClassName the name of the class that will be used for searching. Cannot be NULL.
|
344
|
+
* @param theSortDescriptors the array of descriptors used to sort the array. May be NULL.
|
345
|
+
* @returns An array of objects of the specified class name sorted if the sort descriptor was specified.
|
346
|
+
* @note The classes can be NSFNanoObject, NSFNanoBag or any \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant object.
|
347
|
+
* @throws NSFUnexpectedParameterException is thrown if the class name is nil or empty.
|
348
|
+
*/
|
349
|
+
|
350
|
+
- (NSArray *)objectsOfClassNamed:(NSString *)theClassName usingSortDescriptors:(NSArray *)theSortDescriptors;
|
351
|
+
|
352
|
+
/** * Returns the number of objects in the document store which match a specific class name.
|
353
|
+
* @param theClassName the name of the class that will be used for searching. Cannot be NULL.
|
354
|
+
* @returns The count of objects of the specified class name.
|
355
|
+
* @note The classes can be NSFNanoObject, NSFNanoBag or any \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant object.
|
356
|
+
* @throws NSFUnexpectedParameterException is thrown if the class name is nil or empty.
|
357
|
+
*/
|
358
|
+
|
359
|
+
- (long long)countOfObjectsOfClassNamed:(NSString *)theClassName;
|
360
|
+
|
361
|
+
//@}
|
362
|
+
|
363
|
+
/** @name Saving and Maintenance
|
364
|
+
*/
|
365
|
+
|
366
|
+
//@{
|
367
|
+
|
368
|
+
/** * Saves the uncommitted changes to the document store.
|
369
|
+
* @param outError is used if an error occurs. May be NULL.
|
370
|
+
* @return YES upon success, NO otherwise.
|
371
|
+
* @note After storing several objects and depending on the save interval, some objects could be left in the cache in an unsaved state.
|
372
|
+
* Therefore, it's always a good idea to call \link saveStoreAndReturnError: - (BOOL)saveStoreAndReturnError:(out NSError **)outError \endlink
|
373
|
+
* @see \link discardUnsavedChanges - (void)discardUnsavedChanges \endlink
|
374
|
+
*/
|
375
|
+
|
376
|
+
- (BOOL)saveStoreAndReturnError:(out NSError **)outError;
|
377
|
+
|
378
|
+
/** * Discards the uncommitted changes that were added to the document store.
|
379
|
+
* @see \link saveStoreAndReturnError: - (BOOL)saveStoreAndReturnError:(out NSError **)outError \endlink
|
380
|
+
*/
|
381
|
+
|
382
|
+
- (void)discardUnsavedChanges;
|
383
|
+
|
384
|
+
/** * Compact the database file size.
|
385
|
+
* @param outError is used if an error occurs. May be NULL.
|
386
|
+
* @return YES upon success, NO otherwise.
|
387
|
+
*/
|
388
|
+
|
389
|
+
- (BOOL)compactStoreAndReturnError:(out NSError **)outError;
|
390
|
+
|
391
|
+
/** * Remove all indexes from the document store.
|
392
|
+
* @param outError is used if an error occurs. May be NULL.
|
393
|
+
* @return YES upon success, NO otherwise.
|
394
|
+
* @note Clearing the indexes could speed up document store manipulations (insertions, updates and deletions).
|
395
|
+
* @see \link rebuildIndexesAndReturnError: - (BOOL)rebuildIndexesAndReturnError:(out NSError **)outError \endlink
|
396
|
+
*/
|
397
|
+
|
398
|
+
- (BOOL)clearIndexesAndReturnError:(out NSError **)outError;
|
399
|
+
|
400
|
+
/** * Recreate all indexes from the document store.
|
401
|
+
* @param outError is used if an error occurs. May be NULL.
|
402
|
+
* @return YES upon success, NO otherwise.
|
403
|
+
* @note Rebuilding the indexes recreates the indexes previously removed with \link clearIndexesAndReturnError: - (BOOL)clearIndexesAndReturnError:(out NSError **)outError \endlink.
|
404
|
+
* @see \link clearIndexesAndReturnError: - (BOOL)clearIndexesAndReturnError:(out NSError **)outError \endlink
|
405
|
+
*/
|
406
|
+
|
407
|
+
- (BOOL)rebuildIndexesAndReturnError:(out NSError **)outError;
|
408
|
+
|
409
|
+
/** * Makes a copy of the document store to a different location and optionally compacts it to its minimum size.
|
410
|
+
* @param thePath is the location where the document store should be copied to.
|
411
|
+
* @param shouldCompact is used to flag whether the document store should be compacted.
|
412
|
+
* @param outError is used if an error occurs. May be NULL.
|
413
|
+
* @return YES upon success, NO otherwise.
|
414
|
+
* @note Works with both, file-based and memory-backed document stores.
|
415
|
+
* @see \link clearIndexesAndReturnError: - (BOOL)clearIndexesAndReturnError:(out NSError **)outError \endlink
|
416
|
+
*/
|
417
|
+
|
418
|
+
- (BOOL)saveStoreToDirectoryAtPath:(NSString *)thePath compactDatabase:(BOOL)shouldCompact error:(out NSError **)outError;
|
419
|
+
|
420
|
+
//@}
|
421
|
+
|
422
|
+
/** @name Transactions
|
423
|
+
*/
|
424
|
+
|
425
|
+
//@{
|
426
|
+
|
427
|
+
/** * Start a transaction.
|
428
|
+
* @param outError is used if an error occurs. May be NULL.
|
429
|
+
* @return YES upon success, NO otherwise.
|
430
|
+
* @attention Use this method instead of the ones provided by NSFNanoEngine.
|
431
|
+
* @see \link clearIndexesAndReturnError: - (BOOL)clearIndexesAndReturnError:(out NSError **)outError \endlink
|
432
|
+
* @see \link commitTransactionAndReturnError: - (BOOL)commitTransactionAndReturnError:(out NSError **)outError \endlink
|
433
|
+
* @see \link rollbackTransactionAndReturnError: - (BOOL)rollbackTransactionAndReturnError:(out NSError **)outError \endlink
|
434
|
+
*/
|
435
|
+
|
436
|
+
- (BOOL)beginTransactionAndReturnError:(out NSError **)outError;
|
437
|
+
|
438
|
+
/** * Commit a transaction.
|
439
|
+
* @param outError is used if an error occurs. May be NULL.
|
440
|
+
* @return YES upon success, NO otherwise.
|
441
|
+
* @attention Use this method instead of the ones provided by NSFNanoEngine.
|
442
|
+
* @see \link rebuildIndexesAndReturnError: - (BOOL)rebuildIndexesAndReturnError:(out NSError **)outError \endlink
|
443
|
+
* @see \link beginTransactionAndReturnError: - (BOOL)beginTransactionAndReturnError:(out NSError **)outError \endlink
|
444
|
+
* @see \link rollbackTransactionAndReturnError: - (BOOL)rollbackTransactionAndReturnError:(out NSError **)outError \endlink
|
445
|
+
*/
|
446
|
+
|
447
|
+
- (BOOL)commitTransactionAndReturnError:(out NSError **)outError;
|
448
|
+
|
449
|
+
/** * Rollback a transaction.
|
450
|
+
* @param outError is used if an error occurs. May be NULL.
|
451
|
+
* @return YES upon success, NO otherwise.
|
452
|
+
* @attention Use this method instead of the ones provided by NSFNanoEngine.
|
453
|
+
* @see \link rebuildIndexesAndReturnError: - (BOOL)rebuildIndexesAndReturnError:(out NSError **)outError \endlink
|
454
|
+
* @see \link beginTransactionAndReturnError: - (BOOL)beginTransactionAndReturnError:(out NSError **)outError \endlink
|
455
|
+
* @see \link commitTransactionAndReturnError: - (BOOL)commitTransactionAndReturnError:(out NSError **)outError \endlink
|
456
|
+
*/
|
457
|
+
|
458
|
+
- (BOOL)rollbackTransactionAndReturnError:(out NSError **)outError;
|
459
|
+
|
460
|
+
//@}
|
461
|
+
|
462
|
+
/** @name Miscellaneous
|
463
|
+
*/
|
464
|
+
|
465
|
+
//@{
|
466
|
+
|
467
|
+
/** * Returns a string representation of the store.
|
468
|
+
* @note Check properties nanoEngineProcessingMode and saveInterval to find out the current state of the object.
|
469
|
+
*/
|
470
|
+
|
471
|
+
- (NSString *)description;
|
472
|
+
|
473
|
+
//@}
|
474
|
+
|
475
|
+
@end
|