From c1dc61cc189c0eb83fe8027c70949b9c4dcdbd24 Mon Sep 17 00:00:00 2001 From: Alexander Strange Date: Fri, 28 Feb 2003 01:35:25 +0000 Subject: [PATCH] Wrote a simple FIFO queue class --- ITAppleEventCenter.h | 2 - ITAppleEventCenter.m | 169 +------------------------------------------ ITByteStream.h | 22 ++++++ ITByteStream.m | 62 ++++++++++++++++ ITInetSocket.h | 4 +- ITInetSocket.m | 4 +- 6 files changed, 88 insertions(+), 175 deletions(-) create mode 100755 ITByteStream.h create mode 100755 ITByteStream.m diff --git a/ITAppleEventCenter.h b/ITAppleEventCenter.h index 48327a9..f2eae2a 100755 --- a/ITAppleEventCenter.h +++ b/ITAppleEventCenter.h @@ -33,9 +33,7 @@ - (void)sendAEWithEventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn; - (NSString*)sendAEWithSendString:(NSString*)nssendString eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn; -- (NSString*)sendAEWithSendString:(NSString*)nssendString eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn fixForAECrappiness:(long)fix; - (long)sendAEWithSendStringForNumber:(NSString*)string eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn; -- (long)sendAEWithSendStringForNumber:(NSString*)string eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn fixForAECrappiness:(long)fix; - (AEArrayDataPointer)sendAEWithSendStringForArray:(NSString*)string eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn; - (void)printCarbonDesc:(AEDesc*)desc; diff --git a/ITAppleEventCenter.m b/ITAppleEventCenter.m index 562dbc7..2466e43 100755 --- a/ITAppleEventCenter.m +++ b/ITAppleEventCenter.m @@ -613,171 +613,4 @@ return result; return result; } -- (long)sendAEWithSendStringForNumber:(NSString*)string eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn fixForAECrappiness:(long)fix -{ - //Add error checking... - AEEventClass eClass = *((unsigned long*)[eventClass UTF8String]); - AEEventID eID = *((unsigned long*)[eventID UTF8String]); - - const char *sendString = [string UTF8String]; - SInt32 result = 0; - - AppleEvent sendEvent, replyEvent; - - DescType resultType; - Size resultSize, charResultSize; - - AEBuildError buildError; - OSStatus err; - OSErr err2, err3; - /* - if ((GetProcessPID(&psn, &pid) == noErr) && (pid == 0)) { - NSLog(@"Error getting PID of application! Exiting."); - return nil; - } - */ - //NSLog(@"_sendString: %s", sendString); - - err = AEBuildAppleEvent(eClass, eID, typeProcessSerialNumber,(ProcessSerialNumber*)&psn, sizeof(ProcessSerialNumber), kAutoGenerateReturnID, 0, &sendEvent, &buildError, sendString); -[self printCarbonDesc:&sendEvent]; - //now AEBuildAppleEvent has inserted a bogus integer in there for no reason, so we fix it ourselves. - { //this sucks -//hey, i'm coding this in pico, sccrew indention -char *buf; -Size s,i; -s = AESizeOfFlattenedDesc(&sendEvent); -buf = malloc(s); -AEFlattenDesc(&sendEvent,buf,s,NULL); -AEDisposeDesc(&sendEvent); -for (i=0;i + +/*! @class ITByteStream + * @abstract A FIFO bytestream + */ + +@interface ITByteStream : NSObject { + NSMutableData *data; +} +-(id) initWithStream:(ITByteStream*)stream; +-(int) availableDataLength; +-(NSData*) readDataOfLength:(int)length; +-(void) writeData:(NSData*)data; +@end diff --git a/ITByteStream.m b/ITByteStream.m new file mode 100755 index 0000000..301d851 --- /dev/null +++ b/ITByteStream.m @@ -0,0 +1,62 @@ +// +// ITByteStream.h +// ITFoundation +// +// Created by Alexander Strange on Thu Feb 27 2003. +// Copyright (c) 2003 __MyCompanyName__. All rights reserved. +// + +#import "ITByteStream.h" + +// TODO: Add NSCopying/NSCoding support + +@implementation ITByteStream +-(id) init +{ + if (self == [super init]) + { + data = [[NSMutableData alloc] init]; + } + return self; +} + +-(id) initWithStream:(ITByteStream*)stream +{ + if (self == [super init]) + { + data = [stream->data copy]; + } + return 0; +} + +-(void) dealloc +{ + [data release]; + [super dealloc]; +} + +-(int) availableDataLength +{ + return [data length]; +} + +-(NSData*) readDataOfLength:(int)length +{ + NSData *ret, *tmp; + NSRange range = {0, length}; + ret = [data subdataWithRange:range]; +#if MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED + [data replaceBytesInRange:range withBytes:nil length:0]; // this should delete off the end. should test. +#else + range = {length, [data length]}; + tmp = [data subdataWithRange:range]; + [data setData:tmp]; // maybe i should add a lock to this? it would be bad if someone was writing when it was reading... +#endif + return ret; +} + +-(void) writeData:(NSData*)_data +{ + [data appendData:_data]; +} +@end diff --git a/ITInetSocket.h b/ITInetSocket.h index bcf30f5..aad407f 100755 --- a/ITInetSocket.h +++ b/ITInetSocket.h @@ -30,7 +30,7 @@ typedef enum { @protocol ITInetSocketOwner - (void) dataRecieved:(in NSData*)data; -- (void) errorOccured:(int)err during:(ITInetSocketState)state; +- (void) errorOccured:(ITInetSocketError)err during:(ITInetSocketState)state; - (void) finishedConnecting; @end @@ -43,11 +43,9 @@ typedef enum { NSData *writeBuffer; ITInetSocketState state; } -// Init -(id) initWithFD:(int)fd delegate:(id)d; -(id) initWithDelegate:(id)d; -(void) connectToHost:(NSString*)host onPort:(short)port; -(ITInetSocketState) state; - @end diff --git a/ITInetSocket.m b/ITInetSocket.m index 7902782..09f94f5 100755 --- a/ITInetSocket.m +++ b/ITInetSocket.m @@ -85,14 +85,14 @@ "Protocol = %x\n" "Canonname = %s\n" "Sockaddr = \n" - "\{\n" + "{\n" "\tLength = %x\n" "\tFamily = %x\n" "\tPort = %d\n" "\tFlowinfo = %x\n" "\tAddr = {%#lx,%#lx,%#lx,%#lx}\n" "\tScope = %x\n" - "\}\n" + "}\n" "Next = "; NSString *nsfmt = [NSString stringWithCString:cfmt]; NSMutableString *buf = [[[NSMutableString alloc] init] autorelease]; -- 2.20.1