You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by pe...@apache.org on 2013/07/26 14:38:21 UTC
svn commit: r1507292 - in /chemistry/objectivecmis/trunk/ObjectiveCMIS:
Client/CMISSession.m Utils/CMISObjectConverter.m
Author: peberlein
Date: Fri Jul 26 12:38:21 2013
New Revision: 1507292
URL: http://svn.apache.org/r1507292
Log:
added type cache
Modified:
chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m
chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISObjectConverter.m
Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m?rev=1507292&r1=1507291&r2=1507292&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m Fri Jul 26 12:38:21 2013
@@ -38,6 +38,7 @@
@property (nonatomic, assign, readwrite, getter = isAuthenticated) BOOL authenticated;
@property (nonatomic, strong, readwrite) id<CMISBinding> binding;
@property (nonatomic, strong, readwrite) CMISRepositoryInfo *repositoryInfo;
+@property (nonatomic, strong, readwrite) NSMutableDictionary *typeCache;
// Returns a CMISSession using the given session parameters.
- (id)initWithSessionParameters:(CMISSessionParameters *)sessionParameters;
@@ -115,6 +116,8 @@
} else { //default
self.objectConverter = [[CMISObjectConverter alloc] initWithSession:self];
}
+
+ self.typeCache = [[NSMutableDictionary alloc] init];
// TODO: setup locale
// TODO: setup default session parameters
@@ -252,7 +255,18 @@
- (CMISRequest*)retrieveTypeDefinition:(NSString *)typeId completionBlock:(void (^)(CMISTypeDefinition *typeDefinition, NSError *error))completionBlock
{
- return [self.binding.repositoryService retrieveTypeDefinition:typeId completionBlock:completionBlock];
+ CMISTypeDefinition *typeDefinition = [self.typeCache objectForKey:typeId];
+ if (typeDefinition) {
+ completionBlock(typeDefinition, nil);
+ return nil;
+ }
+
+ return [self.binding.repositoryService retrieveTypeDefinition:typeId completionBlock:^(CMISTypeDefinition *typeDefinition, NSError *error) {
+ if (typeDefinition) {
+ [self.typeCache setObject:typeDefinition forKey:typeId];
+ }
+ completionBlock(typeDefinition, error);
+ }];
}
- (CMISRequest*)query:(NSString *)statement searchAllVersions:(BOOL)searchAllVersion completionBlock:(void (^)(CMISPagedResult *pagedResult, NSError *error))completionBlock
Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISObjectConverter.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISObjectConverter.m?rev=1507292&r1=1507291&r2=1507292&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISObjectConverter.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISObjectConverter.m Fri Jul 26 12:38:21 2013
@@ -328,17 +328,16 @@
completionBlock:completionBlock];
} else {
- [self.session.binding.repositoryService
- retrieveTypeDefinition:objectTypeId
- completionBlock:^(CMISTypeDefinition *typeDefinition, NSError *error) {
- if (error) {
- completionBlock(nil, [CMISErrors cmisError:error cmisErrorCode:kCMISErrorCodeRuntime]);
- } else {
- [self internalNormalConvertProperties:properties
- typeDefinition:typeDefinition
- completionBlock:completionBlock];
- }
- }];
+ [self.session retrieveTypeDefinition:objectTypeId
+ completionBlock:^(CMISTypeDefinition *typeDefinition, NSError *error) {
+ if (error) {
+ completionBlock(nil, [CMISErrors cmisError:error cmisErrorCode:kCMISErrorCodeRuntime]);
+ } else {
+ [self internalNormalConvertProperties:properties
+ typeDefinition:typeDefinition
+ completionBlock:completionBlock];
+ }
+ }];
}
}