Robert Sesek [Fri, 3 Aug 2007 03:49:09 +0000 (20:49 -0700)]
Delegate methods work far better than notifications, though I'm not sure how threads fit into the mix.
* Source/SocketWrapper.h: Updating the SocketWrapperDelegate informal protocol to use actual arguments instead of NSNotification
* Source/SocketWrapper.m:
(many): Change from using [NSNotificatinoCenter postNotification:] to just calling delegate methods
([SocketWrapper receive]): NSData can't take a pointer to an array, so we copy the buffer into another variable packet[] and send that to NSData
Robert Sesek [Fri, 3 Aug 2007 03:32:44 +0000 (20:32 -0700)]
Using NSNotification to pass messages around upon events... this doesn't work too well for some reason, however.
* Source/DebuggerConnection.m: Set ourselves as the delegate and implement some delegate methods
* Source/SocketWrapper.h:
- Define some NSNotification names
- Set up the delegate
- Define SocketWrapperDelegate informal protocol
* Source/SocketWrapper.m:
(many): Post notifications for basically every method
([SocketWrapper setDelegate:]): Added and registers tons of notifications with it
([SocketWrapper receive]): Working on making the way we get to the null byte less hack-ish
Robert Sesek [Thu, 2 Aug 2007 08:45:41 +0000 (01:45 -0700)]
* Source/SocketWrapper.m: Include <unistd.h> to remove some implicit function definition warnigns and implement send:
([SocketWrapper send:]): Implemented method
Robert Sesek [Thu, 2 Aug 2007 06:45:16 +0000 (23:45 -0700)]
* Source/SocketWrapper.m:
([SocketWrapper receive]):
- Properly handle packets that are too large for the buffer
- Actually return an autorelease'd NSString instead of nil
Robert Sesek [Thu, 2 Aug 2007 06:27:02 +0000 (23:27 -0700)]
* MacGDBp.xcodeproj: Change the C mode to be C99
* Source/DebuggerConnection.m:
([DebuggerConnection initWithPort:]): If the result of init'ing a SocketWrapper is nil, throw an "error"
* Source/SocketWrapper:
([SocketWrapper receive]): New method. Used to fetch a string from a socket
([SocketWrapper send:]): New method. Used to write to a socket
Robert Sesek [Thu, 2 Aug 2007 04:51:09 +0000 (21:51 -0700)]
Removing all information about specifying a host because GDBp doesn't actually support anything but PHP->localhost.
* English.lproj/Connect.nib: Removing and unhooking the host text field
* Source/ConnectWindowController.h: Removing _host outlet
* Source/ConnectWindowController.m:
([ConnectWindowController connect:]): Remove the "Host" parameter from the DebuggerConnection init method
* Source/DebuggerConnection.h: Removing the _host ivar and removing the "host" parameter from the init method as well as the host getter method
* Source/DebuggerConnection.m:
([DebuggerConnection initWithHost:port:session:]): Renamed to [DebuggerConnection initWithPort:session:]
([DebuggerConnection dealloc]): Removed _host ivar and so it no longer needs to be release'd
([DebuggerConnection host]): Removed
* Source/DebuggerWindowController.m:
([DebuggerWindowController initWithConnection:]): No longer set the host in the window title
Robert Sesek [Thu, 2 Aug 2007 04:43:47 +0000 (21:43 -0700)]
Changing from using NSStream which didn't actually work correctly to using a custom-rolled socket implementation
* Source/SocketWrapper.m/h: Adding to wrap around BSD sockets
* Source/DebuggerConnection.h: Removing _input and _output in favor of just socket
* Source/DebuggerConnection.m:
([DebuggerConnection initWithHost:port:session:]): Change from using NSStream and its variants to SocketWrapper
([DebuggerConnection stream:handleEvent:]): Removed
Robert Sesek [Wed, 1 Aug 2007 20:20:47 +0000 (13:20 -0700)]
* Source/DebuggerConnection.h: Added _input and _output instance variables
* Source/DebuggerConnection.m:
([DebuggerConnection initWithHost: port: session:]): Set up the NSStream's and register ourselves with NSApplicationWillTerminateNotification
([DebuggerConnection applicationWillTerminate:]): New method to release the object on close
([DebuggerConnection dealloc]): Close and release the streams upon deallocation
Robert Sesek [Wed, 1 Aug 2007 19:52:33 +0000 (12:52 -0700)]
* Source/DebuggerConnection: Adding getters for _host, _port, and _session
([DebuggerConnection host]): New method
([DebuggerConnection port]): ditto
([DebuggerConnection session]): ditto
* Source/DebuggerWindowController.m:
([DebuggerWindowController initWithConnection:]): Set the window title when we load
Robert Sesek [Wed, 1 Aug 2007 19:31:30 +0000 (12:31 -0700)]
* Source/AppDelegate.m:
([AppDelegate applicationDidFinishLaunching:]): Use [AppDelegate showConnectionWindow:] to open the window instead of callling the exact same code
Robert Sesek [Wed, 1 Aug 2007 19:00:14 +0000 (12:00 -0700)]
* Source/AppDelegate:
([AppDelegate showConnectionWindow:]): Opens the connect window so another connection can be established
* English.lproj/MainMenu.nib:
- Replacing some more "New Application" junk that we no longer want
- Removing the "File" menu in place of a "Connection" menu with an "Open" command that opens the connection window
Robert Sesek [Wed, 1 Aug 2007 18:31:51 +0000 (11:31 -0700)]
* Source/ConnectWindowController.h: Adding outlets and actions for our interface
* Source/ConnectWindowController.m:
([ConnectWindowController connect:]): New function to create a new DebuggerConnection
* Source/DebuggerConnection.m/h: Added
* Source/DebuggerWindowController.m/h: Added
* English.lproj/Connect.nib: Hooking up new outlets and actions from ConnectWindowController
Robert Sesek [Wed, 1 Aug 2007 17:54:33 +0000 (10:54 -0700)]
* English.lproj/Connect.nib: Setting the File's Owner to be ConnectWindowController and the window outlet to be the window
* Source/AppDelegate.m:
([AppDelegate applicationDidFinishLaunching:]): New method to show the connect window after launch
* Source/ConnectWindowController.m/h: Adding the NSWindowController subclass for the connection window
Robert Sesek [Wed, 1 Aug 2007 16:36:43 +0000 (09:36 -0700)]
- Adding a .gitignore to hide the nib backup files
- Moving the window tha was in MainMenu.nib to be in Debugger.nib
- Added AppDelegate.[mh] and set it as the [NSApplication delegate:] in MainMenu.nib