[29053] users/rhwood/MacPorts.Framework

source_changes at macosforge.org source_changes at macosforge.org
Fri Sep 14 02:54:47 PDT 2007


Revision: 29053
          http://trac.macosforge.org/projects/macports/changeset/29053
Author:   rhwood at macports.org
Date:     2007-09-14 02:54:46 -0700 (Fri, 14 Sep 2007)

Log Message:
-----------
Cache the results of methods if they can reasonably be treated as static over the life of the process.
Add method [sources:(BOOL)refresh to allow call to sources that forces the method to refresh the cache.

Modified Paths:
--------------
    users/rhwood/MacPorts.Framework/MPMacPorts.h
    users/rhwood/MacPorts.Framework/MPMacPorts.m

Modified: users/rhwood/MacPorts.Framework/MPMacPorts.h
===================================================================
--- users/rhwood/MacPorts.Framework/MPMacPorts.h	2007-09-14 07:34:54 UTC (rev 29052)
+++ users/rhwood/MacPorts.Framework/MPMacPorts.h	2007-09-14 09:54:46 UTC (rev 29053)
@@ -14,11 +14,16 @@
 
 	MPInterpreter *interpreter;
 
+	NSString *prefix;
+	NSArray *sources;
+	NSString *version;
+	
 }
 
 - (NSArray *)search:(NSString *)query;
 
 - (NSString *)prefix;
+- (NSArray *)sources:(BOOL)refresh;
 - (NSArray *)sources;
 - (NSString *)pathToPortIndex:(NSString *)source;
 - (NSString *)version;

Modified: users/rhwood/MacPorts.Framework/MPMacPorts.m
===================================================================
--- users/rhwood/MacPorts.Framework/MPMacPorts.m	2007-09-14 07:34:54 UTC (rev 29052)
+++ users/rhwood/MacPorts.Framework/MPMacPorts.m	2007-09-14 09:54:46 UTC (rev 29053)
@@ -35,11 +35,24 @@
 #pragma settings
 
 - (NSString *)prefix {
-	return [interpreter getVariableAsString:@"macports::prefix_frozen"];
+	if (prefix == Nil) {
+		prefix = [interpreter getVariableAsString:@"macports::prefix_frozen"];
+	}
+	return prefix;
 }
 
+- (NSArray *)sources:(BOOL)refresh {
+	if (refresh) {
+		[sources release];
+	}
+	return [self sources];
+}
+
 - (NSArray *)sources {
-	return [interpreter getVariableAsArray:@"macports::sources"];
+	if (sources == Nil) {
+		sources = [interpreter getVariableAsArray:@"macports::sources"];
+	}
+	return sources;
 }
 
 - (NSString *)pathToPortIndex:(NSString *)source {
@@ -51,7 +64,10 @@
 }
 
 - (NSString *)version {
-	return [interpreter evaluateStringAsString:@"return [macports::version]"];
+	if (version == Nil) {
+		version = [interpreter evaluateStringAsString:@"return [macports::version]"];
+	}
+	return version;
 }
 
 @end

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20070914/8fa7e01b/attachment.html


More information about the macports-changes mailing list