From 298bdfb80725a6c6a8bc10e62c6144f774c951d3 Mon Sep 17 00:00:00 2001 From: Robert Sesek Date: Fri, 4 Jan 2008 02:21:51 -0800 Subject: [PATCH] Untested refactoring is the best! Renaming all of the instance variables to not start with underscores, because it's just plain old annoying. --- English.lproj/Connect.nib/classes.nib | 52 ++++++--- English.lproj/Connect.nib/info.nib | 16 +-- English.lproj/Connect.nib/keyedobjects.nib | Bin 5430 -> 5615 bytes English.lproj/Debugger.nib/classes.nib | 93 +++++++++++----- English.lproj/Debugger.nib/info.nib | 16 +-- English.lproj/Debugger.nib/keyedobjects.nib | Bin 16996 -> 17625 bytes Source/ConnectWindowController.h | 4 +- Source/ConnectWindowController.m | 2 +- Source/DebuggerConnection.h | 14 +-- Source/DebuggerConnection.m | 88 +++++++-------- Source/DebuggerWindowController.h | 34 +++--- Source/DebuggerWindowController.m | 116 ++++++++++---------- Source/SocketWrapper.h | 10 +- Source/SocketWrapper.m | 38 +++---- 14 files changed, 275 insertions(+), 208 deletions(-) diff --git a/English.lproj/Connect.nib/classes.nib b/English.lproj/Connect.nib/classes.nib index aa0f0c5..73d16b1 100644 --- a/English.lproj/Connect.nib/classes.nib +++ b/English.lproj/Connect.nib/classes.nib @@ -1,13 +1,39 @@ -{ - IBClasses = ( - { - ACTIONS = {connect = id; }; - CLASS = ConnectWindowController; - LANGUAGE = ObjC; - OUTLETS = {"_port" = NSTextField; "_session" = NSTextField; }; - SUPERCLASS = NSWindowController; - }, - {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; } - ); - IBVersion = 1; -} \ No newline at end of file + + + + + IBClasses + + + ACTIONS + + connect + id + + CLASS + ConnectWindowController + LANGUAGE + ObjC + OUTLETS + + port + NSTextField + session + NSTextField + + SUPERCLASS + NSWindowController + + + CLASS + FirstResponder + LANGUAGE + ObjC + SUPERCLASS + NSObject + + + IBVersion + 1 + + diff --git a/English.lproj/Connect.nib/info.nib b/English.lproj/Connect.nib/info.nib index a52ca3d..a2db77c 100644 --- a/English.lproj/Connect.nib/info.nib +++ b/English.lproj/Connect.nib/info.nib @@ -1,16 +1,16 @@ - + - IBDocumentLocation - 80 44 356 240 0 0 1440 878 IBFramework Version - 446.1 + 629 + IBOldestOS + 5 IBOpenObjects - - 5 - + IBSystem Version - 8R2232 + 9B18 + targetFramework + IBCocoaFramework diff --git a/English.lproj/Connect.nib/keyedobjects.nib b/English.lproj/Connect.nib/keyedobjects.nib index dc9a0b03330ad263e32804002bbd5a1bfe071bbe..089ed79b9c784a004d426cd85298f76991a71b3e 100644 GIT binary patch literal 5615 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 VYLmL$oas0&@!QAzO@6Cu{}<`Rqq+b9 literal 5430 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 diff --git a/English.lproj/Debugger.nib/classes.nib b/English.lproj/Debugger.nib/classes.nib index 3f5d4fa..6541afb 100644 --- a/English.lproj/Debugger.nib/classes.nib +++ b/English.lproj/Debugger.nib/classes.nib @@ -1,26 +1,67 @@ -{ - IBClasses = ( - { - ACTIONS = {reconnect = id; run = id; stepIn = id; stepOut = id; stepOver = id; }; - CLASS = DebuggerWindowController; - LANGUAGE = ObjC; - OUTLETS = { - "_error" = NSTextField; - "_reconnectButton" = NSButton; - "_registerController" = NSTreeController; - "_registerView" = NSOutlineView; - "_runButton" = NSButton; - "_sourceViewer" = NSTextView; - "_sourceViewerScroller" = NSScrollView; - "_stackController" = NSArrayController; - "_status" = NSTextField; - "_stepInButton" = NSButton; - "_stepOutButton" = NSButton; - "_stepOverButton" = NSButton; - }; - SUPERCLASS = NSWindowController; - }, - {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; } - ); - IBVersion = 1; -} \ No newline at end of file + + + + + IBClasses + + + ACTIONS + + reconnect + id + run + id + stepIn + id + stepOut + id + stepOver + id + + CLASS + DebuggerWindowController + LANGUAGE + ObjC + OUTLETS + + error + NSTextField + reconnectButton + NSButton + registerController + NSTreeController + registerView + NSOutlineView + runButton + NSButton + sourceViewer + NSTextView + sourceViewerScroller + NSScrollView + stackController + NSArrayController + status + NSTextField + stepInButton + NSButton + stepOutButton + NSButton + stepOverButton + NSButton + + SUPERCLASS + NSWindowController + + + CLASS + FirstResponder + LANGUAGE + ObjC + SUPERCLASS + NSObject + + + IBVersion + 1 + + diff --git a/English.lproj/Debugger.nib/info.nib b/English.lproj/Debugger.nib/info.nib index bed5e32..a2db77c 100644 --- a/English.lproj/Debugger.nib/info.nib +++ b/English.lproj/Debugger.nib/info.nib @@ -1,16 +1,16 @@ - + - IBDocumentLocation - 42 53 602 240 0 0 1440 878 IBFramework Version - 446.1 + 629 + IBOldestOS + 5 IBOpenObjects - - 7 - + IBSystem Version - 8R2232 + 9B18 + targetFramework + IBCocoaFramework diff --git a/English.lproj/Debugger.nib/keyedobjects.nib b/English.lproj/Debugger.nib/keyedobjects.nib index a031f086720c4e93b09fc382a7f3c63a9247b1ec..b140e2cb61ac53882443b5b2756002e303000472 100644 GIT binary patch literal 17625 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 SK!{<~zrsHCZ{V{i@BaaA&?>F~ literal 16996 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 diff --git a/Source/ConnectWindowController.h b/Source/ConnectWindowController.h index bbdb704..acf8ef8 100644 --- a/Source/ConnectWindowController.h +++ b/Source/ConnectWindowController.h @@ -19,8 +19,8 @@ @interface ConnectWindowController : NSWindowController { - IBOutlet NSTextField *_port; - IBOutlet NSTextField *_session; + IBOutlet NSTextField *port; + IBOutlet NSTextField *session; } + (id)sharedController; diff --git a/Source/ConnectWindowController.m b/Source/ConnectWindowController.m index 4d24eef..199e892 100644 --- a/Source/ConnectWindowController.m +++ b/Source/ConnectWindowController.m @@ -53,7 +53,7 @@ */ - (IBAction)connect:(id)sender { - DebuggerConnection *cnx = [[DebuggerConnection alloc] initWithPort:[_port intValue] session:[_session stringValue]]; + DebuggerConnection *cnx = [[DebuggerConnection alloc] initWithPort:[port intValue] session:[session stringValue]]; [[NSApp delegate] registerConnection:cnx]; [cnx release]; [[self window] orderOut:self]; diff --git a/Source/DebuggerConnection.h b/Source/DebuggerConnection.h index 0531ce8..75da51c 100644 --- a/Source/DebuggerConnection.h +++ b/Source/DebuggerConnection.h @@ -20,19 +20,19 @@ @interface DebuggerConnection : NSObject { - int _port; - NSString *_session; - BOOL _connected; + int port; + NSString *session; + BOOL connected; - DebuggerWindowController *_windowController; + DebuggerWindowController *windowController; - SocketWrapper *_socket; + SocketWrapper *socket; - id _depthFetchElement; + id depthFetchElement; } // initializer -- (id)initWithPort:(int)port session:(NSString *)session; +- (id)initWithPort:(int)aPort session:(NSString *)session; - (void)windowDidClose; diff --git a/Source/DebuggerConnection.m b/Source/DebuggerConnection.m index b2d3da5..943885f 100644 --- a/Source/DebuggerConnection.m +++ b/Source/DebuggerConnection.m @@ -29,22 +29,22 @@ * Creates a new DebuggerConnection and initializes the socket from the given connection * paramters. */ -- (id)initWithPort:(int)port session:(NSString *)session +- (id)initWithPort:(int)aPort session:(NSString *)session { if (self = [super init]) { - _port = port; - _session = [session retain]; - _connected = NO; + port = aPort; + session = [session retain]; + connected = NO; - _windowController = [[DebuggerWindowController alloc] initWithConnection:self]; - [[_windowController window] makeKeyAndOrderFront:self]; + windowController = [[DebuggerWindowController alloc] initWithConnection:self]; + [[windowController window] makeKeyAndOrderFront:self]; // now that we have our host information, open the socket - _socket = [[SocketWrapper alloc] initWithPort:port]; - [_socket setDelegate:self]; - [_windowController setStatus:@"Connecting"]; - [_socket connect]; + socket = [[SocketWrapper alloc] initWithPort:port]; + [socket setDelegate:self]; + [windowController setStatus:@"Connecting"]; + [socket connect]; } return self; } @@ -63,9 +63,9 @@ */ - (void)dealloc { - [_session release]; - [_socket release]; - [_windowController release]; + [session release]; + [socket release]; + [windowController release]; [super dealloc]; } @@ -75,7 +75,7 @@ */ - (int)port { - return _port; + return port; } /** @@ -83,7 +83,7 @@ */ - (NSString *)session { - return _session; + return session; } /** @@ -91,11 +91,11 @@ */ - (NSString *)remoteHost { - if (!_connected) + if (!connected) { return @"(DISCONNECTED)"; } - return [_socket remoteHost]; + return [socket remoteHost]; } /** @@ -103,7 +103,7 @@ */ - (BOOL)isConnected { - return _connected; + return connected; } /** @@ -117,7 +117,7 @@ NSArray *error = [[doc rootElement] elementsForName:@"error"]; if ([error count] > 0) { - [_windowController setError:[[[[error objectAtIndex:0] children] objectAtIndex:0] stringValue]]; + [windowController setError:[[[[error objectAtIndex:0] children] objectAtIndex:0] stringValue]]; return; } @@ -143,8 +143,8 @@ */ - (void)socketDidAccept { - _connected = YES; - [_socket receive:@selector(handshake:)]; + connected = YES; + [socket receive:@selector(handshake:)]; } /** @@ -152,7 +152,7 @@ */ - (void)errorEncountered:(NSError *)error { - [_windowController setError:[error domain]]; + [windowController setError:[error domain]]; } /** @@ -171,7 +171,7 @@ - (void)updateStatus:(NSXMLDocument *)doc { NSString *status = [[[doc rootElement] attributeForName:@"status"] stringValue]; - [_windowController setStatus:[status capitalizedString]]; + [windowController setStatus:[status capitalizedString]]; if ([status isEqualToString:@"break"]) { @@ -184,7 +184,7 @@ */ - (void)run { - [_socket send:[self createCommand:@"run"]]; + [socket send:[self createCommand:@"run"]]; [self refreshStatus]; } @@ -194,8 +194,8 @@ */ - (void)refreshStatus { - [_socket send:[self createCommand:@"status"]]; - [_socket receive:@selector(updateStatus:)]; + [socket send:[self createCommand:@"status"]]; + [socket receive:@selector(updateStatus:)]; } /** @@ -203,8 +203,8 @@ */ - (void)stepIn { - [_socket send:[self createCommand:@"step_into"]]; - [_socket receive:nil]; + [socket send:[self createCommand:@"step_into"]]; + [socket receive:nil]; [self refreshStatus]; } @@ -213,8 +213,8 @@ */ - (void)stepOut { - [_socket send:[self createCommand:@"step_out"]]; - [_socket receive:nil]; + [socket send:[self createCommand:@"step_out"]]; + [socket receive:nil]; [self refreshStatus]; } @@ -223,8 +223,8 @@ */ - (void)stepOver { - [_socket send:[self createCommand:@"step_over"]]; - [_socket receive:nil]; + [socket send:[self createCommand:@"step_over"]]; + [socket receive:nil]; [self refreshStatus]; } @@ -234,11 +234,11 @@ */ - (void)updateStackTraceAndRegisters { - [_socket send:[self createCommand:@"stack_get"]]; - [_socket receive:@selector(stackReceived:)]; + [socket send:[self createCommand:@"stack_get"]]; + [socket receive:@selector(stackReceived:)]; - [_socket send:[self createCommand:@"context_get"]]; - [_socket receive:@selector(registerReceived:)]; + [socket send:[self createCommand:@"context_get"]]; + [socket receive:@selector(registerReceived:)]; } /** @@ -260,7 +260,7 @@ [stack addObject:dict]; dict = [NSMutableDictionary dictionary]; } - [_windowController setStack:stack]; + [windowController setStack:stack]; } /** @@ -268,7 +268,7 @@ */ - (void)registerReceived:(NSXMLDocument *)doc { - [_windowController setRegister:doc]; + [windowController setRegister:doc]; } /** @@ -277,9 +277,9 @@ */ - (void)getProperty:(NSString *)property forElement:(NSXMLElement *)elm { - [_socket send:[self createCommand:[NSString stringWithFormat:@"property_get -n \"%@\"", property]]]; - _depthFetchElement = elm; - [_socket receive:@selector(propertyReceived:)]; + [socket send:[self createCommand:[NSString stringWithFormat:@"property_get -n \"%@\"", property]]]; + depthFetchElement = elm; + [socket receive:@selector(propertyReceived:)]; } /** @@ -299,8 +299,8 @@ NSXMLElement *parent = (NSXMLElement *)[[doc rootElement] childAtIndex:0]; NSArray *children = [parent children]; [parent setChildren:nil]; - [_windowController addChildren:children toNode:_depthFetchElement]; - _depthFetchElement = nil; + [windowController addChildren:children toNode:depthFetchElement]; + depthFetchElement = nil; } /** @@ -308,7 +308,7 @@ */ - (NSString *)createCommand:(NSString *)cmd { - return [NSString stringWithFormat:@"%@ -i %@", cmd, _session]; + return [NSString stringWithFormat:@"%@ -i %@", cmd, session]; } @end diff --git a/Source/DebuggerWindowController.h b/Source/DebuggerWindowController.h index e5ee466..a872313 100644 --- a/Source/DebuggerWindowController.h +++ b/Source/DebuggerWindowController.h @@ -20,32 +20,32 @@ @interface DebuggerWindowController : NSWindowController { - DebuggerConnection *_connection; + DebuggerConnection *connection; - IBOutlet NSArrayController *_stackController; - NSArray *_stack; + IBOutlet NSArrayController *stackController; + NSArray *stack; - IBOutlet NSTreeController *_registerController; - IBOutlet NSOutlineView *_registerView; - NSMutableArray *_expandedRegisters; + IBOutlet NSTreeController *registerController; + IBOutlet NSOutlineView *registerView; + NSMutableArray *expandedRegisters; - IBOutlet NSTextField *_status; - IBOutlet NSTextField *_error; + IBOutlet NSTextField *status; + IBOutlet NSTextField *error; - IBOutlet NSTextView *_sourceViewer; - IBOutlet NSScrollView *_sourceViewerScroller; + IBOutlet NSTextView *sourceViewer; + IBOutlet NSScrollView *sourceViewerScroller; - IBOutlet NSButton *_stepInButton; - IBOutlet NSButton *_stepOutButton; - IBOutlet NSButton *_stepOverButton; - IBOutlet NSButton *_runButton; - IBOutlet NSButton *_reconnectButton; + IBOutlet NSButton *stepInButton; + IBOutlet NSButton *stepOutButton; + IBOutlet NSButton *stepOverButton; + IBOutlet NSButton *runButton; + IBOutlet NSButton *reconnectButton; } - (id)initWithConnection:(DebuggerConnection *)cnx; -- (void)setStatus:(NSString *)status; -- (void)setError:(NSString *)error; +- (void)setStatus:(NSString *)aStatus; +- (void)setError:(NSString *)anError; - (void)setStack:(NSArray *)node; - (void)setRegister:(NSXMLDocument *)reg; diff --git a/Source/DebuggerWindowController.m b/Source/DebuggerWindowController.m index 38748e3..d2a825b 100644 --- a/Source/DebuggerWindowController.m +++ b/Source/DebuggerWindowController.m @@ -34,8 +34,8 @@ { if (self = [super initWithWindowNibName:@"Debugger"]) { - _connection = cnx; - _expandedRegisters = [[NSMutableArray alloc] init]; + connection = cnx; + expandedRegisters = [[NSMutableArray alloc] init]; } return self; } @@ -46,12 +46,12 @@ - (void)awakeFromNib { // set up the scroller for the source viewer - [_sourceViewer setMaxSize:NSMakeSize(FLT_MAX, FLT_MAX)]; - [[_sourceViewer textContainer] setContainerSize:NSMakeSize(FLT_MAX, FLT_MAX)]; - [[_sourceViewer textContainer] setWidthTracksTextView:NO]; - [_sourceViewer setHorizontallyResizable:YES]; - [_sourceViewerScroller setHasHorizontalScroller:YES]; - [_sourceViewerScroller display]; + [sourceViewer setMaxSize:NSMakeSize(FLT_MAX, FLT_MAX)]; + [[sourceViewer textContainer] setContainerSize:NSMakeSize(FLT_MAX, FLT_MAX)]; + [[sourceViewer textContainer] setWidthTracksTextView:NO]; + [sourceViewer setHorizontallyResizable:YES]; + [sourceViewerScroller setHasHorizontalScroller:YES]; + [sourceViewerScroller display]; } /** @@ -59,7 +59,7 @@ */ - (void)windowWillClose:(NSNotification *)aNotification { - [_connection windowDidClose]; + [connection windowDidClose]; } /** @@ -67,7 +67,7 @@ */ - (void)dealloc { - [_expandedRegisters release]; + [expandedRegisters release]; [super dealloc]; } @@ -75,62 +75,62 @@ /** * Sets the status and clears any error message */ -- (void)setStatus:(NSString *)status +- (void)setStatus:(NSString *)aStatus { - [_error setHidden:YES]; - [_status setStringValue:status]; - [[self window] setTitle:[NSString stringWithFormat:@"GDBp @ %@:%d/%@", [_connection remoteHost], [_connection port], [_connection session]]]; + [error setHidden:YES]; + [status setStringValue:aStatus]; + [[self window] setTitle:[NSString stringWithFormat:@"GDBp @ %@:%d/%@", [connection remoteHost], [connection port], [connection session]]]; - [_stepInButton setEnabled:NO]; - [_stepOutButton setEnabled:NO]; - [_stepOverButton setEnabled:NO]; - [_runButton setEnabled:NO]; - [_reconnectButton setEnabled:NO]; + [stepInButton setEnabled:NO]; + [stepOutButton setEnabled:NO]; + [stepOverButton setEnabled:NO]; + [runButton setEnabled:NO]; + [reconnectButton setEnabled:NO]; - if ([_connection isConnected]) + if ([connection isConnected]) { if ([status isEqualToString:@"Starting"]) { - [_stepInButton setEnabled:YES]; - [_runButton setEnabled:YES]; + [stepInButton setEnabled:YES]; + [runButton setEnabled:YES]; } } else { - [_reconnectButton setEnabled:YES]; + [reconnectButton setEnabled:YES]; } } /** * Sets the status to be "Error" and then displays the error message */ -- (void)setError:(NSString *)error +- (void)setError:(NSString *)anError { - [_error setStringValue:error]; + [error setStringValue:anError]; [self setStatus:@"Error"]; - [_error setHidden:NO]; + [error setHidden:NO]; } /** * Sets the root node element of the stacktrace */ -- (void)setStack:(NSArray *)stack +- (void)setStack:(NSArray *)node { - if (_stack != nil) + if (stack != nil) { - [_stack release]; + [stack release]; } - _stack = stack; - [_stack retain]; + stack = stack; + [stack retain]; - if ([_stack count] > 1) + if ([stack count] > 1) { - [_stepOutButton setEnabled:YES]; + [stepOutButton setEnabled:YES]; } - [_stepInButton setEnabled:YES]; - [_stepOverButton setEnabled:YES]; - [_runButton setEnabled:YES]; + [stepInButton setEnabled:YES]; + [stepOverButton setEnabled:YES]; + [runButton setEnabled:YES]; [self updateSourceViewer]; } @@ -153,15 +153,15 @@ // sh!t when used with NSTreeController. http://www.cocoadev.com/index.pl?NSTreeControllerBugOrDeveloperError // was the inspiration for this fix (below) but the author says that inserting does not work too well, but // that's okay for us as we just need to replace the entire thing. - [_registerController setContent:nil]; - [_registerController setContent:[[elm rootElement] children]]; + [registerController setContent:nil]; + [registerController setContent:[[elm rootElement] children]]; - for (int i = 0; i < [_registerView numberOfRows]; i++) + for (int i = 0; i < [registerView numberOfRows]; i++) { - int index = [_expandedRegisters indexOfObject:[[[_registerView itemAtRow:i] observedObject] variable]]; + int index = [expandedRegisters indexOfObject:[[[registerView itemAtRow:i] observedObject] variable]]; if (index != NSNotFound) { - [_registerView expandItem:[_registerView itemAtRow:i]]; + [registerView expandItem:[registerView itemAtRow:i]]; } } } @@ -171,7 +171,7 @@ */ - (IBAction)run:(id)sender { - [_connection run]; + [connection run]; } /** @@ -187,7 +187,7 @@ */ - (IBAction)stepIn:(id)sender { - [_connection stepIn]; + [connection stepIn]; } /** @@ -195,7 +195,7 @@ */ - (IBAction)stepOut:(id)sender { - [_connection stepOut]; + [connection stepOut]; } /** @@ -203,7 +203,7 @@ */ - (IBAction)stepOver:(id)sender { - [_connection stepOver]; + [connection stepOver]; } /** @@ -220,21 +220,21 @@ */ - (void)updateSourceViewer { - int selection = [_stackController selectionIndex]; + int selection = [stackController selectionIndex]; if (selection == NSNotFound) { - [_sourceViewer setString:@""]; + [sourceViewer setString:@""]; return; } // get the filename and then set the text - NSString *filename = [[_stack objectAtIndex:selection] valueForKey:@"filename"]; + NSString *filename = [[stack objectAtIndex:selection] valueForKey:@"filename"]; filename = [[NSURL URLWithString:filename] path]; NSString *text = [NSString stringWithContentsOfFile:filename]; - [_sourceViewer setString:text]; + [sourceViewer setString:text]; // go through the document until we find the NSRange for the line we want - int destination = [[[_stack objectAtIndex:selection] valueForKey:@"lineno"] intValue]; + int destination = [[[stack objectAtIndex:selection] valueForKey:@"lineno"] intValue]; int rangeIndex = 0; for (int line = 0; line < destination; line++) { @@ -247,13 +247,13 @@ NSRange lineRange = NSMakeRange(lineStart, lineEnd - lineStart); // colorize it so the user knows which line we're on in the stack - [[_sourceViewer textStorage] setAttributes:[NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:[NSColor redColor], [NSColor yellowColor], nil] + [[sourceViewer textStorage] setAttributes:[NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:[NSColor redColor], [NSColor yellowColor], nil] forKeys:[NSArray arrayWithObjects:NSForegroundColorAttributeName, NSBackgroundColorAttributeName, nil]] range:lineRange]; - [_sourceViewer scrollRangeToVisible:[text lineRangeForRange:NSMakeRange(lineStart, lineEnd - lineStart)]]; + [sourceViewer scrollRangeToVisible:[text lineRangeForRange:NSMakeRange(lineStart, lineEnd - lineStart)]]; // make sure the font stays Monaco - [_sourceViewer setFont:[NSFont fontWithName:@"Monaco" size:10.0]]; + [sourceViewer setFont:[NSFont fontWithName:@"Monaco" size:10.0]]; } /** @@ -271,10 +271,10 @@ // we're not a leaf but have no children. this must be beyond our depth, so go make us deeper if (![obj isLeaf] && [[obj children] count] < 1) { - [_connection getProperty:[[obj attributeForName:@"fullname"] stringValue] forElement:notifObj]; + [connection getProperty:[[obj attributeForName:@"fullname"] stringValue] forElement:notifObj]; } - [_expandedRegisters addObject:[obj variable]]; + [expandedRegisters addObject:[obj variable]]; } /** @@ -282,7 +282,7 @@ */ - (void)outlineViewItemDidCollapse:(id)notif { - [_expandedRegisters removeObject:[[[[notif userInfo] objectForKey:@"NSObject"] observedObject] variable]]; + [expandedRegisters removeObject:[[[[notif userInfo] objectForKey:@"NSObject"] observedObject] variable]]; NSLog(@"outlineViewDidCollapse:%@", notif); } @@ -296,10 +296,10 @@ NSIndexPath *masterPath = [node indexPath]; for (int i = 0; i < [children count]; i++) { - [_registerController insertObject:[children objectAtIndex:i] atArrangedObjectIndexPath:[masterPath indexPathByAddingIndex:i]]; + [registerController insertObject:[children objectAtIndex:i] atArrangedObjectIndexPath:[masterPath indexPathByAddingIndex:i]]; } - [_registerController rearrangeObjects]; + [registerController rearrangeObjects]; } @end diff --git a/Source/SocketWrapper.h b/Source/SocketWrapper.h index ae5116c..f626b0b 100644 --- a/Source/SocketWrapper.h +++ b/Source/SocketWrapper.h @@ -18,16 +18,16 @@ @interface SocketWrapper : NSObject { - int _port; - int _socket; + int port; + int socket; - id _delegate; + id delegate; } -- (id)initWithPort:(int)port; +- (id)initWithPort:(int)aPort; - (id)delegate; -- (void)setDelegate:(id)delegate; +- (void)setDelegate:(id)aDelegate; - (void)connect; - (void)receive:(SEL)selector; diff --git a/Source/SocketWrapper.m b/Source/SocketWrapper.m index 097e719..8dc34e0 100644 --- a/Source/SocketWrapper.m +++ b/Source/SocketWrapper.m @@ -41,11 +41,11 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; /** * Initializes the socket wrapper with a host and port */ -- (id)initWithPort:(int)port +- (id)initWithPort:(int)aPort { if (self = [super init]) { - _port = port; + port = aPort; // the delegate notifications work funky because of threads. we register ourselves as the // observer and then pass up the messages that are actually from this object (as we can't only observe self due to threads) @@ -61,7 +61,7 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; - close(_socket); + close(socket); [super dealloc]; } @@ -71,15 +71,15 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; */ - (id)delegate { - return _delegate; + return delegate; } /** * Sets the delegate but does *not* retain it */ -- (void)setDelegate:(id)delegate +- (void)setDelegate:(id)aDelegate { - _delegate = delegate; + delegate = aDelegate; } /** @@ -90,7 +90,7 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; struct sockaddr_in addr; socklen_t addrLength; - if (getpeername(_socket, (struct sockaddr *)&addr, &addrLength) < 0) + if (getpeername(socket, (struct sockaddr *)&addr, &addrLength) < 0) { [self postNotification:NsockError withObject:[NSError errorWithDomain:@"Could not get remote hostname." code:-1 userInfo:nil]]; } @@ -109,7 +109,7 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; - (void)sendMessageToDelegate:(NSNotification *)notif { // this isn't us, so there's no point in continuing - if ([[notif userInfo] objectForKey:sockNotificationDebuggerConnection] != _delegate) + if ([[notif userInfo] objectForKey:sockNotificationDebuggerConnection] != delegate) { return; } @@ -118,19 +118,19 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; if (name == NsockDidAccept) { - [_delegate socketDidAccept]; + [delegate socketDidAccept]; } else if (name == NsockDataReceived) { - [_delegate dataReceived:[notif object] deliverTo:NSSelectorFromString([[notif userInfo] objectForKey:sockNotificationReceiver])]; + [delegate dataReceived:[notif object] deliverTo:NSSelectorFromString([[notif userInfo] objectForKey:sockNotificationReceiver])]; } else if (name == NsockDataSent) { - [_delegate dataSent:[notif object]]; + [delegate dataSent:[notif object]]; } else if (name == NsockError) { - [_delegate errorEncountered:[NSError errorWithDomain:[notif object] code:-1 userInfo:nil]]; + [delegate errorEncountered:[NSError errorWithDomain:[notif object] code:-1 userInfo:nil]]; } } @@ -156,7 +156,7 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; // create our address given the port struct sockaddr_in address; address.sin_family = AF_INET; - address.sin_port = htons(_port); + address.sin_port = htons(port); address.sin_addr.s_addr = htonl(INADDR_ANY); memset(address.sin_zero, '\0', sizeof(address.sin_zero)); @@ -188,8 +188,8 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; // accept a connection struct sockaddr_in remoteAddress; socklen_t remoteAddressLen = sizeof(remoteAddress); - _socket = accept(socketOpen, (struct sockaddr *)&remoteAddress, &remoteAddressLen); - if (_socket < 0) + socket = accept(socketOpen, (struct sockaddr *)&remoteAddress, &remoteAddressLen); + if (socket < 0) { close(socketOpen); [self postNotification:NsockError withObject:@"Client failed to accept remote socket"]; @@ -218,7 +218,7 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; char buffer[1024]; // do our initial recv() call to get (hopefully) all the data and the lengh of the packet - int recvd = recv(_socket, &buffer, sizeof(buffer), 0); + int recvd = recv(socket, &buffer, sizeof(buffer), 0); // take the received data and put it into an NSData NSMutableData *data = [NSMutableData data]; @@ -252,7 +252,7 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; { while (recvd < length) { - int latest = recv(_socket, &buffer, sizeof(buffer), 0); + int latest = recv(socket, &buffer, sizeof(buffer), 0); if (latest < 1) { [self postNotification:NsockError withObject:@"Socket closed or could not be read"]; @@ -283,7 +283,7 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; - (void)send:(NSString *)data { data = [NSString stringWithFormat:@"%@\0", data]; - int sent = send(_socket, [data UTF8String], [data length], 0); + int sent = send(socket, [data UTF8String], [data length], 0); if (sent < 0) { [self postNotification:NsockError withObject:@"Failed to write data to socket"]; @@ -312,7 +312,7 @@ NSString *NsockDataSent = @"SocketWrapper_DataSent"; */ - (void)postNotification:(NSString *)name withObject:(id)obj withDict:(NSMutableDictionary *)dict { - [dict setValue:_delegate forKey:sockNotificationDebuggerConnection]; + [dict setValue:delegate forKey:sockNotificationDebuggerConnection]; [[NSNotificationCenter defaultCenter] postNotificationName:name object:obj userInfo:dict]; } -- 2.22.5