netobjrt/src/TransportRegistry.i3


Copyright (C) 1994, Digital Equipment Corp.
TransportRegistry.i3
 The TransportRegistry interface provides the network objects runtime
   with access to the registry of transport  classes known within the
   current runtime environment. 
   

INTERFACE TransportRegistry;

IMPORT NetObj, Transport;

PROCEDURE LocationFromAdr(
  where: NetObj.Address) : Transport.Location;
LocationFromAdr calls tr.fromEndpoint for each member of where for each transport tr known to the runtime. If any such call returns a non-NIL result, it is returned. Otherwise, LocationFromAdr returns NIL.

PROCEDURE LocalAdr() : NetObj.Address;
LocalAdr calls tr.toEndpoint for each transport tr known to the runtime, and returns the list as a NetObj.Addresss.

PROCEDURE Iterate() : Iterator;
Iterate returns an Iterator over the known transports.

TYPE
  Iterator <: IteratorPublic;
  IteratorPublic = OBJECT METHODS
    next (VAR (*OUT*) tr: Transport.T): BOOLEAN;
  END;
If it is the result of the call Iterate(), then the call it.next(tr) selects a Transport.T that has not already been returned by it, sets tr to that Transport.T, and returns TRUE. If no transports remain, the call returns FALSE without setting tr. It is a checked runtime error to call next after it has returned FALSE.

END TransportRegistry.