diff --git a/ChangeLog b/ChangeLog index 87b6e620c..c5268ed2c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,8 @@ Wed Oct 21 13:30:00 1998 Richard Frith-Macdonald src/NSString.m: Added (nonstandard) ([-boolValue]) method src/include/NSData.h: Added ([-relinquishAllocatedBytesFromZone:]) src/include/NSString.h: Added (nonstandard) ([-boolValue]) method + src/include/NSPortMessage.h: Added (as yet unused) class. + src/NSPortMessage.m: Added (as yet unused) skeleton implementation. Thu Oct 17 08:15:00 1998 Richard Frith-Macdonald diff --git a/Headers/gnustep/base/NSPortMessage.h b/Headers/gnustep/base/NSPortMessage.h new file mode 100644 index 000000000..8c23ff8dc --- /dev/null +++ b/Headers/gnustep/base/NSPortMessage.h @@ -0,0 +1,54 @@ +/* NSPortMessage interface for GNUstep + Copyright (C) 1998 Free Software Foundation, Inc. + + Written by: Richard frith-Macdonald + Created: October 1998 + + This file is part of the GNUstep Base Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef __NSPortMessage_h_GNUSTEP_BASE_INCLUDE +#define __NSPortMessage_h_GNUSTEP_BASE_INCLUDE + +#include +#include + +@interface NSPortMessage : NSObject +{ + unsigned msgid; + unsigned sequence; + NSMutableArray *components; +} +- (id) initWithMachMessage: (void*)buffer; +- (id) initWithSendPort: (NSPort*)aPort + receivePort: (NSPort*)anotherPort + components: (NSArray*)items; +- (void) sendBeforeDate: (NSDate*)when; +- (NSArray*) components; +- (NSPort*) sendPort; +- (NSPort*) receivePort; +- (void) setMsgid: (unsigned)anId; +- (unsigned) msgid; +@end + +@interface NSPortMessage (GNUstep) +- (void) setSequence: (unsigned)seq; +- (unsigned) sequence; +@end + +#endif + diff --git a/Source/NSPortMessage.m b/Source/NSPortMessage.m new file mode 100644 index 000000000..5d7af1c3a --- /dev/null +++ b/Source/NSPortMessage.m @@ -0,0 +1,112 @@ +/* Implementation of NSPortMessage for GNUstep + Copyright (C) 1998 Free Software Foundation, Inc. + + Written by: Richard frith-Macdonald + Created: October 1998 + + This file is part of the GNUstep Base Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include + +@implementation NSPortMessage + +- (void) dealloc +{ + [components release]; + [super dealloc]; +} + +/* PortMessages MUST be initialised with ports and data. */ +- (id) init +{ + [self notImplemented: _cmd]; + return nil; +} + +- (id) initWithMachMessage: (void*)buffer +{ + [self notImplemented: _cmd]; + return nil; +} + +/* This is the designated initialiser. */ +- (id) initWithSendPort: (NSPort*)aPort + receivePort: (NSPort*)anotherPort + components: (NSArray*)items +{ + self = [super init]; + if (self) { + components = [[NSMutableArray allocWithZone: [self zone]] + initWithCapacity: [items count] + 2]; + [components addObject: aPort]; + [components addObject: anotherPort]; + [components addObjectsFromArray: items]; + } + return self; +} + +- (void) sendBeforeDate: (NSDate*)when +{ + [self notImplemented: _cmd]; +} + +- (NSArray*) components +{ + NSRange r = NSMakeRange(2, [components count]-2); + + return [components subarrayWithRange: r]; +} + +- (NSPort*) sendPort +{ + return [components objectAtIndex: 0]; +} + +- (NSPort*) receivePort +{ + return [components objectAtIndex: 1]; +} + +- (void) setMsgid: (unsigned)anId +{ + msgid = anId; +} + +- (unsigned) msgid +{ + return msgid; +} +@end + +@implementation NSPortMessage (GNUstep) +- (void) setSequence: (unsigned)seq +{ + sequence = seq; +} + +- (unsigned) sequence +{ + return sequence; +} +@end +