Commit graph

1866 commits

Author SHA1 Message Date
Andrew McCallum
6aa03e5cd3 (main): Let user set registered name from command line.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1070 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:42:35 +00:00
Andrew McCallum
1716353d46 (SRCS): Added nsnotification.m.
(tcpport, remote): Force check of libobjects re-compilation.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1069 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:42:02 +00:00
Andrew McCallum
63b4e802b0 Declare new ivars and notfication strings.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1068 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:38:38 +00:00
Andrew McCallum
b13cd50a86 Several ivar name changes. Method types fixed.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1067 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:38:13 +00:00
Andrew McCallum
e2fb754a73 (in_port_class, out_port_class): New ivars replacing port_class.
Declare methods to get and set them.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1066 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:37:45 +00:00
Andrew McCallum
e209d7cc64 (SIGNATURE_FORMAT_STRING): Remove "version" from between class name
and format version.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1065 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:37:11 +00:00
Andrew McCallum
d8be8f0bd5 Fix typos.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1064 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:36:36 +00:00
Andrew McCallum
871b80f439 Many ivar names changed for clarity. Some new ivars added; see
changes to TcpPort.h.  Overhaul of how TcpOutPort's track their remote
address.  Previously they used the address of their local peer; this
is no good when encoding a TcpOutPort on the wire for D.O.; the
D.O. reciever needs a way to contact the listen'ing socket of the
TcpInPort in order to form a new connection.  _remote_in_port_address
is now the address of the remote listen'ing socket.  Added many
comments throughout.  All perror() calls changes to be more
informative.
(debug_tcp_port): Make this a static variable instead of a macro.
(init_socket_2_port): Check pre-existance of socket_2_port here
instead of callers.
([TcpInPort +newForReceivingFromPortNumber:]): Method overhauled.
Don't bind socket to INADDR_ANY because we need to be able to encode
our unique host address on the wire for D.O.
([TcpInPort -_listeningSockaddr]): New method.
([TcpInPort -receivePacketWithTimeout:]): Method overhauled.  Get the
reply port for an incoming packet from the packet prefix.
([TcpInPort -_connectedOutPortInvalidated:]): Add debugging message.
([TcpInPort -classForConnectedCoder:]): Return the TcpOutPort class,
not [self class] because we always encode a "send right" (ala Mach),
not a "recieve right".
([TcpOutPort
+newForSendingToSockaddr:withAcceptedSocket:pollingInPort:]): Method
renamed, and majorly overhauled.  Now many different combinations of
NULL argument do different things.  This is now the single designated
initializer.  We now check both the SOCKADDR and the SOCK argument to
find previously-created TcpOutPort's.  This method is also used to set
the remote_in_port_address of an already-created TcpOutPort.  There is
more error checking.
([TcpOutPort +newForSendingToPortNumber:onHost:]): Overhauled.
([TcpOutPort +_newWithAcceptedSocket:peeraddr:inPort:]): Overhauled to
work with new designated  initalizer.
([TcpOutPort -sendPacket:withTimeout:]): Use new low-level Packet
interface that deals with reply ports.
([TcpOutPort +packetClass]): New method.
(PREFIX_LENGTH_TYPE): New macro.
(PREFIX_LENGTH_SIZE): New macro.
(PREFIX_ADDRESS_TYPE): New macro.
(PREFIX_ADDRESS_SIZE): New macro.
(PREFIX_SIZE): New macro.
([TcpPacket -_initForReceivingWithSize:replyPort:]): Use 0 prefix,
because the separate +_getPacketSize... method reads those bytes.
([TcpPacket -_writeToSocket:withReplySockaddr:]): Now the prefix
includes the sockaddr of the reply port.  If ADDR is non-null, set the
reply port address portion of the prefix.
([TcpPacket +_getPacketSize:andReplyPort:fromSocket:inPort:]): New
method, replacing +readPacketSizeFromSocket:.
([TcpPacket -_fillFromSocket:]): Set Stream's eofPosition properly.
Leave Stream's position at zero.
(InPortAcceptedClientNotification): New notification string.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1063 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:35:57 +00:00
Andrew McCallum
e2b839730f Change many ivar names.
(debug_proxy): Temporarily set to 1.
([Proxy +newForRemoteTarget:connection:]): Set new ivar names.
Embellish debugging message to include connection.
([Proxy -invalidateProxy]): Return void instead of self.
([Proxy +encodeObject:withConnectedCoder:]): Overhauled, encode tag,
and change order of encoding for more efficient encoding.  Added many
comments.
([Proxy +newWithCoder:]): Likewise, to match.  Also added a check to
make sure we don't return a bogus pointer for a local object; do this
by checking with connection's +includesLocalObject; if it's not
there, raise an exception.
([Proxy -forward::]): Call the new forwarding method name in Connection.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1062 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:16:04 +00:00
Andrew McCallum
7cda86ef49 Indentation changes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1061 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:10:17 +00:00
Andrew McCallum
224b9099b9 ([LinkedList -prependObject:]): Fix return type.
([LinkedList -insertObject:atIndex:]): Likewise.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1060 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:09:55 +00:00
Andrew McCallum
d37b1c5572 ([Encoder -_coderCreateReferenceForObject:]): Insert it in
object_2_xref, not const_ptr_2_xref.
([Encoder -_encodeObject:withName:isBycopy:isForwardReference:]):
Create the in_progress_table with NSNonOwnedPointerMapKeyCallBacks,
not NSObject..; needed by distributed objects so we don't get infinite
loop with proxy objects.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1059 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:09:15 +00:00
Andrew McCallum
e14e479e6b ([Decoder +readSignatureFromCStream:getClassname:formatVersion:]):
Compare got with 6, not 2.
([Decoder -_coderCreateReferenceForObject:]): Add warning comment
about a -retain we don't want.  Fix this eventually!


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1058 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:07:17 +00:00
Andrew McCallum
14700c26f3 (default_in_port_class, default_out_port_class): New static variables,
replacing default_port_class.
(all_connections_local_targets): New map table; not used yet, though.
(debug_connection): Temporarily set to 1.
([Connection +initialize]): Set new static vars.
([Connection +setDefaultInPortClass:]): New method.
([Connection +defaultInPortClass]): New method.
([Connection +setDefaultOutPortClass:]): New method.
([Connection +defaultOutPortClass]): New method.
([Connection -init]): Use new default_in_port_class.
([Connection +new]): Likewise.
([Connection +newWithRootObject:]): Likewise.
([Connection +newRegisteringAtName:withRootObject:]): Likewise.
([Connection +rootProxyAtName:onHost:]): Likewise.
([Connection +rootProxyAtPort:]): Likewise.
([Connection +newForInPort:outPort:ancestorConnection:]): Assert the
in port.  Embellish the debugging message to print the in port and
out port.  Set the new connection's in port and out port ivars.
Register ourselves as observers of port invalidation with the
NotificationDispatcher.  Post a notification that a new connection was
created.
([Connection -runConnectionWithTimeout:]): Use
_serviceReceivedRequestsWithTimeout:.
([Connection -_newReceivedRmcWithTimeout:]): Use decodingClass, not
encodingClass.
([Connection -_serviceReceivedRequestsWithTimeout:]): Method name
changed from -newReceivedReplyRmcWithSequenceNumber:.
([Connection +includesLocalObject:]): New method; still needs more
infrastructure to work, though.
([Connection -inPortClass]): New method.
([Connection -outPortClass]): New method.
([Connection -setInPortClass:aPortClass]): New method.
([Connection -setOutPortClass:aPortClass]): New method.
([Connection -_encoderCreateReferenceForConstPtr:]): Add 1 to map
table count to get xref.
([Connection -_decoderCreateReferenceForConstPtr:]): Likewise.
([Connection -dealloc]): Remove ourselves from the NotificationDispatcher.
(ConnectionWasCreatedNotification): New notification string.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1057 72102866-910b-0410-8b05-ffd578937521
1996-03-06 14:05:36 +00:00
Andrew McCallum
0944e0909c (CONNECTED_CODER_FORMAT_VERSION): New macro.
([ConnectedEncoder
-_initForWritingWithConnection:sequenceNumber:identifier:]): Get
packetClass from the connection's outPort, not the outPortClass.
Return self.
([ConnectedDecoder
+readSignatureFromCStream:getClassname:formatVersion:]): Fill in name
and version.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1056 72102866-910b-0410-8b05-ffd578937521
1996-03-06 13:54:21 +00:00
Andrew McCallum
bfeb6dcb3b Use new SIGNATURE_FORMAT_STRING, as defined in objects/CoderPrivate.h.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1055 72102866-910b-0410-8b05-ffd578937521
1996-03-06 13:51:48 +00:00
Andrew McCallum
dba54a8bd3 New file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1054 72102866-910b-0410-8b05-ffd578937521
1996-03-03 02:18:46 +00:00
Andrew McCallum
c86c5f3459 (GNU_MFILES): Added Notification.m and NotificationDispatcher.m.
Removed SocketPort.m.
(GNU_HEADERS): Added objects/Notification.h and
objects/NotificationDispatcher.h.  Removed objects/SocketPort.h.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1053 72102866-910b-0410-8b05-ffd578937521
1996-03-03 02:16:25 +00:00
Andrew McCallum
0410aacac3 (NSConnectionDeath): New macro.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1052 72102866-910b-0410-8b05-ffd578937521
1996-03-03 01:43:35 +00:00
Andrew McCallum
6e68375b6b New interface based on GNU Notification and NotificationDispatcher.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1051 72102866-910b-0410-8b05-ffd578937521
1996-03-03 01:41:55 +00:00
Andrew McCallum
d21e400996 New implementation based on GNU NotificationDispatcher. This version
is much faster, and has some better features.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1050 72102866-910b-0410-8b05-ffd578937521
1996-03-03 01:41:20 +00:00
Andrew McCallum
1921e871e2 New implementation based on GNU Notification. This version is much
faster, and has some better features.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1049 72102866-910b-0410-8b05-ffd578937521
1996-03-03 01:41:01 +00:00
Andrew McCallum
8d63f852b9 Declare new methods and new Notification String.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1048 72102866-910b-0410-8b05-ffd578937521
1996-03-03 01:38:40 +00:00
Andrew McCallum
39e0bb14f2 ([Proxy +initialize]): Don't return self.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1047 72102866-910b-0410-8b05-ffd578937521
1996-03-03 01:37:59 +00:00
Andrew McCallum
5459c5ec71 Don't include <objc/Object.h>
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1046 72102866-910b-0410-8b05-ffd578937521
1996-03-03 01:37:39 +00:00
Andrew McCallum
e137fb1552 ([LinkedListNode -initialize]): Method removed.
([LinkedListNode -init]): Set _linked_list.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1045 72102866-910b-0410-8b05-ffd578937521
1996-03-03 01:37:08 +00:00
Andrew McCallum
bf4fd7952b ([LinkedList -insertObject:after:]): When inserting first object, set
_count to 1.
([LinkedList -insertObject:before:]): Likewise.
([LinkedList -appendObject:]): Don't claim ownership here if we're
going to call -insertObject:after: later.
([LinkedList -prependObject:]): Likewise.  And renamed from
prependElement.
([LinkedList -insertObject:atIndex:]): Likewise.
([LinkedList -newEnumState]): New method.
([LinkedList -nextObjectWithEnumState:]): Overhauled.
([LinkedList -prevObjectWithEnumState:]): Likewise.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1044 72102866-910b-0410-8b05-ffd578937521
1996-03-03 01:36:41 +00:00
Andrew McCallum
8e74895739 ([Connection +connectionsCountWithInPort:]): Fix use of END_FOR_ARRAY.
([Connection -invalidate]): Post ConnectionBecameInvalidNotification.
(ConnectionBecameInvalidNotification): New extern String.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1043 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:45:04 +00:00
Andrew McCallum
c669aba353 (ConnectionBecameInvalidNotification): Declare extern new String.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1042 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:42:42 +00:00
Andrew McCallum
2283a8beb1 (String): Make the protocol inherit from the NSObject protocol.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1041 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:41:51 +00:00
Andrew McCallum
091ab5191c (ConstantCollecting): Make is inherit from the NSObject protocol.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1040 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:41:23 +00:00
Andrew McCallum
7d8460ea0e ([TcpInPort -numberOfConnectedOutPorts]): New method.
([TcpInPort -_connectedOutPortInvalidated:]): Post an
InPortClientBecameInvalidNotification.
([TcpInPort -portNumber]): New method.
([TcpInPort -description]): New method.
([TcpOutPort +newWithAcceptedSocket:inPort:]): Fill in the _address
ivar.
([TcpOutPort -portNumber]): New method.
([TcpOutPort -description]): New method.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1039 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:40:46 +00:00
Andrew McCallum
272ac50286 ([MethodInvocation -invokeWithObject:]): Make it a
-subclassResponsibililty.
([MethodInvocation -initWithArgframe:selector:]): Raise an exception
if we are unable to get a non-null selector type string.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1038 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:38:06 +00:00
Andrew McCallum
844e785f3c ([Port -invalidate]): Post PortBecameInvalidNotification.
(PortBecameInvalidNotification): New String object.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1037 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:36:53 +00:00
Andrew McCallum
f48fa64139 ([NSGMutableDictionary -objectForKey:]): New method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1036 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:35:52 +00:00
Andrew McCallum
7f08658033 ([ConstantKeyedCollection -description]): Use object_get_class_name
instead of -name.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1035 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:35:28 +00:00
Andrew McCallum
cf45bfe7ef (NSObject (NEXSTEP)): Comment out -name method because
NSNotification.h declares it with a different type.  Eventually we'll
have to come up with a more permanent solution.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1034 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:35:05 +00:00
Andrew McCallum
2595147b64 ([DelegatePool -forward::]): Fix use of END_FOR_ARRAY.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1033 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:33:51 +00:00
Andrew McCallum
e3422df521 ([Enumerator -nextObject]): Pass pointer to ENUM_STATE.
([Enumerator -dealloc]): Likewise.
([ConstantCollection -detectObjectByInvoking:]): Use -returnValueIsTrue.
([ConstantCollection -printForDebugger]): Use object_get_class_name
instead of -name because -name is now ambiguously typed.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1032 72102866-910b-0410-8b05-ffd578937521
1996-03-03 00:33:24 +00:00
Andrew McCallum
cb13c6459c New file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1031 72102866-910b-0410-8b05-ffd578937521
1996-03-01 16:26:49 +00:00
Andrew McCallum
f918e8913a Add invocation.txt.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1030 72102866-910b-0410-8b05-ffd578937521
1996-03-01 16:26:27 +00:00
Andrew McCallum
31cbb22d03 Add tcpport executables.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1029 72102866-910b-0410-8b05-ffd578937521
1996-03-01 16:26:05 +00:00
Andrew McCallum
406f6d6931 Removed all invdividual targets for executables. Use general rule
that works for GNU make, but may not work for others.
(SRCS): Add tcpport-server.m and tcpport-client.m.
(tcpport): New target.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1028 72102866-910b-0410-8b05-ffd578937521
1996-03-01 16:25:26 +00:00
Andrew McCallum
0c2a93d89c Surrounded by #if for mach.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1027 72102866-910b-0410-8b05-ffd578937521
1996-03-01 16:21:34 +00:00
Andrew McCallum
4a9fdee68c Fix #ifndef symbol.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1026 72102866-910b-0410-8b05-ffd578937521
1996-03-01 16:21:00 +00:00
Andrew McCallum
d13ca8ae70 New file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1025 72102866-910b-0410-8b05-ffd578937521
1996-03-01 16:20:32 +00:00
Andrew McCallum
0f2b819b87 (GNU_MFILES): Add MachPort.m.
(GNU_HEADERS): Add objects/MachPort.h.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1024 72102866-910b-0410-8b05-ffd578937521
1996-03-01 16:18:08 +00:00
Andrew McCallum
f8715219c1 *** empty log message ***
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1023 72102866-910b-0410-8b05-ffd578937521
1996-03-01 16:07:42 +00:00
Andrew McCallum
87e9935a0b New file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1022 72102866-910b-0410-8b05-ffd578937521
1996-03-01 16:06:57 +00:00
Andrew McCallum
65fd114c58 Overhauled for new Port heirarchy.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1021 72102866-910b-0410-8b05-ffd578937521
1996-03-01 16:06:03 +00:00