[38997] branches/gsoc08-framework/MacPorts_Framework

armahg at macports.org armahg at macports.org
Tue Aug 5 07:03:08 PDT 2008


Revision: 38997
          http://trac.macosforge.org/projects/macports/changeset/38997
Author:   armahg at macports.org
Date:     2008-08-05 07:03:08 -0700 (Tue, 05 Aug 2008)
Log Message:
-----------
Rewrote Notifications_Send function for MPInterpreter class. Added some dubgging code to init.tcl file

Modified Paths:
--------------
    branches/gsoc08-framework/MacPorts_Framework/MPHelperTool.m
    branches/gsoc08-framework/MacPorts_Framework/MPInterpreter.h
    branches/gsoc08-framework/MacPorts_Framework/MPInterpreter.m
    branches/gsoc08-framework/MacPorts_Framework/MPInterpreterTest.h
    branches/gsoc08-framework/MacPorts_Framework/MPInterpreterTest.m
    branches/gsoc08-framework/MacPorts_Framework/MPMacPorts.h
    branches/gsoc08-framework/MacPorts_Framework/MPMacPorts.m
    branches/gsoc08-framework/MacPorts_Framework/MPMacPortsTest.h
    branches/gsoc08-framework/MacPorts_Framework/MPMacPortsTest.m
    branches/gsoc08-framework/MacPorts_Framework/MPMutableDictionary.h
    branches/gsoc08-framework/MacPorts_Framework/MPMutableDictionary.m
    branches/gsoc08-framework/MacPorts_Framework/MPNotifications.h
    branches/gsoc08-framework/MacPorts_Framework/MacPorts.Framework.xcodeproj/project.pbxproj
    branches/gsoc08-framework/MacPorts_Framework/MacPorts.h
    branches/gsoc08-framework/MacPorts_Framework/init.tcl

Modified: branches/gsoc08-framework/MacPorts_Framework/MPHelperTool.m
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPHelperTool.m	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPHelperTool.m	2008-08-05 14:03:08 UTC (rev 38997)
@@ -1,134 +1,47 @@
 /*
- *  MPHelperTool.c
- *  MacPorts.Framework
+ *	$Id$
+ *	MacPorts.Framework
  *
- *  Created by George  Armah on 8/2/08.
- *  Copyright 2008 Lafayette College. All rights reserved.
+ *	Authors:
+ *	George Armah <armahg at macports.org>
  *
+ *	Copyright (c) 2008 George Armah <armahg at macports.org>
+ *	All rights reserved.
+ *
+ *	Redistribution and use in source and binary forms, with or without
+ *	modification, are permitted provided that the following conditions
+ *	are met:
+ *	1.	Redistributions of source code must retain the above copyright
+ *		notice, this list of conditions and the following disclaimer.
+ *	2.	Redistributions in binary form must reproduce the above copyright
+ *		notice, this list of conditions and the following disclaimer in the
+ *		documentation and/or other materials provided with the distribution.
+ *	3.	Neither the name of the copyright owner nor the names of contributors
+ *		may be used to endorse or promote products derived from this software
+ *		without specific prior written permission.
+ * 
+ *	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ *	AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ *	IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ *	ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ *	LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ *	CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ *	SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ *	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *	CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ *	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ *	POSSIBILITY OF SUCH DAMAGE.
  */
 
-//#include <netinet/in.h>
-#include <stdio.h>
-//#include <sys/socket.h>
-#include <unistd.h>
+#import <Foundation/Foundation.h>
 
-#import	<Foundation/Foundation.h>
-#include <CoreServices/CoreServices.h>
-#include "BetterAuthorizationSampleLib.h"
-#include "MPHelperCommon.h"
-#import "MPInterpreterProtocol.h"
 
-static OSStatus DoEvaluateTclString (
-		AuthorizationRef			auth,
-		const void *				userData,
-		CFDictionaryRef				request,
-		CFMutableDictionaryRef		response,
-		aslclient					asl,
-		aslmsg						aslMsg
-)
-{
-	
-	OSStatus		retval = noErr;
-	 
-	
-	//Pre conditions
-	assert(auth != NULL);
-	//userData may be NULL
-	assert(request != NULL);
-	assert(response != NULL);
-	//asl may be null
-	//aslMsg may be null
-	
-	//Get the string that was passed in the request dictionary
-	CFStringRef  cTclCmd = (CFStringRef)CFDictionaryGetValue(request, CFSTR(kTclStringToBeEvaluated));
-	//cTclCmd = CFRetain(cTclCmd);
-	if (cTclCmd == NULL) {
-		retval = coreFoundationUnknownErr;
-	}
-	
-	//Testing Distributed Objects Implementation
-	NSString * tclCmd = (NSString *) cTclCmd;
-	id distributedMPInterpreterObject = nil;
-	NSConnection * mpConn = [NSConnection connectionWithRegisteredName:MP_DOSERVER 
-																  host:nil];
-	distributedMPInterpreterObject = [mpConn rootProxy];
-	
-	
-	//CFDictionaryAddValue(response, CFSTR("NSConnection stats"), [[NSConnection defaultConnection] statistics]);
-	if ( distributedMPInterpreterObject == nil ) {
-		CFDictionaryAddValue(response, CFSTR(kMPInterpreterDistObj), CFSTR("NO"));
-		retval = coreFoundationUnknownErr;
-	}
-	else { //We successfully obtained the distObj
-		NSLog(@"IN HERE");
-		CFDictionaryAddValue(response, CFSTR(kMPInterpreterDistObj), CFSTR("YES"));
-		[distributedMPInterpreterObject setProtocolForProxy:@protocol(MPInterpreterProtocol)];
-		NSString * result = [distributedMPInterpreterObject
-							 evaluateStringFromMPHelperTool:tclCmd];
-		
-		if (result != nil) { //successful execution
-			CFDictionaryAddValue(response, CFSTR(kTclStringEvaluationResult), CFSTR("Port operation Failed not"));
-			retval = noErr;
-		}
-		else {
-			CFDictionaryAddValue(response, CFSTR(kTclStringEvaluationResult), CFSTR("Port operation Failed"));
-			retval = coreFoundationUnknownErr;
-		}
-	}
-	
-	unsigned int numcon = [[NSConnection allConnections] count];
-	CFDictionaryAddValue(response, CFSTR("NSConnections"), CFStringCreateWithFormat(kCFAllocatorDefault , NULL, CFSTR("%u"),numcon) );
-	
-	CFDictionaryAddValue(response, CFSTR("NSConnection Stats"), [[NSConnection defaultConnection] statistics]);
-	/*
-	if( retval == noErr) {
-		
-		CFDictionaryAddValue(response, CFSTR(kTclStringEvaluationResult), cTclCmd); 
-	}
-	else{
-		//Try setting the user data pointer to the error
-		CFDictionaryAddValue(response, CFSTR(kTclStringEvaluationResult), CFSTR("BAAD")); 
-	}*/
-	
-	assert(response != NULL);
-	//I think I should release cTclCmd
-	//CFRelease(cTclCmd);
-	//CFDictionaryAddValue(response, CFSTR(kTclStringEvaluationResult), CFSTR("Port operation Failed not"));
-	
-	return retval;
-}
 
-/////////////////////////////////////////////////////////////////
-#pragma mark ***** Tool Infrastructure
-
-/*
- IMPORTANT
- ---------
- This array must be exactly parallel to the kMPHelperCommandSet array 
- in "MPHelperCommon.c".
- */
-
-static const BASCommandProc kMPHelperCommandProcs[] = {
-	DoEvaluateTclString,	
-	NULL
-};
-
-
-//Should I just do stuff in main and use the above method to 
-//just retrieve the string to be evaluated as a tcl command?
-
 int main(int argc, char const * argv[]) {
 	NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-	[[NSRunLoop currentRunLoop] run];
-	// Go directly into BetterAuthorizationSampleLib code.
-	
-    // IMPORTANT
-    // BASHelperToolMain doesn't clean up after itself, so once it returns 
-    // we must quit.
-    int result = BASHelperToolMain(kMPHelperCommandSet, kMPHelperCommandProcs);
 
+	
 	[pool release];
 	
-	return result;
-}
-
+	return 0;
+}
\ No newline at end of file

Modified: branches/gsoc08-framework/MacPorts_Framework/MPInterpreter.h
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPInterpreter.h	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPInterpreter.h	2008-08-05 14:03:08 UTC (rev 38997)
@@ -70,6 +70,7 @@
 
 	Tcl_Interp* _interpreter;
 	NSString * helperToolInterpCommand;
+	NSString * helperToolCommandResult;
 	
 }
 
@@ -176,6 +177,7 @@
 - (NSString *)getVariableAsString:(NSString *)variable;
 
 
-//For testing helper tool
+//For testing helper tools
 -(NSString *)evaluateStringWithMPHelperTool:(NSString *)statement;
+-(NSString *)evaluateStringWithSimpleMPDOPHelperTool:(NSString *)statement;
 @end

Modified: branches/gsoc08-framework/MacPorts_Framework/MPInterpreter.m
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPInterpreter.m	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPInterpreter.m	2008-08-05 14:03:08 UTC (rev 38997)
@@ -49,18 +49,23 @@
 
 #pragma mark Notifications Code 
 int Notifications_Send(int objc, Tcl_Obj *CONST objv[], int global, Tcl_Interp *interpreter) {
-
 	NSString *name;
 	NSMutableString *msg;
-	NSMutableDictionary *info = nil;
+	
+	//Our info dictionary is of size 4 and contains the following keys
+	//Channel - eg. stdout, stderr
+	//Prefix - prefix string for this message e.g. DEBUG:
+	//Function - the function whose operation led to this notification eg. sync, selfupdate
+	//Message - the message logged to channel
+	NSMutableDictionary *info = [NSMutableDictionary dictionaryWithCapacity:4];
 	MPNotifications *mln = [MPNotifications sharedListener];
 	
 	int tclCount;
 	int tclResult;
-	int i;
 	const char **tclElements;
 	
 	name = [NSString stringWithUTF8String:Tcl_GetString(*objv)];
+	NSLog(@"name is %@", name);
 	
 	//Name and Notification constants should match. Convention
 	//used is MPPriorityNotification. Is it ok to just return TCL_OK ?
@@ -68,20 +73,32 @@
 		return TCL_OK;
 	}
 	
-	
 	++objv; --objc;
+	tclResult = Tcl_SplitList(interpreter, Tcl_GetString(*objv), &tclCount, &tclElements);
+	//NSLog(@"tclElements is %S and tclCount is %i", &tclElements, tclCount);
 	
-	tclResult = Tcl_SplitList(interpreter, Tcl_GetString(*objv), &tclCount, &tclElements);
 	if (tclResult == TCL_OK) {
-		info = [NSMutableDictionary dictionaryWithCapacity:(tclCount / 2)];
-		for (i = 0; i < tclCount; i +=2) {
-			[info setObject:[NSString stringWithUTF8String:tclElements[i + 1]] forKey:[NSString stringWithUTF8String:tclElements[i]]];
+		
+	//I have sacrificed generality for simplicity in the code below
+		if (tclElements > 0) { 
+			[info setObject:[NSString stringWithUTF8String:tclElements[0]] forKey:@"Channel"];
+			
+			if(tclElements[1])
+				[info setObject:[NSString stringWithUTF8String:tclElements[1]] forKey:@"Prefix"];
+			else
+				[info setObject:@"None" forKey:@"Prefix"];
 		}
+		else {
+			[info setObject:@"None" forKey:@"Channel"];
+			[info setObject:@"None" forKey:@"Prefix"];
+		}
 		
-		//Get ui_* message separately 
+		
+		//Get ui_* message separately Hopefully this should never be null 
 		++objv; --objc;
 		if(objv != NULL) {
 			msg = [NSMutableString stringWithUTF8String:Tcl_GetString(*objv)];
+			//NSLog(@"Message is %@", msg);
 			
 			//strip off "--->" over here
 			NSArray * temp = [msg componentsSeparatedByString:@"--->"];
@@ -96,7 +113,7 @@
 			//if code is working right, this value should always be YES
 			//when we are in this part of the code
 			if([cmd count] > 0) {
-				NSLog(@"Class type is %@", NSStringFromClass([[cmd objectAtIndex:0] class]));
+				//NSLog(@"Class type is %@", NSStringFromClass([[cmd objectAtIndex:0] class]));
 				
 				if( [[cmd objectAtIndex:0] isEqualToString:@"YES"]) {
 					[info setObject:[cmd objectAtIndex:1] forKey:@"Function"];
@@ -179,8 +196,8 @@
 	
 	AuthorizationFlags envFlags;
 	envFlags = kAuthorizationFlagDefaults |
-				kAuthorizationFlagExtendRights |
-				kAuthorizationFlagPreAuthorize;
+	kAuthorizationFlagExtendRights |
+	kAuthorizationFlagPreAuthorize;
 	
 	
 	junk = AuthorizationCreate(NULL, &env, envFlags, &mpAuth);
@@ -211,14 +228,14 @@
 	
 	[defaultConn setRootObject:self];
 	
-	NSLog(@"Connection Created ... %@, %@", defaultConn, [defaultConn statistics]);
+	NSLog(@"Connection Created ... "); //%@, %@", defaultConn, [defaultConn statistics]);
 	return [defaultConn registerName:MP_DOSERVER];
 	
 }
 
 - (bycopy NSString *) evaluateStringFromMPHelperTool:(in bycopy NSString *)statement {
-//- (NSString *) evaluateStringFromMPHelperTool:(NSString *)statement {	
-											//TO DO ->  error:(inout NSError **)evalError {
+	//- (NSString *) evaluateStringFromMPHelperTool:(NSString *)statement {	
+	//TO DO ->  error:(inout NSError **)evalError {
 	//NSError * evalError;
 	NSString * result = [self evaluateStringAsString:statement error:nil];
 	
@@ -229,6 +246,32 @@
 	return result;
 }
 
+
+- (void) setTclCommand:(in bycopy NSString *)tclCmd {
+	if (![helperToolInterpCommand isEqualToString:tclCmd]) {
+		
+		[helperToolInterpCommand release];
+		helperToolInterpCommand = [tclCmd copy];
+	}
+	
+}
+- (bycopy NSString *)getTclCommand {
+	return helperToolInterpCommand;
+}
+
+- (void) setTclCommandResult:(in bycopy NSString *)tclCmdResult {
+	if (![helperToolCommandResult isEqualToString:tclCmdResult]) {
+		[helperToolCommandResult release];
+		helperToolCommandResult = [tclCmdResult copy];
+	}
+}
+- (bycopy NSString *) getTclCommandResult {
+	return helperToolCommandResult;
+}
+
+- (void) log :(in bycopy id) logOutput {
+	NSLog(@"MPInterpreterProtocol Logging : %@", logOutput);
+}
 #pragma mark -
 
 #pragma mark MPInterpreter Code
@@ -265,9 +308,9 @@
 		}
 		
 		/*if( Tcl_EvalFile(_interpreter, [[[NSBundle bundleWithIdentifier:@"org.macports.frameworks.macports"] pathForResource:@"init" ofType:@"tcl"] UTF8String]) != TCL_OK) {
-			NSLog(@"Error in Tcl_EvalFile init.tcl: %s", Tcl_GetStringResult(_interpreter));
-			Tcl_DeleteInterp(_interpreter);
-		}*/
+		 NSLog(@"Error in Tcl_EvalFile init.tcl: %s", Tcl_GetStringResult(_interpreter));
+		 Tcl_DeleteInterp(_interpreter);
+		 }*/
 		
 		if( Tcl_EvalFile(_interpreter, [[[NSBundle bundleWithIdentifier:@"org.macports.frameworks.macports"] 
 										 pathForResource:@"init" 
@@ -278,6 +321,7 @@
 		
 		//Initialize helperToolInterpCommand
 		helperToolInterpCommand = @"";
+		helperToolCommandResult = @"";
 		
 		//Initialize the Run Loop because we don't know if framework will be
 		//run in a Foundation Kit or App Kit. Hopefully this won't hurt if the
@@ -293,8 +337,8 @@
 		}
 		else
 			NSLog(@"MPInterpreter Initialized ...");
-			
 		
+		
 	}
 	return self;
 }
@@ -366,17 +410,17 @@
 }
 
 /*- (NSDictionary *)evaluateArrayAsString:(NSArray *)statement {
-	return [self evaluateStringAsString:[statement componentsJoinedByString:@" "]];
-}
-
-*/
+ return [self evaluateStringAsString:[statement componentsJoinedByString:@" "]];
+ }
+ 
+ */
 - (NSString *)evaluateStringAsString:(NSString *)statement error:(NSError**)mportError{
-	NSLog(@"Calling evaluateStringAsString with argument %@", statement);
+	//NSLog(@"Calling evaluateStringAsString with argument %@", statement);
 	
 	int return_code = Tcl_Eval(_interpreter, [statement UTF8String]);
 	
 	//Should I check for (return_code != TCL_Ok && return_code != TCL_RETURN) instead ?
-	if (return_code == TCL_ERROR) {
+	if (return_code != TCL_OK) {
 		
 		Tcl_Obj * interpObj = Tcl_GetObjResult(_interpreter);
 		int length, errCode;
@@ -413,13 +457,13 @@
 
 
 /*
-- (NSDictionary *)evaluateStringAsString:(NSString *)statement {
-	int return_code = Tcl_Eval(_interpreter, [statement UTF8String]);
-	return [NSDictionary dictionaryWithObjectsAndKeys:
-			[NSNumber numberWithInt:return_code], TCL_RETURN_CODE, 
-			[NSString stringWithUTF8String:Tcl_GetStringResult(_interpreter)], TCL_RETURN_STRING, nil];
-}
-*/
+ - (NSDictionary *)evaluateStringAsString:(NSString *)statement {
+ int return_code = Tcl_Eval(_interpreter, [statement UTF8String]);
+ return [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithInt:return_code], TCL_RETURN_CODE, 
+ [NSString stringWithUTF8String:Tcl_GetStringResult(_interpreter)], TCL_RETURN_STRING, nil];
+ }
+ */
 
 - (NSArray *)arrayFromTclListAsString:(NSString *)list {
 	NSMutableArray *array;
@@ -464,6 +508,8 @@
 	return [NSString stringWithUTF8String:Tcl_GetVar(_interpreter, [variable UTF8String], 0)];
 }
 
+#pragma mark -
+#pragma mark Helper Tool(s) Code
 - (NSString *) evaluateStringWithMPHelperTool:(NSString *) statement {
 	OSStatus        err;
     BASFailCode     failCode;
@@ -479,7 +525,7 @@
 	assert(request != NULL);
 	
 	bundleID = [[NSBundle bundleForClass:[self class]] bundleIdentifier];
-
+	
 	assert(bundleID != NULL);
 	
 	
@@ -526,30 +572,48 @@
 	
 	
 	/*
-	NSString * fakeResult = @"Frustrated";
-	return fakeResult;
+	 NSString * fakeResult = @"Frustrated";
+	 return fakeResult;
+	 
+	 //Read from file and see if it was written to
+	 NSString * testFilePath = [[NSBundle bundleForClass:[self class]]
+	 pathForResource:@"TestFile" ofType:@"test"];
+	 NSError * readError = nil;
+	 NSString * result = [NSString stringWithContentsOfFile:testFilePath 
+	 encoding:NSUTF8StringEncoding
+	 error:&readError];
+	 if (readError) {
+	 NSLog(@"Error is %@", [readError description]);
+	 return @"There was an error Reading";
+	 }
+	 else if ([result isEqualToString:@""]) {
+	 return @"An empty string was read";
+	 }
+	 else if (result == nil) {
+	 return @"Resulting String is NIL";
+	 }
+	 else
+	 return result;
+	 
+	 return @"This shouldn't happen";
+	 */
+}
 
-	//Read from file and see if it was written to
-	NSString * testFilePath = [[NSBundle bundleForClass:[self class]]
-							   pathForResource:@"TestFile" ofType:@"test"];
-	NSError * readError = nil;
-	NSString * result = [NSString stringWithContentsOfFile:testFilePath 
-												  encoding:NSUTF8StringEncoding
-													 error:&readError];
-	if (readError) {
-		NSLog(@"Error is %@", [readError description]);
-		return @"There was an error Reading";
-	}
-	else if ([result isEqualToString:@""]) {
-		return @"An empty string was read";
-	}
-	else if (result == nil) {
-		return @"Resulting String is NIL";
-	}
-	else
-		return result;
+
+-(NSString *) evaluateStringWithSimpleMPDOPHelperTool:(NSString *)statement  {
+	NSTask * task = [[NSTask alloc] init];
+	[task setLaunchPath:[[NSBundle bundleForClass:[MPInterpreter class]] 
+						 pathForResource:@"SimpleDOMPHelperTool" 
+						 ofType:nil]];
+	[task setArguments:[NSArray arrayWithObjects:statement, nil]];
+	[task launch];
 	
-	return @"This shouldn't happen";
-	*/
+	[task waitUntilExit];
+	
+	[task terminationStatus];
+	
+	return [self getTclCommandResult];
 }
+
+
 @end

Modified: branches/gsoc08-framework/MacPorts_Framework/MPInterpreterTest.h
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPInterpreterTest.h	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPInterpreterTest.h	2008-08-05 14:03:08 UTC (rev 38997)
@@ -43,7 +43,7 @@
 
 - (void)testInitialization;
 - (void)testGetVariableAsArray;
-- (void)testMPHelperTool;
+//- (void)testMPHelperTool;
 //- (void)testMutableDictionaryFromTclListAsString;
 //- (void)testEvaluateStringAsString;
 

Modified: branches/gsoc08-framework/MacPorts_Framework/MPInterpreterTest.m
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPInterpreterTest.m	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPInterpreterTest.m	2008-08-05 14:03:08 UTC (rev 38997)
@@ -59,7 +59,7 @@
 }
  
 
-
+/*
 - (void)testMPHelperTool {
 	
 	//Here goes nothing

Modified: branches/gsoc08-framework/MacPorts_Framework/MPMacPorts.h
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPMacPorts.h	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPMacPorts.h	2008-08-05 14:03:08 UTC (rev 38997)
@@ -173,7 +173,7 @@
 - (NSString *)version;
 
 
-//Notifications stuff
+//Notifications stuff for private use and testing purposes
 -(void)registerForLocalNotifications;
 -(void)respondToLocalNotification:(NSNotification *) notification;
 

Modified: branches/gsoc08-framework/MacPorts_Framework/MPMacPorts.m
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPMacPorts.m	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPMacPorts.m	2008-08-05 14:03:08 UTC (rev 38997)
@@ -113,8 +113,11 @@
 	//result = [interpreter evaluateStringAsString:@"mportsync" error:sError];
 	
 	//Testing DO implementation
-	result = [interpreter evaluateStringWithMPHelperTool:@"mportsync"];
+	//result = [interpreter evaluateStringWithMPHelperTool:@"mportsync"];
+	[interpreter evaluateStringWithSimpleMPDOPHelperTool:@"mportsync"];
 	
+	result = [interpreter getTclCommandResult];
+	
 	[[MPNotifications sharedListener] setPerformingTclCommand:@""];
 	[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"MacPortsSyncFinished" object:nil];
 
@@ -247,10 +250,10 @@
 
 #pragma mark Testing MacPorts Notifications
 -(void) registerForLocalNotifications {
-	[[NSNotificationCenter defaultCenter] addObserver:self
-											 selector:@selector(respondToLocalNotification:) 
-												 name:MPINFO
-											   object:nil];
+	//[[NSNotificationCenter defaultCenter] addObserver:self
+//											 selector:@selector(respondToLocalNotification:) 
+//												 name:MPINFO
+//											   object:nil];
 	
 	[[NSNotificationCenter defaultCenter] addObserver:self
 											 selector:@selector(respondToLocalNotification:) 
@@ -269,6 +272,16 @@
 	
 	[[NSNotificationCenter defaultCenter] addObserver:self
 											 selector:@selector(respondToLocalNotification:) 
+												 name:MPDEBUG
+											   object:nil];
+	
+	[[NSNotificationCenter defaultCenter] addObserver:self
+											 selector:@selector(respondToLocalNotification:) 
+												 name:MPDEFAULT
+											   object:nil];
+	
+	[[NSNotificationCenter defaultCenter] addObserver:self
+											 selector:@selector(respondToLocalNotification:) 
 												 name:@"testMacPortsNotification"
 											   object:nil];
 }
@@ -278,9 +291,9 @@
 	
 	//Just NSLog it for now
 	if(sentDict == nil)
-		NSLog(@"Looooocaaaaal");
+		NSLog(@"MPMacPorts received notification with empty userInfo Dictionary");
 	else
-		NSLog(@"%@" , [sentDict description]);
+		NSLog(@"MPMacPorts received notification with userInfo %@" , [sentDict description]);
 }
 
 @end

Modified: branches/gsoc08-framework/MacPorts_Framework/MPMacPortsTest.h
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPMacPortsTest.h	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPMacPortsTest.h	2008-08-05 14:03:08 UTC (rev 38997)
@@ -49,7 +49,7 @@
 -(void) testPathToPortIndex;
 //-(void) testDepends;
 //-(void) testSearch;
-//-(void) testSync;
+-(void) testSync;
 -(void) testVersion;
 //-(void) testInstall;
 //-(void) testMPHelperTool;

Modified: branches/gsoc08-framework/MacPorts_Framework/MPMacPortsTest.m
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPMacPortsTest.m	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPMacPortsTest.m	2008-08-05 14:03:08 UTC (rev 38997)
@@ -74,7 +74,7 @@
 	STAssertNotNil(searchResults, @"This dictionary should have at least %d key value pairs", [searchResults count]);
 }
 
-/*
+
 -(void) testSync {
 	NSError * syncError = nil;
 	[testPort sync:&syncError];
@@ -89,7 +89,7 @@
 	
 }
 
-
+/*
 -(void) testSelfupdate {
 	//The only way to test this that I know of is to listen for the posted notifications
 	//and take actions as appropriate

Modified: branches/gsoc08-framework/MacPorts_Framework/MPMutableDictionary.h
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPMutableDictionary.h	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPMutableDictionary.h	2008-08-05 14:03:08 UTC (rev 38997)
@@ -1,10 +1,37 @@
-//
-//  MPMutableDictionary.h
-//  MacPorts.Framework
-//
-//  Created by Randall Hansen Wood on 26/9/2007.
-//  Copyright 2007 __MyCompanyName__. All rights reserved.
-//
+/*
+ *	$Id$
+ *	MacPorts.Framework
+ *
+ *	Authors:
+ * 	Randall H. Wood <rhwood at macports.org>
+ *
+ *	Copyright (c) 2007 Randall H. Wood <rhwood at macports.org>
+ *	All rights reserved.
+ *
+ *	Redistribution and use in source and binary forms, with or without
+ *	modification, are permitted provided that the following conditions
+ *	are met:
+ *	1.	Redistributions of source code must retain the above copyright
+ *		notice, this list of conditions and the following disclaimer.
+ *	2.	Redistributions in binary form must reproduce the above copyright
+ *		notice, this list of conditions and the following disclaimer in the
+ *		documentation and/or other materials provided with the distribution.
+ *	3.	Neither the name of the copyright owner nor the names of contributors
+ *		may be used to endorse or promote products derived from this software
+ *		without specific prior written permission.
+ * 
+ *	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ *	AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ *	IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ *	ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ *	LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ *	CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ *	SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ *	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *	CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ *	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ *	POSSIBILITY OF SUCH DAMAGE.
+ */
 
 /*!
  @header

Modified: branches/gsoc08-framework/MacPorts_Framework/MPMutableDictionary.m
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPMutableDictionary.m	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPMutableDictionary.m	2008-08-05 14:03:08 UTC (rev 38997)
@@ -1,10 +1,37 @@
-//
-//  MPMutableDictionary.m
-//  MacPorts.Framework
-//
-//  Created by Randall Hansen Wood on 26/9/2007.
-//  Copyright 2007 __MyCompanyName__. All rights reserved.
-//
+/*
+ *	$Id$
+ *	MacPorts.Framework
+ *
+ *	Authors:
+ * 	Randall H. Wood <rhwood at macports.org>
+ *
+ *	Copyright (c) 2007 Randall H. Wood <rhwood at macports.org>
+ *	All rights reserved.
+ *
+ *	Redistribution and use in source and binary forms, with or without
+ *	modification, are permitted provided that the following conditions
+ *	are met:
+ *	1.	Redistributions of source code must retain the above copyright
+ *		notice, this list of conditions and the following disclaimer.
+ *	2.	Redistributions in binary form must reproduce the above copyright
+ *		notice, this list of conditions and the following disclaimer in the
+ *		documentation and/or other materials provided with the distribution.
+ *	3.	Neither the name of the copyright owner nor the names of contributors
+ *		may be used to endorse or promote products derived from this software
+ *		without specific prior written permission.
+ * 
+ *	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ *	AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ *	IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ *	ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ *	LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ *	CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ *	SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ *	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ *	CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ *	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ *	POSSIBILITY OF SUCH DAMAGE.
+ */
 
 #import "MPMutableDictionary.h"
 

Modified: branches/gsoc08-framework/MacPorts_Framework/MPNotifications.h
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MPNotifications.h	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MPNotifications.h	2008-08-05 14:03:08 UTC (rev 38997)
@@ -56,6 +56,7 @@
 
 #import <Cocoa/Cocoa.h>
 
+#define MPDEFAULT @"MPDefaultNotification"
 #define MPMSG @"MPMsgNotification"
 #define MPINFO @"MPInfoNotification"
 #define MPWARN @"MPWarnNotification"

Modified: branches/gsoc08-framework/MacPorts_Framework/MacPorts.Framework.xcodeproj/project.pbxproj
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MacPorts.Framework.xcodeproj/project.pbxproj	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MacPorts.Framework.xcodeproj/project.pbxproj	2008-08-05 14:03:08 UTC (rev 38997)
@@ -47,7 +47,6 @@
 		6EB6FA420E43ECCE0057962C /* MPHelperTool in Resources */ = {isa = PBXBuildFile; fileRef = 6ED12A4A0E3E552F0026773D /* MPHelperTool */; };
 		6EB6FA460E43ECD60057962C /* MPHelperInstallTool in Resources */ = {isa = PBXBuildFile; fileRef = 6EC260870E426FF10013BC48 /* MPHelperInstallTool */; };
 		6EB6FB270E448EE20057962C /* TestFile.test in Resources */ = {isa = PBXBuildFile; fileRef = 6EB6FB260E448EE20057962C /* TestFile.test */; };
-		6EB6FB630E44AF140057962C /* MPHelperTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EB6FB620E44AF140057962C /* MPHelperTool.m */; };
 		6EB6FC6A0E45AC610057962C /* MPInterpreterProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EB6FC690E45AC610057962C /* MPInterpreterProtocol.h */; };
 		6EB6FC6B0E45AC610057962C /* MPInterpreterProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EB6FC690E45AC610057962C /* MPInterpreterProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		6EB6FC910E45DEA80057962C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EB6FC900E45DEA80057962C /* Foundation.framework */; };
@@ -61,6 +60,14 @@
 		6EC2609A0E4272D20013BC48 /* MPHelperCommon.c in Sources */ = {isa = PBXBuildFile; fileRef = 6EC260960E4272D20013BC48 /* MPHelperCommon.c */; };
 		6EC2609B0E4273920013BC48 /* BetterAuthorizationSampleLibInstallTool.c in Sources */ = {isa = PBXBuildFile; fileRef = 6EC260720E426FC80013BC48 /* BetterAuthorizationSampleLibInstallTool.c */; };
 		6EC2609E0E42950C0013BC48 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EC2609D0E42950C0013BC48 /* CoreFoundation.framework */; };
+		6ECD96FB0E465BF100488335 /* SimpleDOMPHelperTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECD96F90E465BF100488335 /* SimpleDOMPHelperTool.m */; };
+		6ECD97090E465C2A00488335 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EB6FC900E45DEA80057962C /* Foundation.framework */; };
+		6ECD970E0E465C7800488335 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6ECD970D0E465C7800488335 /* Security.framework */; };
+		6ECD970F0E465C7800488335 /* Tcl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EA0F56E0DFEB55E00C15082 /* Tcl.framework */; };
+		6ECD97120E465C8500488335 /* SimpleDOMPHelperTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECD96F90E465BF100488335 /* SimpleDOMPHelperTool.m */; };
+		6ECD97180E465CB300488335 /* MPInterpreterProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EB6FC690E45AC610057962C /* MPInterpreterProtocol.h */; };
+		6ECD973F0E465F6A00488335 /* SimpleDOMPHelperTool in Resources */ = {isa = PBXBuildFile; fileRef = 6ECD97050E465C0F00488335 /* SimpleDOMPHelperTool */; };
+		6ECD98110E484E8400488335 /* MPHelperTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECD98100E484E8400488335 /* MPHelperTool.m */; };
 		6ED12A550E3E55DF0026773D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6ED12A540E3E55DF0026773D /* Security.framework */; };
 		6ED12A560E3E55DF0026773D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6ED12A540E3E55DF0026773D /* Security.framework */; };
 		6ED12AF10E3E9E210026773D /* Tcl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EA0F56E0DFEB55E00C15082 /* Tcl.framework */; };
@@ -83,6 +90,13 @@
 			remoteGlobalIDString = 6EC260860E426FF10013BC48;
 			remoteInfo = MPHelperInstallTool;
 		};
+		6ECD97400E465F7400488335 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 6ECD97040E465C0F00488335 /* SimpleDOMPHelperTool */;
+			remoteInfo = SimpleDOMPHelperTool;
+		};
 		6ED12A520E3E55A50026773D /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
@@ -129,7 +143,7 @@
 		6EA0F56E0DFEB55E00C15082 /* Tcl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Tcl.framework; path = System/Library/Frameworks/Tcl.framework; sourceTree = SDKROOT; };
 		6EAFD8B70DEC614E00E97270 /* dummycommit.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dummycommit.test; sourceTree = "<group>"; };
 		6EB6FB260E448EE20057962C /* TestFile.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TestFile.test; sourceTree = "<group>"; };
-		6EB6FB620E44AF140057962C /* MPHelperTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPHelperTool.m; sourceTree = "<group>"; };
+		6EB6FB620E44AF140057962C /* MPHelperTool.m.old2 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MPHelperTool.m.old2; sourceTree = "<group>"; };
 		6EB6FC690E45AC610057962C /* MPInterpreterProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPInterpreterProtocol.h; sourceTree = "<group>"; };
 		6EB6FC900E45DEA80057962C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
 		6EC260700E426FC80013BC48 /* BetterAuthorizationSampleLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = BetterAuthorizationSampleLib.c; sourceTree = "<group>"; };
@@ -139,6 +153,10 @@
 		6EC260950E4272D20013BC48 /* MPHelperCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPHelperCommon.h; sourceTree = "<group>"; };
 		6EC260960E4272D20013BC48 /* MPHelperCommon.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = MPHelperCommon.c; sourceTree = "<group>"; };
 		6EC2609D0E42950C0013BC48 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
+		6ECD96F90E465BF100488335 /* SimpleDOMPHelperTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SimpleDOMPHelperTool.m; sourceTree = "<group>"; };
+		6ECD97050E465C0F00488335 /* SimpleDOMPHelperTool */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = SimpleDOMPHelperTool; sourceTree = BUILT_PRODUCTS_DIR; };
+		6ECD970D0E465C7800488335 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
+		6ECD98100E484E8400488335 /* MPHelperTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPHelperTool.m; sourceTree = "<group>"; };
 		6ED12A4A0E3E552F0026773D /* MPHelperTool */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = MPHelperTool; sourceTree = BUILT_PRODUCTS_DIR; };
 		6ED12A540E3E55DF0026773D /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = "<absolute>"; };
 		6ED12AA60E3E7E900026773D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
@@ -162,6 +180,16 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		6ECD97030E465C0F00488335 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				6ECD97090E465C2A00488335 /* Foundation.framework in Frameworks */,
+				6ECD970E0E465C7800488335 /* Security.framework in Frameworks */,
+				6ECD970F0E465C7800488335 /* Tcl.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		6ED12A480E3E552F0026773D /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
@@ -193,6 +221,7 @@
 				489DD8F40C94365F00595506 /* Test.octest */,
 				6ED12A4A0E3E552F0026773D /* MPHelperTool */,
 				6EC260870E426FF10013BC48 /* MPHelperInstallTool */,
+				6ECD97050E465C0F00488335 /* SimpleDOMPHelperTool */,
 			);
 			name = Products;
 			sourceTree = "<group>";
@@ -200,7 +229,7 @@
 		0867D691FE84028FC02AAC07 /* MacPorts Foundation */ = {
 			isa = PBXGroup;
 			children = (
-				6ED12A460E3E54A80026773D /* MPHelperTool */,
+				6ED12A460E3E54A80026773D /* MPHelperTools */,
 				6EA293540E05C8C600902D12 /* Tcl Notifications  */,
 				6E88D1760DF46A2600684E9F /* Tests */,
 				08FB77AEFE84172EC02AAC07 /* Classes */,
@@ -213,6 +242,7 @@
 				6ED12AA60E3E7E900026773D /* Cocoa.framework */,
 				6EC2609D0E42950C0013BC48 /* CoreFoundation.framework */,
 				6EB6FC900E45DEA80057962C /* Foundation.framework */,
+				6ECD970D0E465C7800488335 /* Security.framework */,
 			);
 			name = "MacPorts Foundation";
 			sourceTree = "<group>";
@@ -319,7 +349,7 @@
 			name = "Tcl Notifications ";
 			sourceTree = "<group>";
 		};
-		6ED12A460E3E54A80026773D /* MPHelperTool */ = {
+		6ED12A460E3E54A80026773D /* MPHelperTools */ = {
 			isa = PBXGroup;
 			children = (
 				6EC260700E426FC80013BC48 /* BetterAuthorizationSampleLib.c */,
@@ -327,14 +357,24 @@
 				6EC260720E426FC80013BC48 /* BetterAuthorizationSampleLibInstallTool.c */,
 				6EC260950E4272D20013BC48 /* MPHelperCommon.h */,
 				6EC260960E4272D20013BC48 /* MPHelperCommon.c */,
-				6EB6FB620E44AF140057962C /* MPHelperTool.m */,
+				6EB6FB620E44AF140057962C /* MPHelperTool.m.old2 */,
+				6ECD96F90E465BF100488335 /* SimpleDOMPHelperTool.m */,
+				6ECD98100E484E8400488335 /* MPHelperTool.m */,
 			);
-			name = MPHelperTool;
+			name = MPHelperTools;
 			sourceTree = "<group>";
 		};
 /* End PBXGroup section */
 
 /* Begin PBXHeadersBuildPhase section */
+		6ECD97190E465CD100488335 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				6ECD97180E465CB300488335 /* MPInterpreterProtocol.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		6ED12AD30E3E9AE10026773D /* Headers */ = {
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
@@ -402,6 +442,23 @@
 			productReference = 6EC260870E426FF10013BC48 /* MPHelperInstallTool */;
 			productType = "com.apple.product-type.tool";
 		};
+		6ECD97040E465C0F00488335 /* SimpleDOMPHelperTool */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 6ECD970A0E465C4900488335 /* Build configuration list for PBXNativeTarget "SimpleDOMPHelperTool" */;
+			buildPhases = (
+				6ECD97190E465CD100488335 /* Headers */,
+				6ECD97020E465C0F00488335 /* Sources */,
+				6ECD97030E465C0F00488335 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = SimpleDOMPHelperTool;
+			productName = SimpleDOMPHelperTool;
+			productReference = 6ECD97050E465C0F00488335 /* SimpleDOMPHelperTool */;
+			productType = "com.apple.product-type.tool";
+		};
 		6ED12A490E3E552F0026773D /* MPHelperTool */ = {
 			isa = PBXNativeTarget;
 			buildConfigurationList = 6ED12A500E3E55660026773D /* Build configuration list for PBXNativeTarget "MPHelperTool" */;
@@ -435,6 +492,7 @@
 			dependencies = (
 				6ED12A530E3E55A50026773D /* PBXTargetDependency */,
 				6EC2608C0E4270110013BC48 /* PBXTargetDependency */,
+				6ECD97410E465F7400488335 /* PBXTargetDependency */,
 			);
 			name = MacPorts;
 			productInstallPath = "$(HOME)/Library/Frameworks";
@@ -458,6 +516,7 @@
 			projectDirPath = "";
 			projectRoot = "";
 			targets = (
+				6ECD97040E465C0F00488335 /* SimpleDOMPHelperTool */,
 				6EC260860E426FF10013BC48 /* MPHelperInstallTool */,
 				6ED12A490E3E552F0026773D /* MPHelperTool */,
 				8DC2EF4F0486A6940098B216 /* MacPorts */,
@@ -486,6 +545,7 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				6ECD973F0E465F6A00488335 /* SimpleDOMPHelperTool in Resources */,
 				6EB6FA460E43ECD60057962C /* MPHelperInstallTool in Resources */,
 				6EB6FA420E43ECCE0057962C /* MPHelperTool in Resources */,
 				8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */,
@@ -509,7 +569,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n\n#rm -rf notifications.dylib\necho removing BAStuff\n\ncd ~\nsh mptooluninstall.sh\n\necho done removing BAStuff";
+			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n\n#rm -rf notifications.dylib\n\n\n\ncd ~\nif [ -f /Library/LaunchDaemons/org.macports.frameworks.macports.plist ]\nthen\n\techo removing BAStuff\n\tsh mptooluninstall.sh\n\techo done removing BAStuff\nelse\n\techo nothing to Remove\nfi";
 		};
 		6E49F4F40E00DD520030C3AF /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -557,13 +617,21 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		6ECD97020E465C0F00488335 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				6ECD97120E465C8500488335 /* SimpleDOMPHelperTool.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		6ED12A470E3E552F0026773D /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 				6EC260730E426FC80013BC48 /* BetterAuthorizationSampleLib.c in Sources */,
 				6EC260980E4272D20013BC48 /* MPHelperCommon.c in Sources */,
-				6EB6FB630E44AF140057962C /* MPHelperTool.m in Sources */,
+				6ECD98110E484E8400488335 /* MPHelperTool.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -581,6 +649,7 @@
 				6E270D0A0E158CED00BAE687 /* MPNotifications.m in Sources */,
 				6EC260760E426FC80013BC48 /* BetterAuthorizationSampleLib.c in Sources */,
 				6EC2609A0E4272D20013BC48 /* MPHelperCommon.c in Sources */,
+				6ECD96FB0E465BF100488335 /* SimpleDOMPHelperTool.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -597,6 +666,11 @@
 			target = 6EC260860E426FF10013BC48 /* MPHelperInstallTool */;
 			targetProxy = 6EC2608B0E4270110013BC48 /* PBXContainerItemProxy */;
 		};
+		6ECD97410E465F7400488335 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 6ECD97040E465C0F00488335 /* SimpleDOMPHelperTool */;
+			targetProxy = 6ECD97400E465F7400488335 /* PBXContainerItemProxy */;
+		};
 		6ED12A530E3E55A50026773D /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			target = 6ED12A490E3E552F0026773D /* MPHelperTool */;
@@ -791,6 +865,36 @@
 			};
 			name = Release;
 		};
+		6ECD97070E465C1100488335 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/bin;
+				PREBINDING = NO;
+				PRODUCT_NAME = SimpleDOMPHelperTool;
+			};
+			name = Debug;
+		};
+		6ECD97080E465C1100488335 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_MODEL_TUNING = G5;
+				INSTALL_PATH = /usr/local/bin;
+				PREBINDING = NO;
+				PRODUCT_NAME = SimpleDOMPHelperTool;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
 		6ED12A4C0E3E55300026773D /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
@@ -881,6 +985,15 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
+		6ECD970A0E465C4900488335 /* Build configuration list for PBXNativeTarget "SimpleDOMPHelperTool" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				6ECD97070E465C1100488335 /* Debug */,
+				6ECD97080E465C1100488335 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
 		6ED12A500E3E55660026773D /* Build configuration list for PBXNativeTarget "MPHelperTool" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (

Modified: branches/gsoc08-framework/MacPorts_Framework/MacPorts.h
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/MacPorts.h	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/MacPorts.h	2008-08-05 14:03:08 UTC (rev 38997)
@@ -42,3 +42,5 @@
 
 //Including this file for testing the Notifications listener
 #import <MacPorts/MPNotifications.h>;
+//for testing Distributed objects
+#import <MacPorts/MPInterpreterProtocol.h>;

Modified: branches/gsoc08-framework/MacPorts_Framework/init.tcl
===================================================================
--- branches/gsoc08-framework/MacPorts_Framework/init.tcl	2008-08-05 12:14:20 UTC (rev 38996)
+++ branches/gsoc08-framework/MacPorts_Framework/init.tcl	2008-08-05 14:03:08 UTC (rev 38997)
@@ -10,6 +10,12 @@
 package require macports
 package require notifications
 
+
+#Set ui_options to log all messages to stdout and notify system
+#filtering is done on the Obj-C side of things
+set ui_options(ports_debug) "yes"
+set ui_options(ports_verbose) "yes"
+
 # ui_options accessor
 proc ui_isset {val} {
 	global ui_options
@@ -79,6 +85,7 @@
 #This is currently under works ... a reasonable solution
 #should be coming up soon
 proc ui_init {priority prefix channels message} {
+	puts "INSIDE ui_init priority with prefix $prefix and message $message"
 	
 	switch $priority {
 		msg {
@@ -86,15 +93,18 @@
 		}
 		debug {
 			set "MPDebugNotification"
+			#puts "Recieved Debug"
 		}
 		warn {
 			set nottype "MPWarnNotification"
 		}
 		error {
 			set nottype "MPErrorNotification"
+			#puts "Recieved Error"
 		}
 		info {
 			set nottype "MPInfoNotification"
+			#puts "Recieved Info"
 		}
 		default {
 			set nottype "MPDefaultNotification"
@@ -107,12 +117,14 @@
     } catch * {
         set channels [ui_channels_default $priority]
     }
-
+    
+    #set channels [ui_channels $priority]
+    
     # Simplify ui_$priority.
     set nbchans [llength $channels]
     if {$nbchans == 0} {
         proc ::ui_$priority {str} [subst {
-        	notifications send $nottype "Channel $chan Prefix $prefix" "\$str"
+        	notifications send $nottype "$chan $prefix" "\$str"
         }]
     } else {
         try {
@@ -120,19 +132,21 @@
         } catch * {
             set prefix [ui_prefix_default $priority]
         }
-
+        
+        #set prefix [ui_prefix $priority]
+        
         if {$nbchans == 1} {
             set chan [lindex $channels 0]
             
             proc ::ui_$priority {str} [subst { 
             	puts $chan "$prefix\$str"
-            	notifications send $nottype "Channel $chan Prefix $prefix" "\$str"
+            	notifications send $nottype "$chan $prefix" "\$str"
             }]
         } else {
         	proc ::ui_$priority {str} [subst {
         		foreach chan \$channels {
         			puts $chan "$prefix\$str"
-        			notifications send $nottype "Channel $chan Prefix $prefix" "\$str"
+        			notifications send $nottype "$chan $prefix" "\$str"
         		}
         	}]
         }
@@ -177,6 +191,7 @@
 }
 
 
+
 # Initialize dport
 # This must be done following parse of global options, as some options are
 # evaluated by dportinit.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20080805/06ef7cea/attachment-0001.html 


More information about the macports-changes mailing list