Revision: 72806 http://trac.macports.org/changeset/72806 Author: juanger@macports.org Date: 2010-10-27 12:53:38 -0700 (Wed, 27 Oct 2010) Log Message: ----------- New method for faster listing of available ports. Modified Paths: -------------- contrib/MacPorts_Framework/MPMacPorts.h contrib/MacPorts_Framework/MPMacPorts.m Modified: contrib/MacPorts_Framework/MPMacPorts.h =================================================================== --- contrib/MacPorts_Framework/MPMacPorts.h 2010-10-27 19:53:33 UTC (rev 72805) +++ contrib/MacPorts_Framework/MPMacPorts.h 2010-10-27 19:53:38 UTC (rev 72806) @@ -99,8 +99,12 @@ */ - (void)selfUpdate:(NSError **)sError; +/*! + @brief Returns an NSDictionary of all the ports in the indices. + @discussion Faster than search:MPPortsAll. Uses mpportlistall + */ +- (NSDictionary *)listAll; - /*! @brief Returns an NSDictionary of ports. Calls [self search:query caseSensiitve:YES]. @param query An NSString containing name or partial name of port being searched. Modified: contrib/MacPorts_Framework/MPMacPorts.m =================================================================== --- contrib/MacPorts_Framework/MPMacPorts.m 2010-10-27 19:53:33 UTC (rev 72805) +++ contrib/MacPorts_Framework/MPMacPorts.m 2010-10-27 19:53:38 UTC (rev 72806) @@ -164,6 +164,27 @@ [[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"MacPorts_selfupdate_Finished" object:nil]; } +- (NSDictionary *)listAll{ + + NSMutableDictionary *result, *newResult; + NSEnumerator *enumerator; + id key; + NSError * sError; + + result = [NSMutableDictionary dictionaryWithDictionary: + [interpreter dictionaryFromTclListAsString: + [interpreter evaluateStringAsString:@"return [mportlistall]" + error:&sError]]]; + + newResult = [NSMutableDictionary dictionaryWithCapacity:[result count]]; + enumerator = [result keyEnumerator]; + while (key = [enumerator nextObject]) { + [newResult setObject:[[MPPort alloc] initWithTclListAsString:[result objectForKey:key]] forKey:key]; + } + + + return [NSDictionary dictionaryWithDictionary:newResult]; +} - (NSDictionary *)search:(NSString *)query { return [self search:query caseSensitive:YES];
participants (1)
-
juanger@macports.org