Up

NSPortNameServer class reference

Authors

Richard Frith-Macdonald (richard@brainstorm.co.uk)

Version: 1.62

Date: 2005/11/28 15:41:33

Copyright: (C) 1998,1999,2003 Free Software Foundation, Inc.


Contents -

  1. Software documentation for the NSMessagePortNameServer class
  2. Software documentation for the NSPortNameServer class
  3. Software documentation for the NSSocketPortNameServer class
  4. Software documentation for the NSPortNameServer(GNUstep) category

Software documentation for the NSMessagePortNameServer class

NSMessagePortNameServer : NSPortNameServer

Declared in:
Foundation/NSPortNameServer.h
Availability: OpenStep

Subclass of NSPortNameServer taking/returning instances of NSMessagePort . Port removal functionality is not supported; if you want to cancel a service, you have to destroy the port (invalidate the NSMessagePort given to [NSPortNameServer -registerPort:forName:] ).
Method summary

sharedInstance 

+ (id) sharedInstance;
Availability: OpenStep

Obtain single instance for this host.

Software documentation for the NSPortNameServer class

NSPortNameServer : NSObject

Declared in:
Foundation/NSPortNameServer.h
Availability: OpenStep

The abstract port name server class. This defines an API for working with port name servers... objects used to manage access to ports in the distributed objects system (see NSConnection ).
Method summary

systemDefaultPortNameServer 

+ (id) systemDefaultPortNameServer;
Availability: OpenStep

Returns the default port name server for the process.
This is a nameserver for host-local connections private to the current user. If you with to create public connections or connections to other hosts, you must use [NSSocketPortNameServer +sharedInstance] instead.

This default behavior may be altered by setting the NSPortIsMessagePort user default to NO, in which case an NSSocketPortNameServer will be used as the default system name server and you will have to use [NSMessagePortNameServer +sharedInstance] for host-local, private connections.


portForName: 

- (NSPort*) portForName: (NSString*)name;
Availability: OpenStep

Looks up the port with the specified name on the local host and returns it or nil if no port is found with that name.
Different nameservers have different namespaces appropriate to the type of port they deal with, so failing to find a named port with one nameserver does not guarantee that a port does with that name does not exist.
This is a convenience method calling -portForName:onHost: with a nil host argument.

portForName: onHost: 

- (NSPort*) portForName: (NSString*)name onHost: (NSString*)host;
Availability: OpenStep

Subclasses should override this method.
Looks up the port with the specified name on host and returns it or nil if no port is found with that name.
Different nameservers have different namespaces appropriate to the type of port they deal with, so failing to find a named port with one nameserver does not guarantee that a port does with that name does not exist.

registerPort: forName: 

- (BOOL) registerPort: (NSPort*)port forName: (NSString*)name;
Availability: OpenStep

Subclasses should override this method.
Registers port with the supplied name, so that other processes can look it up to contact it. A port may be registered with more than one name by making multiple calls to this method.
Returns YES on success, NO otherwise.
The common cause for failure is that another port is already registered with the name. Raises NSInvalidArgumentException if given bad arguments.

removePortForName: 

- (BOOL) removePortForName: (NSString*)name;
Availability: OpenStep

Subclasses should override this method.
Removes any port registration for the supplied name (whether registered in the current process or another).
The common cause for failure is that no port is registered with the name.
Raises NSInvalidArgumentException if given bad arguments.

Software documentation for the NSSocketPortNameServer class

NSSocketPortNameServer : NSPortNameServer

Declared in:
Foundation/NSPortNameServer.h
Availability: OpenStep

This is the nameserver handling ports used for distributed objects communications (see NSConnection ) between hosts.
Use the [NSSocketPortNameServer +sharedInstance] method to get a nameserver, rather than allocating and initialising one.

Instance Variables

Method summary

sharedInstance 

+ (id) sharedInstance;
Availability: OpenStep

Returns the shared name server object for NSSocketPort objects.

portForName: onHost: 

- (NSPort*) portForName: (NSString*)name onHost: (NSString*)host;
Availability: OpenStep

Concrete implementation of [NSPortNameServer -portForName:onHost:]
Looks up and returns a port with the specified name and host.
If host is nil or an empty string, this performs a lookup for a port on the current host.
If host is an asterisk ('*') then the lookup returns the first port found with the specified name on any machine on the local network.
Returns nil if no matching port could be found.

registerPort: forName: 

- (BOOL) registerPort: (NSPort*)port forName: (NSString*)name;
Availability: OpenStep

Concrete implementation of [NSPortNameServer -registerPort:forName:]
Registers the port with the specified name such that it is available on all the IP addresses of the host on which the process is running.
Returns YES on success, NO on failure (eg the name is already in use or there is a problem registering for some reason).

removePortForName: 

- (BOOL) removePortForName: (NSString*)name;
Availability: OpenStep

Concrete implementation of [NSPortNameServer -removePortForName:]
Unregisters the specified name from any associated port on the local host.
Returns YES on success, NO on failure.



Instance Variables for NSSocketPortNameServer Class

_nameMap

@protected NSMapTable* _nameMap;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_portMap

@protected NSMapTable* _portMap;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.




Software documentation for the NSPortNameServer(GNUstep) category

NSPortNameServer(GNUstep)

Declared in:
Foundation/NSPortNameServer.h
Availability: Base 0.0.0

Some extensions to make cleaning up port names easier.
Method summary

namesForPort: 

- (NSArray*) namesForPort: (NSPort*)port;
Availability: Base 0.0.0

Subclasses should override this method.
Return all names that have been registered with the receiver for port.

removePort: 

- (BOOL) removePort: (NSPort*)port;
Availability: Base 0.0.0

Remove all names registered with the receiver for port. Probably inefficient... subclasses might want to override this.

removePort: forName: 

- (BOOL) removePort: (NSPort*)port forName: (NSString*)name;
Availability: Base 0.0.0

Subclasses should override this method.
Remove the name if and only if it is registered with the receiver for the given port.


Up