Module: dfmc-application Synopsis: The implementation of the class, and related protocols. Author: Paul Howard Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND ///// // The concrete implementation of . define sealed abstract class () slot machine-debug-connection :: ; slot connection-open? :: = #t; constant slot process-mappings :: = make(); end class; define sealed class () end class; define sealed class () constant slot machine-password :: , required-init-keyword: password:; end class; ///// MAKE (Dylan) // Ensures that the class is instantiable by clients. define sideways method make (c == , #rest args, #key network-address = #f, #all-keys) => (m) if (network-address) apply(make, , args) else apply(make, , args) end if; end method; ///// INITIALIZE (Dylan) define method initialize (m :: , #key) => () next-method(); block () m.machine-debug-connection := make(, network-address: m.machine-network-address, password: m.machine-password); exception () m.connection-open? := #f; error(make(, network-address: m.machine-network-address)) exception () m.connection-open? := #f; error(make(, password: m.machine-password)) end block; end method; define method initialize (m :: , #key) => () next-method(); m.machine-debug-connection := host-machine() end method; ///// MACHINE-CONNECTION-OPEN? (Environment Protocols) // The back-end's implementation. define method machine-connection-open? (m :: ) => (well? :: ) m.connection-open? end method; ///// CLOSE-CONNECTION-TO-MACHINE (Environment Protocols) // Releases all resources associated with the connection, and ensures // that the connection cannot be used again. define method close-connection-to-machine (m :: ) => () next-method(); m.connection-open? := #f; end method; define method close-connection-to-machine (m :: ) => () next-method(); close-remote-debugger-connection(m.machine-debug-connection) end method; ///// MACHINE-HOSTNAME (Environment Protocols) define method machine-hostname (m :: ) => (h :: ) m.machine-debug-connection.connection-hostname end method;