FOREIGN MODULE sun_net;

IMPORT
    java_net := "java.net",
    java_lang := "java.lang",
    java_io := "java.io",
    java_security := "java.security",
    java_util := "java.util",
    java_util_concurrent_atomic := "java.util.concurrent.atomic";

TYPE

  ApplicationProxy* = POINTER TO RECORD (java_net.Proxy)
                      STATIC
                        PROCEDURE create*(p0 : java_net.Proxy) : ApplicationProxy;
                      END;

  ConnectionResetException* = POINTER TO EXTENSIBLE RECORD (java_net.SocketException)
                              STATIC
                                PROCEDURE Init*() : ConnectionResetException,CONSTRUCTOR;
                                PROCEDURE Init*(p0 : java_lang.String) : ConnectionResetException,CONSTRUCTOR;
                              END;

  InetAddressCachePolicy* = POINTER TO RECORD (java_lang.Object)
                            STATIC
                              DEFAULT_POSITIVE*    = 30;
                              FOREVER*             = -1;
                              NEVER*               = 0;
                              PROCEDURE get*() : INTEGER;
                              PROCEDURE getNegative*() : INTEGER;
                              PROCEDURE Init*() : InetAddressCachePolicy,CONSTRUCTOR;
                              PROCEDURE setIfNotSet*(p0 : INTEGER);
                              PROCEDURE setNegativeIfNotSet*(p0 : INTEGER);
                            END;

  NetProperties* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                   STATIC
                     PROCEDURE get*(p0 : java_lang.String) : java_lang.String;
                     PROCEDURE getBoolean*(p0 : java_lang.String) : java_lang.Boolean;
                     PROCEDURE getInteger*(p0 : java_lang.String;
                                           p1 : INTEGER) : java_lang.Integer;
                   END;

  NetworkClient* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                     proxy!          : java_net.Proxy;
                     serverSocket!   : java_net.Socket;
                     serverOutput*   : java_io.PrintStream;
                     serverInput*    : java_io.InputStream;
                     readTimeout!    : INTEGER;
                     connectTimeout! : INTEGER;
                   STATIC
                     defaultConnectTimeout! : INTEGER;
                     defaultSoTimeout!      : INTEGER;
                     encoding!              : java_lang.String;
                     PROCEDURE Init*() : NetworkClient,CONSTRUCTOR;
                     PROCEDURE Init*(p0 : java_lang.String;
                                     p1 : INTEGER) : NetworkClient,CONSTRUCTOR;
                   END;

  NetworkServer* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + java_lang.Runnable + java_lang.Cloneable)    (* Typebound Procedures *)
                     clientSocket* : java_net.Socket;
                     clientOutput* : java_io.PrintStream;
                     clientInput*  : java_io.InputStream;
                   STATIC
                     PROCEDURE Init*() : NetworkServer,CONSTRUCTOR;
                     PROCEDURE main*(IN  p0 : ARRAY OF java_lang.String);
                   END;

  ProgressEvent* = POINTER TO EXTENSIBLE RECORD (java_util.EventObject)    (* Typebound Procedures *)
                   STATIC
                     PROCEDURE Init*(p0 : ProgressSource;
                                     p1 : java_net.URL;
                                     p2 : java_lang.String;
                                     p3 : java_lang.String;
                                     p4 : ProgressSource$State;
                                     p5 : INTEGER;
                                     p6 : INTEGER) : ProgressEvent,CONSTRUCTOR;
                   END;

  ProgressListener* = POINTER TO INTERFACE RECORD (java_lang.Object + java_util.EventListener)    (* Typebound Procedures *)
                      END;

  ProgressMeteringPolicy* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                            END;

  ProgressMonitor* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                     STATIC
                       PROCEDURE getDefault*() : ProgressMonitor;
                       PROCEDURE Init*() : ProgressMonitor,CONSTRUCTOR;
                       PROCEDURE setDefault*(p0 : ProgressMonitor);
                       PROCEDURE setMeteringPolicy*(p0 : ProgressMeteringPolicy);
                     END;

  ProgressSource* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                    STATIC
                      PROCEDURE Init*(p0 : java_net.URL;
                                      p1 : java_lang.String;
                                      p2 : INTEGER) : ProgressSource,CONSTRUCTOR;
                      PROCEDURE Init*(p0 : java_net.URL;
                                      p1 : java_lang.String) : ProgressSource,CONSTRUCTOR;
                    END;

  ProgressSource$State* = POINTER TO RECORD (java_lang.Enum)
                          STATIC
                            CONNECTED* : ProgressSource$State;
                            DELETE*    : ProgressSource$State;
                            NEW*       : ProgressSource$State;
                            UPDATE*    : ProgressSource$State;
                            PROCEDURE valueOf*(p0 : java_lang.String) : ProgressSource$State;
                            PROCEDURE values*() : POINTER TO ARRAY OF ProgressSource$State;
                          END;

  ResourceManager* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                     STATIC
                       PROCEDURE afterUdpClose*();
                       PROCEDURE beforeUdpCreate*();
                       PROCEDURE Init*() : ResourceManager,CONSTRUCTOR;
                     END;

  TelnetInputStream* = POINTER TO EXTENSIBLE RECORD (java_io.FilterInputStream)    (* Typebound Procedures *)
                         binaryMode* : BOOLEAN;
                       STATIC
                         PROCEDURE Init*(p0 : java_io.InputStream;
                                         p1 : BOOLEAN) : TelnetInputStream,CONSTRUCTOR;
                       END;

  TelnetOutputStream* = POINTER TO EXTENSIBLE RECORD (java_io.BufferedOutputStream)    (* Typebound Procedures *)
                          binaryMode* : BOOLEAN;
                        STATIC
                          PROCEDURE Init*(p0 : java_io.OutputStream;
                                          p1 : BOOLEAN) : TelnetOutputStream,CONSTRUCTOR;
                        END;

  TelnetProtocolException* = POINTER TO EXTENSIBLE RECORD (java_io.IOException)
                             STATIC
                               PROCEDURE Init*(p0 : java_lang.String) : TelnetProtocolException,CONSTRUCTOR;
                             END;

  TransferProtocolClient* = POINTER TO EXTENSIBLE RECORD (NetworkClient)    (* Typebound Procedures *)
                              serverResponse! : java_util.Vector;
                              lastReplyCode!  : INTEGER;
                            STATIC
                              PROCEDURE Init*() : TransferProtocolClient,CONSTRUCTOR;
                              PROCEDURE Init*(p0 : java_lang.String;
                                              p1 : INTEGER) : TransferProtocolClient,CONSTRUCTOR;
                            END;

  URLCanonicalizer* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                      STATIC
                        PROCEDURE Init*() : URLCanonicalizer,CONSTRUCTOR;
                      END;




PROCEDURE (self:NetworkClient) closeServer*(),NEW,EXTENSIBLE;

PROCEDURE (self:NetworkClient) createSocket!() : java_net.Socket,NEW,EXTENSIBLE;

PROCEDURE (self:NetworkClient) doConnect!(p0 : java_lang.String;
                                          p1 : INTEGER) : java_net.Socket,NEW,EXTENSIBLE;

PROCEDURE (self:NetworkClient) getConnectTimeout*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:NetworkClient) getLocalAddress!() : java_net.InetAddress,NEW,EXTENSIBLE;

PROCEDURE (self:NetworkClient) getReadTimeout*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:NetworkClient) openServer*(p0 : java_lang.String;
                                           p1 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:NetworkClient) serverIsOpen*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:NetworkClient) setConnectTimeout*(p0 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:NetworkClient) setReadTimeout*(p0 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:NetworkServer) clientIsOpen*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:NetworkServer) clone*() : java_lang.Object,EXTENSIBLE;

PROCEDURE (self:NetworkServer) close*(),NEW,EXTENSIBLE;

PROCEDURE (self:NetworkServer) run*(),NEW;

PROCEDURE (self:NetworkServer) serviceRequest*(),NEW,EXTENSIBLE;

PROCEDURE (self:NetworkServer) startServer*(p0 : INTEGER),NEW;

PROCEDURE (self:ProgressEvent) getContentType*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressEvent) getExpected*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressEvent) getMethod*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressEvent) getProgress*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressEvent) getState*() : ProgressSource$State,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressEvent) getURL*() : java_net.URL,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressEvent) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:ProgressListener) progressFinish*(p0 : ProgressEvent),NEW,ABSTRACT;

PROCEDURE (self:ProgressListener) progressStart*(p0 : ProgressEvent),NEW,ABSTRACT;

PROCEDURE (self:ProgressListener) progressUpdate*(p0 : ProgressEvent),NEW,ABSTRACT;

PROCEDURE (self:ProgressMeteringPolicy) getProgressUpdateThreshold*() : INTEGER,NEW,ABSTRACT;

PROCEDURE (self:ProgressMeteringPolicy) shouldMeterInput*(p0 : java_net.URL;
                                                          p1 : java_lang.String) : BOOLEAN,NEW,ABSTRACT;

PROCEDURE (self:ProgressMonitor) addProgressListener*(p0 : ProgressListener),NEW,EXTENSIBLE;

PROCEDURE (self:ProgressMonitor) getProgressSources*() : java_util.ArrayList,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressMonitor) getProgressUpdateThreshold*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressMonitor) registerSource*(p0 : ProgressSource),NEW,EXTENSIBLE;

PROCEDURE (self:ProgressMonitor) removeProgressListener*(p0 : ProgressListener),NEW,EXTENSIBLE;

PROCEDURE (self:ProgressMonitor) shouldMeterInput*(p0 : java_net.URL;
                                                   p1 : java_lang.String) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressMonitor) unregisterSource*(p0 : ProgressSource),NEW,EXTENSIBLE;

PROCEDURE (self:ProgressMonitor) updateProgress*(p0 : ProgressSource),NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) beginTracking*(),NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) clone*() : java_lang.Object,EXTENSIBLE;

PROCEDURE (self:ProgressSource) close*(),NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) connected*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) finishTracking*(),NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) getContentType*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) getExpected*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) getMethod*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) getProgress*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) getState*() : ProgressSource$State,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) getURL*() : java_net.URL,NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) setContentType*(p0 : java_lang.String),NEW,EXTENSIBLE;

PROCEDURE (self:ProgressSource) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:ProgressSource) updateProgress*(p0 : INTEGER;
                                                p1 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:TelnetInputStream) read*(IN  p0 : ARRAY OF BYTE) : INTEGER,EXTENSIBLE;

PROCEDURE (self:TelnetInputStream) read*(IN  p0 : ARRAY OF BYTE;
                                             p1 : INTEGER;
                                             p2 : INTEGER) : INTEGER,EXTENSIBLE;

PROCEDURE (self:TelnetInputStream) read*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:TelnetInputStream) setStickyCRLF*(p0 : BOOLEAN),NEW,EXTENSIBLE;

PROCEDURE (self:TelnetOutputStream) setStickyCRLF*(p0 : BOOLEAN),NEW,EXTENSIBLE;

PROCEDURE (self:TelnetOutputStream) write*(IN  p0 : ARRAY OF BYTE;
                                               p1 : INTEGER;
                                               p2 : INTEGER),EXTENSIBLE;

PROCEDURE (self:TelnetOutputStream) write*(p0 : INTEGER),EXTENSIBLE;

PROCEDURE (self:TransferProtocolClient) getResponseString*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:TransferProtocolClient) getResponseStrings*() : java_util.Vector,NEW,EXTENSIBLE;

PROCEDURE (self:TransferProtocolClient) readServerResponse*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:TransferProtocolClient) sendServer*(p0 : java_lang.String),NEW,EXTENSIBLE;

PROCEDURE (self:URLCanonicalizer) canonicalize*(p0 : java_lang.String) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:URLCanonicalizer) hasProtocolName*(p0 : java_lang.String) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:URLCanonicalizer) isSimpleHostName!(p0 : java_lang.String) : BOOLEAN,NEW,EXTENSIBLE;

END sun_net.