[go: up one dir, main page]

DE69405408T2 - OBJECT-ORIENTED SYSTEM AND METHOD FOR HARDWARE CONFIGURATION - Google Patents

OBJECT-ORIENTED SYSTEM AND METHOD FOR HARDWARE CONFIGURATION

Info

Publication number
DE69405408T2
DE69405408T2 DE69405408T DE69405408T DE69405408T2 DE 69405408 T2 DE69405408 T2 DE 69405408T2 DE 69405408 T DE69405408 T DE 69405408T DE 69405408 T DE69405408 T DE 69405408T DE 69405408 T2 DE69405408 T2 DE 69405408T2
Authority
DE
Germany
Prior art keywords
hardware
objects
connector
hardware configuration
configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69405408T
Other languages
German (de)
Other versions
DE69405408D1 (en
Inventor
Glenn P. Cupertino Ca 95051 Andert
George W. Fremont Ca 94538 Norman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Object Technology Licensing Corp
Original Assignee
Object Technology Licensing Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Object Technology Licensing Corp filed Critical Object Technology Licensing Corp
Application granted granted Critical
Publication of DE69405408D1 publication Critical patent/DE69405408D1/en
Publication of DE69405408T2 publication Critical patent/DE69405408T2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION Gebiet der ErfindungField of the invention

Die vorliegende Erfindung betrifft im allgemeinen die Konfiguration von Hardware in einem Computersystem und insbesondere ein objektorientiertes System und ein Verfahren für die Hardwarekonfiguration in einem Computersystem.The present invention relates generally to configuration of hardware in a computer system and more particularly to an object-oriented system and method for hardware configuration in a computer system.

Stand der TechnikState of the art

Der Begriff "Hardwarekonfiguration" hat viele Bedeutungen. Im Benutzerbereich eines Computersystems bezieht sich die Hardwarekonfiguration auf die Konfiguration von Computerkomponenten, die im allgemeinen für die Benutzer sichtbar sind (dies wird als benutzerorientierte Hardwarekonfiguration bezeichnet). Dies umfaßt Aufgaben wie zum Beispiel das Einstellen der Doppelklickgeschwindigkeit für eine Maus, das Formatieren einer Diskette, das Anschließen eines Modems an einen seriellen Anschluß oder das Austauschen eines bestehenden Anschlusses.The term "hardware configuration" has many meanings. In the user space of a computer system, hardware configuration refers to the configuration of computer components that are generally visible to users (this is called user-oriented hardware configuration). This includes tasks such as setting the double-click speed for a mouse, formatting a floppy disk, connecting a modem to a serial port, or replacing an existing port.

Im Eingabe-/Ausgabe- (E/A) Bereich eines Computersystems bezieht sich die Hardwarekonfiguration auf Dienste tiefer Ebene, welche den Zugriff auf integrierte Schaltungen (ICs) steuern oder regeln, sowie auf andere Hardware-Ressourcen tiefer Ebene (dies wird als E/A-Hardwarekonfiguration bezeichnet)In the input/output (I/O) area of a computer system, hardware configuration refers to low-level services that control or regulate access to integrated circuits (ICs) and other low-level hardware resources (this is called I/O hardware configuration)

Die Europäische Patentanmeldung 0 398 644 mit dem Titel Data Processing System Comprising System Configuration Means beschreibt ein Mittel zur Konfiguration eines Betriebssystems mit Hilfe einer objektorientierten Datenbank. Diese Anmeldung offenbart ein dynamisch konfigurierbares System, das die Initialprogrammlader (IPL) und Kernelerneuerungen zum Zweck der Einstellung der Systemkonfiguration minimiert. Dies wird erreicht durch Schaffung von Mitteln zur Durchführung dynamischer Bindung/Loslösung von Einrichtungstreibern an/vom Kernel während des IPL. Die Anmeldung beschreibt ein System, das keine Klassenhierarchien verwendet. Stattdessen werden Einrichtungsinformationen in einer Hauptkonfigurationsdatenbank 15 (FIG. 1) gespeichert. Wenngleich die Referenz die Datenbanken als "objektorientiert" beschreibt, handelt es sich dabei tatsächlich um "objektbasierte" Sammlungen von Objekten. Eine erste Objektklasse ist ein solche, bei der es sich um eine vordefinierte Objektklasse 300 (FIG. 1) handelt und die Objekte enthält, welche alle im Hardware-"Universum" möglichen Hardware-Einrichtungen repräsentieren. Sie beschreibt auch eine zweite Objektklasse, bei der es sich um eine maßgeschneiderte Objektklasse 500 handelt und die aus einer Gruppe entsprechend vordefinierter Objekte besteht, die maßgeschneidert sind, um die aktuellen Einrichtungskonfigurationen in einem bestimmten System zu repräsentieren (d.h. sie repräsentiert die aktuellen Einrichtungen, die vom Universum verwendet werden).European patent application 0 398 644 entitled Data Processing System Comprising System Configuration Means describes a means for configuring a operating system using an object-oriented database. This application discloses a dynamically configurable system that minimizes initial program loaders (IPL) and kernel updates for the purpose of setting the system configuration. This is accomplished by providing a means to perform dynamic binding/debinding of device drivers to/from the kernel during the IPL. The application describes a system that does not use class hierarchies. Instead, device information is stored in a master configuration database 15 (FIG. 1). Although the reference describes the databases as "object-oriented," they are actually "object-based" collections of objects. A first object class is one that is a predefined object class 300 (FIG. 1) and contains objects that represent all hardware devices possible in the hardware "universe." It also describes a second object class, which is a custom object class 500, and which consists of a set of appropriately predefined objects tailored to represent the current facility configurations in a particular system (i.e., it represents the current facilities used by the universe).

Während des System-IPL überprüft ein Konfigurationsmanager 10 (FIG. 1) das physikalische Hardware-System und sucht alle Einrichtungen, die an das System angeschlossen sind. Wenn eine Hardwarekomponente gefunden wird, aber in der Gruppe der maßgeschneiderten Objektklassen 500 nicht widergespiegelt wird, greift der Konfigurationsmanager 10 auf die vordefinierten Einrichtungsobjektklassen 300 zu, um eine Objektklasse zu finden, welche die neue Hardwarekomponente repräsentiert, und ruft ein sogenanntes Definitionsverfahren des Objektes auf, um eine Objektinstanz von der vordefinierten Klasse 300 zu definieren. Der Konfigurationsmanager repräsentiert danach die Objektinstanz in der maßgeschneiderten Klasse 500 mit allen entsprechenden Attributen.During system IPL, a configuration manager 10 (FIG. 1) examines the physical hardware system and locates all devices connected to the system. If a hardware component is found but is not reflected in the set of customized object classes 500, the configuration manager 10 accesses the predefined device object classes 300 to find an object class representing the new hardware component and calls a so-called object definition method to define an object instance from the predefined class 300. The configuration manager then represents the object instance in the tailor-made Class 500 with all the corresponding attributes.

Das System beruht auf der Tatsache, daß Klasseninformationen für alle möglichen Hardwareeinrichtungen in der vordefinierten Datenbank vorhanden sind. Da es keine Klassenhierarchie gibt, müssen die Klasseninformationen jedesmal neu definiert werden, wenn eine neue Einrichtung zur vordefinierten Datenbank hinzugefügt werden muß.The system relies on the fact that class information for all possible hardware devices is present in the predefined database. Since there is no class hierarchy, the class information must be redefined each time a new device needs to be added to the predefined database.

Die Europäische Patentanmeldung 0 374 512 offenbart ein Mittel zur Benachrichtigung von Klientenprogrammen über eine Änderung in einer überwachten, objektorientierten Datenbank. Die Referenz bezieht sich auf ein Verfahren zur Überwachung von Änderungen der Werte von Attributen von Objekten in einem Objekt-Datenbanksystem. Ein Klientenanwendungsprogramm fordert das System auf, ein Attribut eines Objektes zu überwachen. Nur Klienten, welche die Überwachung eines bestimmten Attributes anfordern, werden über eine Änderung des Attributs informiert. Des weiteren offenbart die Referenz nichts hinsichtlich der Verwendung von Hardware-Schnittstellen-Objekten und der Verwendung von Konnektor-Objekten zur Darstellung physikalischer Verbindungen.European patent application 0 374 512 discloses a means for notifying client programs of a change in a monitored object-oriented database. The reference relates to a method for monitoring changes in the values of attributes of objects in an object database system. A client application program requests the system to monitor an attribute of an object. Only clients requesting monitoring of a specific attribute are informed of a change in the attribute. Furthermore, the reference does not disclose the use of hardware interface objects and the use of connector objects to represent physical connections.

Die vorliegende Erfindung betrifft in erster Linie die benutzerorientierte Hardwarekonfiguration, kann aber auch bei anderen Arten der Hardwarekonfiguration, wie zum Beispiel der E/A-Hardwarekonfiguration, eingesetzt werden. Herkömmliche Computersysteme verteilen Hardwarekonfigurationsaufgaben unter unterschiedlichen Anwendungen. Zum Beispiel muß am gut bekannten Apple Macintosh Computer die Chooser-Anwendung verwendet werden, um einen Stylewriter- Drucker an einem Modemanschluß anzuschließen. Um ein Modem an einem Modemanschluß anzuschließen, muß eine Kommunikationsanwendung (z.B. Macterminal) verwendet werden. Um ein Apple SCSI-Laufwerk einzurichten, muß die Anwendung "Apple HD SC Setup" verwendet werden. Um die Doppelklickgeschwindigkeit der Maus einzustellen, muß das Maus-Steuerfeld im Steuerfeld-Ordner verwendet werden. Wie daraus leicht ersehen werden kann, ist es für Benutzer schwierig, immer zu wissen, wo diese Konfigurationsanwendungen zu finden sind. Ebenso ist es für Benutzer schwierig, sich daran zu erinnern, welche Konfigurationsanwendungen für die Konfiguration bestimmter Ressourcen benötigt werden.The present invention is primarily concerned with user-oriented hardware configuration, but may also be applied to other types of hardware configuration, such as I/O hardware configuration. Conventional computer systems distribute hardware configuration tasks among different applications. For example, on the well-known Apple Macintosh computer, the Chooser application must be used to connect a Stylewriter printer to a modem port. To connect a modem to a modem port, a communications application (e.g., Macterminal) must be used. To set up an Apple SCSI drive, the "Apple HD SC Setup" application must be used. To set the double-click speed of the mouse, the Mouse Control Panel in the Control Panel folder must be used. As can be easily seen can be, it is difficult for users to always know where to find these configuration applications. Likewise, it is difficult for users to remember which configuration applications are needed to configure specific resources.

Benutzer müssen den Computer über die Position einiger Einrichtungen informieren (das heißt, sie müssen dem Computer sagen, wie und wo die Einrichtungen am Computer angeschlossen sind). Diese Einrichtungen werden als manuell angeschlossene Einrichtungen oder manuell konfigurierte Einrichtungen bezeichnet und erfordern besondere Beachtung im Hinblick auf die Hardwarekonfiguration.Users must inform the computer of the location of some devices (that is, they must tell the computer how and where the devices are connected to the computer). These devices are called manually connected devices or manually configured devices and require special attention to hardware configuration.

Wenn eine manuell angeschlossene Einrichtung am Computer angeschlossen wird, kann der Computer deren Anwesenheit nicht erkennen. Als ein Aspekt der Hardwarekonfiguration muß einer Einheit im Computer (vom Benutzer) mitgeteilt werden, um welche Art von Einrichtung es sich handelt und wo sie angeschlossen ist.When a manually connected device is connected to the computer, the computer cannot detect its presence. As one aspect of hardware configuration, a device in the computer must be told (by the user) what type of device it is and where it is connected.

Bei dem gut bekannten Apple Macintosh System 7 hängt die Einheit, die informiert werden muß, von der Art der fraglichen Einrichtung ab. Zum Beispiel wird die "Comm Toolbox" für Modems verwendet und der Chooser für Drucker. Weiter ist die Comm Toolbox anschlußzentriert und nicht einrichtungszentriert (das heißt, die von einem Dokument gespeicherten Informationen betreffen einen Anschluß, nicht eine Einrichtung). Wenn ein Benutzer sein Modem nun an einem anderen Anschluß anschließt, werden alle Terminaldokumente, welche das Modem benutzen, die Übertragung nicht richtig durchführen, weil sie erwarten, daß das Modem am ursprünglichen Anschluß angeschlossen ist.In the well-known Apple Macintosh System 7, the unit that must be informed depends on the type of device in question. For example, the Comm Toolbox is used for modems and the Chooser for printers. Furthermore, the Comm Toolbox is port-centric, not device-centric (that is, the information stored by a document is about a port, not a device). Now, if a user plugs his modem into a different port, any terminal documents using the modem will not perform the transmission correctly because they expect the modem to be connected to the original port.

Daher werden ein System und ein Verfahren für die Hardwarekonfiguration ohne die oben diskutierten Probleme benötigt.Therefore, a system and method for hardware configuration without the problems discussed above are needed.

Zusammenfassung der ErfindungSummary of the invention

Die vorliegende Erfindung betrifft ein objektorientiertes Hardwarekonfigurationssystem, um eine zentralisierte Benutzerkonfiguration der Hardware in einem Computersystem zu ermöglichen. Das Hardwarekonfigurationssystem umfaßt eine Vielzahl von objektorientierten Hardware-Schnittstellenobjekten, die jeweils einen physikalischen Konnektor einer Hardware-Einrichtung präsentieren, und eine Vielzahl von objektorientierten Hardware-Modul-Objekten.The present invention relates to an object-oriented hardware configuration system for enabling centralized user configuration of the hardware in a computer system. The hardware configuration system comprises a plurality of object-oriented hardware interface objects, each presenting a physical connector of a hardware device, and a plurality of object-oriented hardware module objects.

Jedes der Hardware-Modul-Objekte repräsentiert eine Hardware-Einrichtung, die durch Benutzer konfigurierbar ist. Jedes dieser Hardware-Modul-Objekte umfaßt ein oder mehrere Hardware-Schnittstellen-Objekte, die mit der Hardware-Einrichtung verbunden sind, so daß die Konnektoren der Hardware-Einrichtung definiert werden.Each of the hardware module objects represents a hardware device that is user-configurable. Each of these hardware module objects includes one or more hardware interface objects that are connected to the hardware device to define the connectors of the hardware device.

Es wird ein objektorientiertes Hardwarekonfigurationsobjekt geschaffen, wobei das Hardwarekonfigurationsobjekt eine Vielzahl von Hardware-Modul-Objekten umfaßt, die Hardwareeinrichtungen repräsentieren, die an ein bestimmtes Computersystem angeschlossen sind. Das Hardwarekonfigurationsobjekt definiert eine Hardwarekonfiguration des bestimmten Computersystems. Ein Benutzer kann auf das Hardwarekonfigurationsobjekt zugreifen, um die an dem bestimmten Computersystem angeschlossenen Hardwareeinrichtungen zu konfigurieren.An object-oriented hardware configuration object is created, the hardware configuration object comprising a plurality of hardware module objects representing hardware devices connected to a particular computer system. The hardware configuration object defines a hardware configuration of the particular computer system. A user can access the hardware configuration object to configure the hardware devices connected to the particular computer system.

Das Konfigurationssystem der vorliegenden Erfindung unterstützt die zentralisierte Konfiguration der Hardware durch den Benutzer. Die zentralisierte Hardwarekonfiguration befreit den Benutzer von der Last, sich all die unterschiedlichen Orte merken zu müssen, an denen sich Hardwarekonfigurationswerkzeuge befinden können. Zum Beispiel wird ein Computerbetrachter (der weiter unten diskutiert wird), welcher vom Konfigurationssystem unterstützt wird, dazu verwendet, um manuell konfigurierte Einrichtungen an das System anzuschließen. Er bietet Zugriffsmöglichkeiten auf Konfigurationshilfswerkzeuge (zum Beispiel Werkzeuge zum Formatieren von Plattenlaufwerken, Ändern der Bit-Tiefe eines Monitors usw.) für alle lokalen Einrichtungen. Er kann auch dazu verwendet werden, um lokale Dienste auszuwählen oder direkt zu verwenden (z.B. lokale Drucker und Modems)The configuration system of the present invention supports centralized configuration of hardware by the user. Centralized hardware configuration relieves the user of the burden of having to remember all the different locations where hardware configuration tools may be located. For example, a computer viewer (discussed below) supported by the configuration system is used to connect manually configured devices to the system. It provides access to configuration assistance tools (e.g., tools for formatting disk drives, changing the bit depth of a monitor, etc.) for all local facilities. It can also be used to select or directly use local services (eg local printers and modems)

Im Bereich der manuell angeschlossenen Einrichtungen bietet das Hardwarekonfigurationssystem besondere Vorteile. Zum ersten wird das System immer dann verwendet, wenn eine neue Einrichtung hinzugefügt wird. Dadurch erhält das System die Möglichkeit, die Einrichtung automatisch zuzuordnen, wenn dies erwünscht ist. Zum zweiten wird das System durch das Hardwarekonfigurationssystem in die Lage versetzt, eine Einrichtung zu verfolgen, selbst wenn sie an einen anderen Anschluß verlegt wurde. Der Benutzer muß nicht alle Dokumente aktualisieren, welche die betroffene Einrichtung verwenden. Schließlich wird ein Teilebehälter unterstützt, der alle entsprechenden "installierten" Hardwareressourcen sammelt, welche das System momentan unterstützen kann. Der Teilebehälter ermöglicht es einem Benutzer, eine neue Einrichtung rasch mit Hilfe eines Hardwarekonfigurationsbetrachters (z.B. dem Computerbetrachter) zu finden und anzuschließen. Der Teilebehälter wird für alle manuell angeschlossenen Einrichtungen verwendet.In the area of manually connected devices, the hardware configuration system offers particular advantages. First, the system is used whenever a new device is added. This gives the system the ability to automatically assign the device if desired. Second, the hardware configuration system enables the system to track a device even if it has been moved to a different port. The user does not have to update all documents that use the affected device. Finally, a parts bin is supported that collects all the corresponding "installed" hardware resources that the system can currently support. The parts bin allows a user to quickly find and connect a new device using a hardware configuration viewer (e.g., the computer viewer). The parts bin is used for all manually connected devices.

Das Hardwarekonfigurationssystem bietet eine Reihe innovativer Merkmale.The hardware configuration system offers a number of innovative features.

Zum Beispiel verwaltet das Hardwarekonfigurationssystem eine Datenbank mit Einrichtungen und deren Anschlüssen. Das Hardwarekonfigurationssystem zeichnet die Existenz, die physikalischen Merkmale und die Anschlüsse von Einrichtung auf, die mit einem realen Hardwaresystem in Verbindung stehen. Es ermöglicht Klienten, Anschlüsse und Merkmale dieser Einrichtungen zu ändern. Zum Beispiel besteht ein Personalcomputer aus einem Computer und dessen Peripherieeinrichtungen. Die Existenz und die physikalischen Merkmale des Computers und seiner Peripheneeinrichtungen werden von einer Hardwaredatenbank aufgezeichnet, und Benutzer können Anschlüsse ändern und neue Einrichtungen hinzufügen oder bestehende entfernen. Das Hardwarekonfigurationssystem unterstützt komplexe Hardwaresysteme, die Umschaltboxen, Multifunktionskarten, Multi-Slot-Karten, Anschlüsse an mehr als ein Netzwerk (z.B. Mehrfach-Netzwerkkarten), multislot-artige Computer und Erweiterungsbusse umfassen.For example, the hardware configuration system maintains a database of devices and their ports. The hardware configuration system records the existence, physical characteristics, and ports of devices associated with a real hardware system. It allows clients to change ports and characteristics of these devices. For example, a personal computer consists of a computer and its peripheral devices. The existence and physical characteristics of the computer and its peripheral devices are recorded by a hardware database, and users can change ports and add new devices or remove existing ones. The hardware configuration system supports complex hardware systems that include switch boxes, multifunction cards, multi-slot cards, connections to more than one network (e.g. multiple network cards), multislot-type computers and expansion buses.

Das Hardwarekonfigurationssystem unterstützt die Auffrischung von Konfigurationsdatenbanken. Es wird ein Dienst zur Verfügung gestellt, der es Klienten ermöglicht, die Datenbank manuell zu aktualisieren.The hardware configuration system supports refreshing configuration databases. A service is provided that allows clients to update the database manually.

Das Hardwarekonfigurationssystem ermöglicht den Fortbestand für Einrichtungen und deren Anschlüsse. Wenn ein Einrichtungsobjekt im Hardwarekonfigurationssystem angemeldet wird, können das Einrichtungsobjekt und sein(e) Anschluß (Anschlüsse) gespeichert werden. Beim Neustart werden alle diese gespeicherten Einrichtungsobjekte vom Hardwarekonfigurationssystem automatisch "wiederhergestellt". Die wiederhergestellten Einrichtungsobjekte verhalten sich gleich wie vor dem Neustart.The hardware configuration system allows for persistence for devices and their ports. When a device object is registered in the hardware configuration system, the device object and its port(s) can be saved. Upon reboot, all of these saved device objects are automatically "restored" by the hardware configuration system. The restored device objects behave the same as before the reboot.

Das Hardwarekonfigurationssystem hilft THardware-InterfaceReferences (Hardware-Schnittstellen-Referenzen) bei der Unterstützung von Einrichtungszuordnungen. Es werden ausreichend viele Informationen aufgezeichnet, um es einem THardwareInterfaceReference-Objekt zu ermöglichen, automatisch einen Dienst für jede beliebige angeschlossene Einrichtung (manuell oder automatisch) zu erzeugen. Das Referenzobjekt bleibt sogar dann gültig, wenn sich der Anschluß der Einrichtung im Computerbetrachter geändert hat.The hardware configuration system helps THardware-InterfaceReferences support device mappings. Enough information is recorded to allow a THardwareInterfaceReference object to automatically create a service for any attached device (manually or automatically). The reference object remains valid even if the device's port has changed in the computer viewer.

Das Hardwarekonfigurationssystem bietet Meldungen an. Meldungen werden jedem interessierten Klienten geboten, wenn sich der Zustand einer interessanten Hardwaredatenbank ändert (z.B. wenn eine Einrichtung hinzugefügt oder entfernt wird oder sich der Anschluß ändert) . Es wird nur ein TInterest angeboten, und dieser lautet: "etwas hat sich geändert". Infolgedessen werden Klienten nur darüber informiert, daß eine Änderung eingetreten ist, aber sie erhalten nicht automatisch zusätzliche Informationen über die Art der Änderung.The hardware configuration system offers notifications. Notifications are offered to any interested client when the state of a hardware database of interest changes (e.g. when a device is added or removed or the connection changes). Only one TInterest is offered and that is "something has changed". As a result, clients are only informed that a change has occurred, but they do not automatically receive additional information about the nature of the change.

Das Hardwarekonfigurationssystem unterstützt ein Hardwarekonfigurationsbetrachterrahmenwerk. Klienten können ihre eigene Hardware-Datenbanken erstellen, die mit Hilfe des Hardwarekonfigurationssystems der vorliegenden Erfindung erstellt und vom Hardwarekonfigurationsbetrachterrahmenwerk dargestellt werden können. Zum Beispiel kann ein Laserwriter-NTX-Konfigurationsbetrachter erstellt werden, der es ermöglichen würde, daß ein Benutzer die Hardwarekonfiguration eines entfernten Laserwriters (einschließlich seiner Festplatten, Anschlüsse usw.) erkennen könnte.The hardware configuration system supports a hardware configuration viewer framework. Clients can create their own hardware databases that can be created using the hardware configuration system of the present invention and presented by the hardware configuration viewer framework. For example, a Laserwriter NTX configuration viewer can be created that would allow a user to view the hardware configuration of a remote Laserwriter (including its hard drives, ports, etc.).

Das Hardwarekonfigurationssystem unterstützt die Erstellung von Einrichtungskonfigurationsbetrachtern. Einrichtungskonfigurationsbetrachter ermöglichen es einem Benutzer, die "reale Einrichtung" zu konfigurieren. Einrichtungskonfigurationsbetrachter werden durch Präsentationsobjekte erzeugt. Eine Einheit des Betriebssystems kann ein Präsentationsobjekt mit Hilfe der Informationen erzeugen, die sie von einem Einrichtungsobjekt erhalten hat. Zum Beispiel wird ein Konfigurationsbetrachter für ein Plattenlaufwerk erstellt, um Datenträger für ein Laufwerk neu zu formatieren, zu partitionieren, zu testen, einzurichten und zu entfernen.The hardware configuration system supports the creation of device configuration viewers. Device configuration viewers allow a user to configure the "real device." Device configuration viewers are created by presentation objects. An operating system unit can create a presentation object using the information it has received from a device object. For example, a disk drive configuration viewer is created to reformat, partition, test, set up, and remove disks for a drive.

Weitere Merkmale und Vorteile der vorliegenden Erfindung sowie die Struktur und der Betrieb der verschiedenen Ausführungsformen der vorliegenden Erfindung werden im folgenden unter Bezugnahme auf die begleitenden Zeichnungen im Detail beschrieben.Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with reference to the accompanying drawings.

Kurze Beschreibung der ZeichnungenShort description of the drawings

Figur 1 ist ein Blockdiagramm eines Computersystems, in welchem das Hardwarekonfigurationssystem gemäß einer bevorzugten Ausführungsform arbeitet;Figure 1 is a block diagram of a computer system in which the hardware configuration system operates according to a preferred embodiment;

Figur 2 ist ein Klassendiagramm eines Hardwarekonfigurationsrahmenwerkes gemäß einer bevorzugten Ausführungsform;Figure 2 is a class diagram of a hardware configuration framework according to a preferred embodiment;

Figur 3 ist ein Diagramm, welches verwendet wird, um den Betrieb des THardwareConfiguration-Objektes gemäß einer bevorzugten Ausführungsform darzustellen;Figure 3 is a diagram used to illustrate the operation of the THardwareConfiguration object according to a preferred embodiment;

Figur 4 ist ein Diagramm, welches verwendet wird, um den Betrieb eines THardwareModule-Objektes gemäß einer bevorzugten Ausführungsform darzustellen;Figure 4 is a diagram used to illustrate the operation of a THardwareModule object according to a preferred embodiment;

Figur 5 ist ein Diagramm, welches verwendet wird, um den Betrieb eines THardwareInterface-Objektes gemäß einer bevorzugten Ausführungsform darzustellen;Figure 5 is a diagram used to illustrate the operation of a THardwareInterface object according to a preferred embodiment;

Figur 6 ist ein Diagramm, welches verwendet wird, um den Betrieb eines THardwareInterfaceIdentifier-Objektes gemäß einer bevorzugten Ausführungsform darzustellen; undFigure 6 is a diagram used to illustrate the operation of a THardwareInterfaceIdentifier object according to a preferred embodiment; and

Figur 7A-7E sind Diagramme, die verwendet werden, um die Art und Weise darzustellen, in der eine bevorzugte Ausführungsform während eines beispielhaften Hardwarekonfigurationsszenarios arbeitet.Figures 7A-7E are diagrams used to illustrate the manner in which a preferred embodiment operates during an example hardware configuration scenario.

Detaillierte Diskussion der bevorzugten AusführungsformenDetailed discussion of the preferred embodiments

Die vorliegende Erfindung betrifft ein objektorientiertes System und ein Verfahren zur Konfiguration der Hardware eines Computersystems. Da das System objektorientiert ist, wird die vorliegende Erfindung im folgenden unter Verwendung von objektorientierten Begriffen und Konzepten beschrieben werden. Derartige objektorientierte Begriffe und Konzepte sind gut bekannt und werden in vielen öffentlich zugänglichen Dokumenten diskutiert, wie zum Beispiel in Object-Oriented Design von Grady Booch (Benjamin Cummings 1991).The present invention relates to an object-oriented system and a method for configuring the hardware of a computer system. Since the system is object-oriented, the present invention will be described below using object-oriented terms and concepts. Such object-oriented terms and concepts are well known and are discussed in many publicly available documents, such as Object-Oriented Design by Grady Booch (Benjamin Cummings 1991).

Figur 1 zeigt ein Blockdiagramm hoher Ebene eines Computersystems 102, in welchem das objektorientierte Konfigurationssystem gemäß einer bevorzugten Ausführungsform arbeitet. Es sollte darauf hingewiesen werden, daß die vorliegende Erfindung alternativ dazu das Konfigurationssystem in Kombination mit der Computerplattform 102 umfaßt.Figure 1 shows a high level block diagram of a computer system 102 in which the object-oriented configuration system operates according to a preferred embodiment. It should be noted that the present invention alternatively includes the configuration system in combination with the computer platform 102.

Das Computersystem 102 umfaßt Hardware-Komponenten 104, wie zum Beispiel einen Speicher mit wahlfreiem Zugriff (RAM) 108, und eine Zentraleinheit (CPU) 106. Es sollte darauf hingewiesen werden, daß die CPU 106 einen einzelnen Prozessor oder mehrere Prozessoren umfassen kann, die parallel miteinander arbeiten.The computer system 102 includes hardware components 104, such as a random access memory (RAM) 108, and a central processing unit (CPU) 106. It should be noted that the CPU 106 may comprise a single processor or multiple processors operating in parallel.

Das Computersystem 102 umfaßt auch periphere Einrichtungen, die mit den Hardware-Komponenten 104 verbunden sind. Diese Peripheneeinrichtungen umfassen eine Eingabeeinrichtung oder Eingabeeinrichtungen (wie zum Beispiel eine Tastatur, eine Maus, einen Leuchtstift usw.) 110, ein Datenspeichergerät 112 (wie zum Beispiel eine Festplatte oder Diskette), eine Anzeige 114, einen Drucker 116 und einen Netzwerkadapter 118. Das Computersystem 102 könnte an andere Peripheneeinrichtungen angeschlossen sein.The computer system 102 also includes peripheral devices connected to the hardware components 104. These peripheral devices include an input device or devices (such as a keyboard, mouse, highlighter, etc.) 110, a data storage device 112 (such as a hard disk or floppy disk), a display 114, a printer 116, and a network adapter 118. The computer system 102 could be connected to other peripheral devices.

Das Computersystem 102 umfaßt auch ein Betriebssystem 122, und es kann einen Mikrobefehlscode 120 (auch als Firmware bezeichnet) umfassen. Das Betriebssystem 122 kann ein im wesentlichen voll funktionsfähiges Betriebssystem umfassen, wie zum Beispiel das Diskettenbetriebssystem DOS und das UNIX-Betriebssystem. Das Betriebssystem 122 kann alternativ dazu auch andere Arten von Betriebssystemen repräsentieren. Vorzugsweise repräsentiert das Betriebssystem 122 ein Betriebssystem mit eingeschränkter Funktionalität, wie zum Beispiel den Mach Mikrokernel, entwickelt von IBM, der den Fachleuten dieses Bereiches gut bekannt ist.The computer system 102 also includes an operating system 122, and it may include microinstruction code 120 (also referred to as firmware). The operating system 122 may include a substantially full-function operating system, such as the DOS floppy disk operating system and the UNIX operating system. The operating system 122 may alternatively represent other types of operating systems. Preferably, the operating system 122 represents a limited functionality operating system, such as the Mach microkernel developed by IBM, which is well known to those skilled in the art.

In einer bevorzugten Ausführungsform der vorliegenden Erfindung handelt es sich bei dem Computersystem 102 um einen International Business Machines (IBM)-Computer oder einen IBM-kompatiblen Computer. In einer alternativen Ausführungsform gemäß der vorliegenden Erfindung handelt es sich bei dem Computersystem 102 um einen Apple-Computer.In a preferred embodiment of the present invention, the computer system 102 is an International Business Machines (IBM) computer or an IBM compatible computer. In an alternative embodiment of the present invention, the computer system 102 is an Apple computer.

Ein oder mehrere Programme 124 arbeiten parallel im Computersystem 102.One or more programs 124 operate in parallel in the computer system 102.

Vorzugsweise wird das objektorientierte Konfigurationssystem gemäß einer bevorzugten Ausführungsform als eine Sammlung von objektorientierten Objekten implementiert, die im Computersystem 102 ausgeführt werden. Diese Objekte werden durch ein oder mehrere der Programme 124 repräsentiert, die im Computersystem 102 ausgeführt werden.Preferably, the object-oriented configuration system according to a preferred embodiment is implemented as a collection of object-oriented objects executing in the computer system 102. These objects are represented by one or more of the programs 124 executing in the computer system 102.

Alternativ dazu könnten die Objekte als Teil des Betriebssystems 122 implementiert werden, wo das Betriebssystem 122 nicht prozedural, sondern objektorientiert ist. Andere Verfahren zur Repräsentation des Konfigurationssystems gemäß einer bevorzugten Ausführungsform (wie hierin diskutiert) im Computersystem 102 sind für Fachleute dieses Bereiches offensichtlich.Alternatively, the objects could be implemented as part of the operating system 122, where the operating system 122 is not procedural, but object-oriented. Other methods for representing the configuration system according to a preferred embodiment (as discussed herein) in the computer system 102 will be apparent to those of ordinary skill in the art.

Die Objekte, welche das Konfigurationssystem gemäß einer bevorzugten Ausführungsform implementieren, sind Instanzen einer Vielzahl von objektorientierten Klassen, die zusammengesammelt werden, um ein objektorientiertes Konfigurationsrahmenwerk zu bilden. Dieses Hardwarekonfigurationsrahmenwerk und die darin enthaltenen Klassen werden im folgenden diskutiert.The objects implementing the configuration system according to a preferred embodiment are instances of a plurality of object-oriented classes that are collected together to form an object-oriented configuration framework. This hardware configuration framework and the classes contained therein are discussed below.

Vor der detaillierten Diskussion der vorliegenden Erfindung ist es hilfreich, einige Begriffe zu definieren, die für das Verständnis gemäß einer bevorzugten Ausführungsform von Wichtigkeit sind.Before discussing the present invention in detail, it is helpful to define some terms that are important for understanding according to a preferred embodiment.

Der erste Begrifflautet "Autokonfiguration". Es gibt zwei Arten von Autokonfiguration. Die erste Art ist eher autoidentifizierend als autokonfigurierend. Einrichtungen dieser Kategorie können sich dem System gegenüber selbst identifizieren. Das System sieht sich daraufhin um und sucht die erforderliche Software, die in manchen Fällen vom Benutzer manuell "installiert" werden muß (siehe manuelle Konfiguration weiter unten). Die andere Art der Autokonfiguration ist eine eigenständige Konfiguration. Einrichtungen dieser Kategorie können sich nicht nur selbst identifizieren, sondern auch ihre eigene Konfigurationssoftware und daten zur Verfügung stellen. Die Autokonfiguration erfolgt "von unten nach oben". Das System konfiguriert sich selbst und überträgt die Informationen bis nach oben (zum Benutzer).The first is "auto-configuration." There are two types of auto-configuration. The first is auto-identifying rather than auto-configuring. Devices in this category can identify themselves to the system. The system then looks around and finds the necessary software, which in some cases must be manually "installed" by the user (see manual configuration below). The other type of auto-configuration is self-configuration. Devices in this category can not only identify themselves, but also provide their own configuration software and data. Auto-configuration is "bottom-up." The system configures itself and passes the information up to the user.

Der zweite Begriff lautet "manuelle Konfiguration". Manuelle Konfiguration erfordert, daß der Benutzer etwas Spezielles tut (z.B. einen Dienst "installiert" oder dem Computer mitteilt, wo eine Einrichtung angeschlossen ist). Es gibt drei Fälle manueller Konfiguration.The second term is "manual configuration". Manual configuration requires the user to do something does something special (e.g. "installs" a service or tells the computer where a device is connected). There are three cases of manual configuration.

Gemäß dem ersten Fall kann die Einrichtung vom System identifiziert werden, aber der (die) erforderliche(n) Einrichtungstreiber kann (können) nicht gefunden werden. Der Benutzer muß den (die) Dienst(e) manuell "installieren Die Einrichtung ist "software-beeinträchtigt".According to the first case, the device can be identified by the system, but the required device driver(s) cannot be found. The user must manually "install" the service(s). The device is "software compromised".

Gemäß dem zweiten Fall sind die erforderlichen Dienste verfügbar, aber die Einrichtung kann vom System nicht erkannt oder identifiziert werden (d.h. ihr Icon erscheint im Teilebehälter, aber die Einrichtung selbst erscheint nicht im Computerbetrachter). In diesem Fall muß der Benutzer die Einrichtung vom Teilebehälter dorthin ziehen, wo die Einrichtung im Computerbetrachter angeschlossen ist.According to the second case, the required services are available, but the device cannot be recognized or identified by the system (i.e. its icon appears in the Parts Container, but the device itself does not appear in the Computer Viewer). In this case, the user must drag the device from the Parts Container to where the device is connected in the Computer Viewer.

Im dritten Fall sind weder die erforderlichen Dienste verfügbar, noch ist die Einrichtung auffindbar. Dies ist eine Teilkombination der beiden obigen Fälle. Zuerst muß der Benutzer den (die) Dienst(e) "installieren". Dann kann er die Einrichtung vom Teilebehälter dorthin ziehen, wo die Einrichtung im Computerbetrachter angeschlossen ist.In the third case, the required services are neither available nor the device can be found. This is a partial combination of the two cases above. First, the user must "install" the service(s). Then he can drag the device from the parts bin to where the device is connected in the computer viewer.

Die manuelle Konfiguration erfolgt von "oben nach unten". Der Benutzer liefert die Informationen über eine Benutzerschnittstelle, und diese Informationen sickern bis nach unten (zum E/A-System) durch.Manual configuration is done from the top down. The user provides the information through a user interface and that information trickles down to the I/O system.

Der nächste Begriff ist eine "software-beeinträchtigte Hardware". Eine Hardware-Ressource wird dann als softwarebeeinträchtigt bezeichnet, wenn die Hardware-Ressource dem System bekannt ist, das System diese aber nicht verwenden kann, weil die erforderliche Software nicht gefunden werden kann. Ein THardwareModule kann eine beeinträchtigte Hardware repräsentieren. Ein THardwareModule kann nicht teilweise beeinträchtigt werden. Zu dem Zeitpunkt, zu dem das THardwareModule einer zu initialisierenden Karte angemeldet wird, muß die gesamte Software verfügbar sein, die zum Initialisieren der Karte erforderlich ist. Software-beeinträchtigte Hardware wird beim Auffrischen oder zum Zeitpunkt des Bootens (Urladens) erkannt.The next term is "software-impaired hardware". A hardware resource is said to be software-impaired if the hardware resource is known to the system, but the system cannot use it because the required software cannot be found. A THardwareModule can represent compromised hardware. A THardwareModule cannot be partially compromised. At the time the THardwareModule of a card to be initialized is registered, all the software required to initialize the card must be available. Software-impaired Hardware is detected during refresh or at boot time.

Das Hardwarekonfigurationssystem gemäß einer bevorzugten Ausführungsform unterstützt einen Hardwarekonfigurationsbetrachter, der vorzugsweise unter Verwendung objektorientierter Techniken implementiert wird (wie zum Beispiel durch das Erstellen von Instanzen von in Beziehung stehenden Klassen, die ein Rahmenwerk bilden). Der Hardwarekonfigurationsbetrachter wird unten beschrieben.The hardware configuration system according to a preferred embodiment supports a hardware configuration viewer, which is preferably implemented using object-oriented techniques (such as by creating instances of related classes that form a framework). The hardware configuration viewer is described below.

Der Hardwarekonfigurationbetrachter ist ein Werkzeug, welches einem Benutzer eine graphische Darstellung der aktuellen Hardwarekonfiguration eines Computers zeigt. Der Hardwarekonfigurationsbetrachter verwendet dazu den Teilebehälter (wird weiter unten diskutiert) . Es gibt viele Arten von Hardwarekonfigurationsbetrachtern.The Hardware Configuration Viewer is a tool that shows a user a graphical representation of the current hardware configuration of a computer. The Hardware Configuration Viewer does this using the Parts Bin (discussed below). There are many types of hardware configuration viewers.

Zum Beispiel zeigt ein Computerbetrachter eine graphische Darstellung der aktuellen Konfiguration eines gesamten Computersystems an.For example, a computer viewer displays a graphical representation of the current configuration of an entire computer system.

Ein Druckerbetrachter zeigt einem Benutzer die Konfiguration eines Druckers. Zum Beispiel zeigt der Druckerbetrachter das oder die Festplattenlaufwerk(e) sowie eventuell am Drucker vorhandene Zusatzeinrichtungen, wie zum Beispiel eine automatische Einzelblattzufuhr. Der Benutzer könnte sehen, über welche Zeichensätze der Drucker verfügt (auf der Festplatte).A printer viewer shows a user the configuration of a printer. For example, the printer viewer shows the hard disk drive(s) and any optional features the printer may have, such as an automatic sheet feeder. The user could see what character sets the printer has (on the hard disk).

Ein Teilebehälterbetrachter präsentiert dem Benutzer alle "potentiell" anschließbaren "stummen" Einrichtungen (wie der Apple Chooser; nur zeigt der Chooser auch einige der momentan angeschlossenen Geräte an). In der Darstellung des Teilebehälterbetrachters kann auch ein Fenster mit einem Karteireiter für jeden Einrichtungstyp vorhanden sein. Zum Beispiel könnten Karteireiter für Drucker und Modems vorhanden sein. Der Benutzer wählt einen bestimmten Karteireiter aus, um alle Einrichtungen eines bestimmten Typs betrachten zu können. Somit zeigt der Computerbetrachter dem Benutzer, was momentan angeschlossen ist, während der Teilebehälter dem Benutzer anzeigt, was angeschlossen werden kann.A Parts Bin Viewer presents the user with all "potentially" connectable "dumb" devices (like the Apple Chooser, except the Chooser also shows some of the currently connected devices). The Parts Bin Viewer display may also include a window with a tab for each device type. For example, there might be tabs for printers and modems. The user selects a particular tab to view all devices of a particular type. Thus, the Computer Viewer shows the user what is currently connected, while the Parts container shows the user what can be connected.

Ein Einrichtungskonfigurationsbetrachter ermöglicht es dem Benutzer, eine "reale Einrichtung" (das heißt, ein physikalisches Gerät) zu konfigurieren. Einrichtungskonfigurationsbetrachter werden durch Präsentationsobjekte erzeugt. Eine Einheit des Betriebssystems kann ein Präsentationsobjekt mit Hilfe der Informationen erzeugen, die sie von einem Einrichtungsobjekt erhalten hat. Zum Beispiel wird ein Konfigurationsbetrachter für ein Plattenlaufwerk erstellt, um Datenträger für ein Laufwerk neu zu formatieren, zu partitionieren, zu testen, einzurichten und zu entfernen.A device configuration viewer allows the user to configure a "real device" (that is, a physical device). Device configuration viewers are created by presentation objects. An entity of the operating system can create a presentation object using the information it has received from a device object. For example, a disk drive configuration viewer is created to reformat, partition, test, set up, and remove disks for a drive.

Architektur des Hardwarekonfigurations systemsArchitecture of the hardware configuration system

Wie oben diskutiert, wird das objektorientierte Konfigurationssystem gemäß einer bevorzugten Ausführungsform als eine Sammlung von objektorientierten Objekten implementiert, die im Computersystem 102 ausgeführt werden. Diese Objekte sind Instanzen einer Vielzahl von in Beziehung stehenden objektorientierten Klassen, die zusammengesammelt werden, um ein objektorientiertes Konfigurationsrahmenwerk zu bilden. Figur 2 ist ein Klassendiagramm dieses Hardwarekonfigurationsrahmenwerkes gemäß einer bevorzugten Ausführungsform. Die Klassen, welche die Hardwarekonfigurationsrahmenwerke bilden, werden in den folgenden Abschnitten diskutiert.As discussed above, the object-oriented configuration system according to a preferred embodiment is implemented as a collection of object-oriented objects executing in the computer system 102. These objects are instances of a plurality of related object-oriented classes that are collected together to form an object-oriented configuration framework. Figure 2 is a class diagram of this hardware configuration framework according to a preferred embodiment. The classes that make up the hardware configuration frameworks are discussed in the following sections.

THardwareConfigurationTHardwareConfiguration

Der Hauptzweck der THardwareConfiguration-Klasse 204 besteht darin, die zentralisierte Benutzerkonfiguration der Hardware zu unterstützen. Sie tut dies, indem sie eine Gruppe von hardwarebezogenen Datenbankdiensten zur Verfügung stellt. THardwareConfiguration 204 besitzt eine Sammlung von THardwareModule-Objekten. Klienten können bestehende THardwareModule-Objekte von einer Instanz von THardwareConfiguration entfernen oder sie dieser hinzufügen. Klienten können von einer Instanz von THardwareConfiguration jedes THardwareModule-Objekt oder spezifische Arten von THardwareModule-Objekten (z.B. Art=Drucker, Arten= Abtaster & Modem) direkt laden.The main purpose of the THardwareConfiguration class 204 is to support centralized user configuration of hardware. It does this by providing a set of hardware-related database services. THardwareConfiguration 204 has a collection of THardwareModule objects. Clients can use existing Remove THardwareModule objects from or add them to an instance of THardwareConfiguration. Clients can load any THardwareModule object or specific types of THardwareModule objects (eg Type=Printer, Types=Scanner & Modem) directly from an instance of THardwareConfiguration.

Klienten haben Zugriff auf ein spezielles THardwareConfiguration-Objekt, bekannt als ComputerHardwareConfiguration (wird auch als Computerhardwaredatenbank bezeichnet), welches die lokale Hardwarekonfiguration eines Personalcomputers repräsentiert. Sie enthält Einrichtungstreiber, wie zum Beispiel die Maus, die Tastatur und den Monitor des Computers. Diese Datenbank ist die Grundlage für die zentralisierte Benutzerkonfiguration eines Personalcomputers. Figur 3 zeigt ein Beispiel für ComputerHardwareConfiguration.Clients have access to a special THardwareConfiguration object known as ComputerHardwareConfiguration (also called Computer Hardware Database), which represents the local hardware configuration of a personal computer. It contains device drivers such as the computer's mouse, keyboard, and monitor. This database is the basis for the centralized user configuration of a personal computer. Figure 3 shows an example of ComputerHardwareConfiguration.

Bei THardwareConfiguration-Objekten wird eine Meldung an interessierte Klienten gesendet, wenn eine Änderung an einer Hardwarekonfiguration vorgenommen wurde (z.B. wenn ein HardwareModul hinzugefügt oder entfernt oder eine Verbindung geändert wird). Klienten werden nur darüber informiert, daß eine Änderung eingetreten ist, aber sie erhalten keine zusätzlichen Informationen über die Art der Änderung. Da Änderungen an Hardwarekonfigurationen sehr selten auftreten, verursacht dieses minimale Meldungsschema aller Wahrscheinlichkeit nach keine Probleme (z.B. merkliche Zunahme des Zwischenrechnerkommunikationsverkehrs (IPC)).For THardwareConfiguration objects, a message is sent to interested clients when a change has been made to a hardware configuration (e.g., when a hardware module is added or removed, or a connection is changed). Clients are only informed that a change has occurred, but they receive no additional information about the nature of the change. Since changes to hardware configurations occur very rarely, this minimal message scheme is unlikely to cause any problems (e.g., significant increase in interprocessor communication (IPC) traffic).

THardwareModuleTHardwareModules

Der Zweck eines THardwareModule-Objektes 206 besteht darin, auf sehr tiefer Ebene eine Einrichtung zu repräsentieren, welche vom Hardwarekonfigurationsbetrachter (oder Teilebehälter) dargestellt und von einem Benutzer konfiguriert oder verwendet wird. THardwareModule-Objekte 206 werden dazu verwendet, um Computer, Karten und Peripheneeinrichtungen zu repräsentieren. Zum Beispiel würde jede der folgenden Einrichtungen durch ihr eigenes THardwareModule-Objekt präsentiert werden: Apple Macintosh IIci Computer, Apple ADB Tastatur und Macintosh Video-Karte.The purpose of a THardwareModule object 206 is to represent, at a very low level, a device that is presented by the hardware configuration viewer (or parts container) and configured or used by a user. THardwareModule objects 206 are used to represent computers, cards, and peripheral devices. For example, each of the The following devices are presented by their own THardwareModule object: Apple Macintosh IIci computer, Apple ADB keyboard, and Macintosh video card.

Als Mitglied von THardwareConfiguration repräsentiert ein THardwareModule-Objekt 206 eine reale Einrichtung, welche ein Benutzer konfigurieren oder verwenden kann. Als Mitglied eines TPartLocator (d.h. Teilebehälter 220, weiter unten beschrieben), repräsentiert ein THardwareModule-Objekt 206 einen Prototyp für eine beliebige Anzahl von realen Einrichtungen mit identischen Merkmalen (d.h. ein Teil, der dem System hinzugefügt werden kann).As a member of THardwareConfiguration, a THardwareModule object 206 represents a real-world device that a user can configure or use. As a member of a TPartLocator (i.e., parts container 220, described below), a THardwareModule object 206 represents a prototype for any number of real-world devices with identical characteristics (i.e., a part that can be added to the system).

Ein THardwareModule-Objekt 206 besitzt eine Gruppe von geordneten THardwareInterface-Objekten 212 (weiter unten diskutiert, THardwareInterface-Objekte 212 werden hierin auch als Konnektorobjekte oder einfach Konnektoren bezeichnet) . Jedes THardwareInterface-Objekt 212 entspricht einem realen physikalischen Konnektor an einer realen Einrichtung. Zum Beispiel besitzt unter Bezugnahme auf Figur 4 das THardwareModule-Objekt 410, welches die Multifunktionskarte 402 repräsentiert, die THardwareInterface-Objekte 416, 414 bzw. 412, welche den folgenden Einrichtungen entsprechen: einem Kantenkonnektor 404, einem Videokonnektor 406 und einem SCSI-Konnektor 408.A THardwareModule object 206 has a group of ordered THardwareInterface objects 212 (discussed below, THardwareInterface objects 212 are also referred to herein as connector objects or simply connectors). Each THardwareInterface object 212 corresponds to a real physical connector on a real device. For example, referring to Figure 4, the THardwareModule object 410 representing the multifunction card 402 has THardwareInterface objects 416, 414, and 412, respectively, which correspond to the following devices: an edge connector 404, a video connector 406, and a SCSI connector 408.

Da vom THardwareModule keine Unterklassen gebildet werden müssen, muß der Erzeuger eines THardwareModule-Objektes sicherstellen, daß die entsprechenden THardwareInterface-Objekte erzeugt und im THardwareModule-Objekt aufgenommen werden.Since no subclasses need to be created from the THardwareModule, the creator of a THardwareModule object must ensure that the corresponding THardwareInterface objects are created and included in the THardwareModule object.

Jedes THardwareInterface-Objekt 206 entspricht einem THardwareInterfaceIdentifier-Objekt 224 (unten beschrieben), und es entspricht zusätzlich einem Konnektorobjekt in einem Präsentationsobjekt, welches vom betrachteten Computer dargestellt wird.Each THardwareInterface object 206 corresponds to a THardwareInterfaceIdentifier object 224 (described below), and it additionally corresponds to a connector object in a presentation object presented by the computer under consideration.

Einer oder mehrere der im Eigentum stehenden Konnektoren wird als Standardkonnektor betrachtet (siehe Figur 4, wo das Kantenhardwareobjekt 416 das Standardobjekt ist) Standardkonnektoren repräsentieren spezielle Konnektoren, die als potentielle Anschlußziele während des Ziehens und Fallenlassens (Drag & Drop) von Einrichtungen auf Konnektoren ausgewählt werden. Dies ist ein Abkürzungsverfahren für das Erzeugen von Anschlüssen. Die Alternative dazu besteht darin, das Icon in einen Hardwarebetrachter fallenzulassen und es danach manuell mit dem richtigen Konnektor zu verbinden. Beispiel für ein Abkürzungsverfahren: Ein Benutzer zieht die oben dargestellte Video-SCSI-Karte aus dem Teilebehälter auf einen ISA-Slot-Konnektor im Computerbetrachter. Der Computerbetrachter wählt den Kantenkonnektor (anstatt des SCSI- oder Videokonnektors) aus, weil der Entwickler den Kantenkonnektor als Standardkonnektor festgelegt hat.One or more of the owned connectors is considered a standard connector (see Figure 4, where the edge hardware object 416 is the standard object) Standard connectors represent special connectors, that are selected as potential connection targets during drag and drop of devices onto connectors. This is a shortcut method for creating connectors. The alternative is to drop the icon into a hardware viewer and then manually connect it to the correct connector. Example of a shortcut method: A user drags the video SCSI card shown above from the parts bin onto an ISA slot connector in the computer viewer. The computer viewer selects the edge connector (instead of the SCSI or video connector) because the developer specified the edge connector as the default connector.

Manchmal ist mehr als nur ein Standardkonnektor erforderlich. Zum Beispiel könnte ein Drucker sowohl einen seriellen als auch einen parallelen Anschluß besitzen. Wenn der Benutzer diesen Drucker über den seriellen Anschluß ziehen würde, würde der Computerbetrachter beide Standardkonnektoren auf ihre Kompatibilität hin überprüfen. Er würde entdecken, daß der Drucker mit dem seriellen Anschluß kompatibel ist. Der Benutzer könnte weiter den Drucker über einen parallelen Anschluß ziehen. Der Computerbetrachter würde entdecken, daß der Drucker auch mit diesem kompatibel ist.Sometimes more than one standard connector is required. For example, a printer might have both a serial and a parallel port. If the user were to drag that printer over the serial port, the computer viewer would check both standard connectors for compatibility. It would discover that the printer is compatible with the serial port. The user could further drag the printer over a parallel port. The computer viewer would discover that the printer is compatible with that as well.

Jedes THardwareModule-Objekt 206 besitzt ein persönlichkeitsunabhängiges HardwareModulesignature-Objekt 210 (unten diskutiert), welches die Klasse der physikalischen Hardware identifiziert, der das THardwareModule-Objekt angehört. Zum Beispiel besitzt ein THardwareModule-Objekt 206, welches einen Apple Imagewriter II repräsentiert, eine Instanz von HardwareModulesignature 210, deren Wert gleich "AppleImagewriterII" ist.Each THardwareModule object 206 has a personality-independent HardwareModulesignature object 210 (discussed below) that identifies the class of physical hardware to which the THardwareModule object belongs. For example, a THardwareModule object 206 representing an Apple Imagewriter II has an instance of HardwareModulesignature 210 whose value is equal to "AppleImagewriterII".

Jedes THardwareModule-Objekt 206 besitzt ein oder mehrere HardwareModuleCategory-Objekte 208 (unten diskutiert).Each THardwareModule object 206 has one or more HardwareModuleCategory objects 208 (discussed below).

Jedes Kategorieobjekt 208 repräsentiert eine bestimmte Einrichtungsart, welche das THardwareModule-Objekt 206 zu repräsentieren in der Lage ist. Zum Beispiel besitzt ein THardwareModule-Objekt 206, welches ein Faxgerät repräsentiert, das als Modem, Abtaster, Drucker und Fax verwendet werden kann, jeweils eine Instanz der folgenden Hardware-ModuleCategorys 208: "Modem", "Abtaster", "Drucker" und "Fax".Each category object 208 represents a specific device type that the THardwareModule object 206 is able to represent. For example, a THardwareModule object 206, which represents a fax machine that can be used as a modem, scanner, printer and fax, one instance each of the following Hardware ModuleCategories 208: "Modem", "Scanner", "Printer" and "Fax".

Typischerweise ist jedes THardwareModule-Objekt 206 in einer Hardwaredatenbank an mindestens ein anderes THardwareModule-Objekt 206 "angeschlossen". Dies ist jedoch nicht unbedingt erforderlich, da eine Einrichtung aus einer Vielzahl von Gründen vollständig abgekoppelt werden kann. Abgekoppelte Einrichtungen in einer THardwareConfiguration stehen immer noch im Eigentum des THardwareConfiguration-Objektes und können durch direkte Iteration erreicht werden.Typically, each THardwareModule object 206 in a hardware database is "hooked" to at least one other THardwareModule object 206. However, this is not strictly necessary, as a device can become completely unhooked for a variety of reasons. Unhooked devices in a THardwareConfiguration are still owned by the THardwareConfiguration object and can be reached by direct iteration.

Ein THardwareModule-Objekt besitzt eine Anzahl von Attributen, einschließlich "root" (Wurzel), "internal" (intern) und "wants persistence" (möchte Wirkungsdauer). Root ist ein Boolscher Wert. Wenn er wahr ist, handelt es sich bei dem THardwareModule-Objekt 206 um die zentrale Einrichtung einer THardwareConfiguration. Jedes THardwareConfiguration-Objekt 204 besitzt eine Boot-Einrichtung. Für eine Personalcomputerdatenbank ist jenes THardwareModule-Objekt 206 die Boot-Einrichtung, welche den Computer repräsentiert. Root wird standardmäßig auf FALSCH gesetzt. Die Boot-Einrichtung ist eine spezielle Einrichtung, die vom Hardwarekonfigurationsbetrachter verwendet wird. Wenn die Abstrakt- oder Schemabetrachtung vom Hardwarekonfigurationsbetrachter angezeigt wird, wird die Boot-Einrichtung in einen speziellen Bereich "explodiert".A THardwareModule object has a number of attributes, including "root", "internal" and "wants persistence". Root is a boolean value. If true, the THardwareModule object 206 is the central device of a THardwareConfiguration. Each THardwareConfiguration object 204 has a boot device. For a personal computer database, the THardwareModule object 206 is the boot device that represents the computer. Root defaults to FALSE. The boot device is a special device used by the Hardware Configuration Viewer. When the Abstract or Schema Viewer is displayed by the Hardware Configuration Viewer, the boot device is "exploded" into a special area.

"Internal" ist ebenfalls ein Boolscher Wert. Wenn er wahr ist, befindet sich die reale Einrichtung physikalisch innerhalb der Root-Einrichtung. Zum Beispiel befindet sich das interne Festplattenlaufwerk eines Macintosh "innerhalb" des Computers. Standardmäßig wird der Wert auf FALSCH gesetzt. Dieser Status wird nur von der Schemabetrachtung des Computerbetrachters verwendet. Wenn sich eine Einrichtung innerhalb des Computers befindet, wird sie in einem speziellen Bereich angezeigt."Internal" is also a Boolean value. If it is true, the real device is physically located inside the root device. For example, the internal hard disk drive of a Macintosh is located "inside" the computer. By default, the value is set to FALSE. This status is used only by the Computer Viewer's Schema Viewer. If a device is inside the computer, it will be displayed in a special area.

"Wants persistence" ist ein Boolscher Wert. Ein Modul, das nicht nachhaltig wirksam ist, wird implizit aus der Konfiguration entfernt, wenn das System neu gebootet wird (auch seine Verbindungen werden implizit entfernt). Auf der anderen Seite bleibt ein nachhaltig wirkendes Modul auch beim Neubooten in der Konfiguration, bis es explizit entfemt wird. Typischerweise wollen alle manuell angeschlossenen Einrichtungen vom Hardwarekonfigurationsrahmenwerk automatisch wiederhergestellt werden, SCSI-Laufwerke aber nicht. Standardmäßig wird der Wert auf FALSCH gesetzt."Wants persistence" is a boolean value. A module that is not persistent will be implicitly removed from the configuration when the system is rebooted (its connections will also be implicitly removed). On the other hand, a persistent module will remain in the configuration even when rebooting until it is explicitly removed. Typically, all manually connected devices will want to be automatically restored by the hardware configuration framework, but SCSI drives will not. By default, the value is set to FALSE.

HardwareModuleCategoryHardwareModuleCategory

Aufgabe der HardwareModuleCategory 208 ist es, Klienten die Möglichkeit zu geben, THardwareModule-Objekte 206 nach ihrer Art zu gruppieren. Eine Instanz der HardwareModuleCategory 208 kann im Eigentum eines THardwareModule-Objektes 206 oder eines TPartLocator-Objektes 218 stehen (wird unten diskutiert). Wenn sie im Eigentum eines THardwareModule-Objektes 206 steht, repräsentiert eine Instanz von HardwareModuleCategory 208 eine Einrichtungsart, welche das Modul zu repräsentieren in der Lage ist. Jedes THard wareModule-Objekt 206 besitzt ein HardwareModuleCategory-Objekt 208 für jede Einrichtungsart, die es repräsentieren kann.The purpose of the HardwareModuleCategory 208 is to provide clients with the ability to group THardwareModule objects 206 by their type. An instance of the HardwareModuleCategory 208 can be owned by a THardwareModule object 206 or a TPartLocator object 218 (discussed below). When owned by a THardwareModule object 206, an instance of the HardwareModuleCategory 208 represents a device type that the module is capable of representing. Each THardwareModule object 206 has a HardwareModuleCategory object 208 for each device type that it can represent.

Wenn sie im Eigentum eines TPartLocator-Objektes 218 steht, repräsentiert eine Instanz der HardwareModuleCategory 208 die gemeinsame Gruppe aller THardwareModule-Objekte 206, die im Eigentum des TPartLocator-Objektes 218 stehen.When owned by a TPartLocator object 218, an instance of the HardwareModuleCategory 208 represents the common set of all THardwareModule objects 206 owned by the TPartLocator object 218.

Zu den unterstützten Einrichtungskategorien gehören: Monitor, Drucker, Tastatur, Zeigergerät (Maus oder Tablett), Modem, Karte, Laufwerk, Abtaster, Fax usw.Supported device categories include: Monitor, printer, keyboard, pointing device (mouse or tablet), modem, card, disk drive, scanner, fax, etc.

HardwareModuleSignatureHardwareModuleSignature

Aufgabe der HardwareModuleSignature 210 ist es, einen Mechanismus zu schaffen, der es Betriebssystempersönlichkeiten (z.B. OS/2) ermöglicht, eigene Objekte zu erzeugen, um THardwareModule-Objekte 206 zu repräsentieren. Dies ist deshalb erforderlich, weil THardwareModule-Objekte 206 nicht wissen, welche Betriebssystempersönlichkeiten sich über ihnen befinden. Eine Instanz von HardwareModule-Signature 210 repräsentiert einen persönlichkeitsunabhängigen "Schlüssel" für eine einzigartige, persönlichkeitsabhängige Einheit. Zum Beispiel könnte ein bestimmtes Betriebssystem diesen Schlüssel dazu verwenden, um aus einer Datei ein Präsentationsobjekt aufzuerwecken, welches dem HardwareModule-Objekt 206 entspricht. Oder es könnte die Signatur in einen Präsentationsklassennamen umwandeln und danach ein neues Präsentationsobjekt entsprechend dem THardwareModule-Objekt 206 erzeugen.The purpose of HardwareModuleSignature 210 is to provide a mechanism that allows operating system personalities (e.g. OS/2) to create their own objects to represent THardwareModule objects 206. This is necessary because THardwareModule objects 206 do not know which operating system personalities are above them. An instance of HardwareModuleSignature 210 represents a personality-independent "key" to a unique personality-dependent entity. For example, a particular operating system could use this key to resurrect from a file a presentation object corresponding to the HardwareModule object 206. Or it could convert the signature to a presentation class name and then create a new presentation object corresponding to the THardwareModule object 206.

Eine Instanz von THardwareConfiguration 204 kann viele Einrichtungen mit gleichwertigen HardwareModuleSignature-Objekten 210 umfassen. Zum Beispiel könnte eine Datenbank zwei COMB-Apple-Laufwerke enthalten. Es werden gleichwertige Instanzen von HardwareModulesignature 210 bestehen, und zwar je eine für jedes THardwareModule-Objekt 206. Dies sind nicht dieselben Einrichtungen. Es sind zwei unterschiedliche THardwareModule-Objekte 206, welche zwei unterschiedliche reale Einrichtungen derselben Art repräsentieren.An instance of THardwareConfiguration 204 may contain many devices with equivalent HardwareModuleSignature objects 210. For example, a database could contain two COMB Apple drives. There will be equivalent instances of HardwareModuleSignature 210, one for each THardwareModule object 206. These are not the same devices. They are two different THardwareModule objects 206 representing two different real devices of the same type.

THardwareInterfaceTHardwareInterface

Aufgabe von THardwareInterface 212 ist es, auf sehr tiefer Ebene einen realen Konnektor für eine reale Einrichtung zu repräsentieren. Es kann einen Konnektor am Computer, eine Karte oder eine Peripheneeinrichtung repräsentieren. Zum Beispiel würde jede der folgenden Einrichtungen durch ihr eigenes THardwareInterface-Objekt 212 repräsentiert werden: SCSI-Konnektor an einem Macintosh IIfx, Video-Konnektor an einer Macintosh-Videokarte oder ein serieller Konnektor an einem StyleWriter. THardwareInterface-Objekte 212 stehen im Eigentum von THardwareModule-Objekten 206.The purpose of THardwareInterface 212 is to represent, at a very low level, a real connector for a real device. It can represent a connector on the computer, a card or a peripheral device. For example, each of the following devices would be represented by its own THardwareInterface object 212 SCSI connector on a Macintosh IIfx, video connector on a Macintosh video card, or a serial connector on a StyleWriter. THardwareInterface objects 212 are owned by THardwareModule objects 206.

Jedes THardwareInterface-Objekt 212 besitzt ein oder mehrere HardwareInterfaceCategory-Objekte 214 (unten beschrieben). Jedes Kategorieobjekt 214 repräsentiert eine bestimmte Schnittstellenart, welche das THardwareInterface-Objekt 212 zu repräsentieren in der Lage ist. Zum Beispiel wird ein THardwareInterface-Objekt 212, welches einen seriellen Anschluß repräsentiert, je eine Instanz der folgenden HardwareInterfaceCategory-Objekte 214 besitzen: "seriell".Each THardwareInterface object 212 has one or more HardwareInterfaceCategory objects 214 (described below). Each category object 214 represents a particular type of interface that the THardwareInterface object 212 is capable of representing. For example, a THardwareInterface object 212 representing a serial port will have one instance of each of the following HardwareInterfaceCategory objects 214: "serial".

Jede Instanz von THardwareInterface 212 wird je ein THardwareConnection-Objekt 216 (unten diskutiert) für jedes THardwareInterface-Objekt 212 besitzen, an welches sie angeschlossen ist. Zum Beispiel kann, wie in Figur 5 dargestellt, ein SCSI-Konnektor am Computer an einem SCSI- Laufwerk und einem SCSI-Drucker angeschlossen sein. Der SCSI-Konnektor am Computer hätte zwei THardwareConnection-Objekte 216. Das SCSI-Laufwerk und der SCSI-Drucker hätten jeweils eines.Each instance of THardwareInterface 212 will have one THardwareConnection object 216 (discussed below) for each THardwareInterface object 212 to which it is connected. For example, as shown in Figure 5, a SCSI connector on the computer may be connected to a SCSI drive and a SCSI printer. The SCSI connector on the computer would have two THardwareConnection objects 216. The SCSI drive and the SCSI printer would each have one.

Jede Instanz von THardwareInterface 212 besitzt ein THardwareInterfaceIdentifier-Objekt 224 (oben diskutiert), welches als einzigartiger Schlüssel in die Datenbank dient.Each instance of THardwareInterface 212 has a THardwareInterfaceIdentifier object 224 (discussed above), which serves as a unique key into the database.

Manche THardwareInterfaces 212 repräsentieren einen tatsächlichen "Schnittstellenanschluß" (z.B. den SCSI- Anschluß an einem Computer oder den Videoanschluß an einer Videokarte). Diese THardwareInterfaces 212 können dazu verwendet werden, um Servicestapel zu starten.Some THardwareInterfaces 212 represent an actual "interface port" (e.g., the SCSI port on a computer or the video port on a video card). These THardwareInterfaces 212 can be used to start service stacks.

Klienten können THardwareInterface-Objekte 212 dazu auffordern, sich aufzufrischen. Um dies auszuführen, erzeugt ein Klient (z.B. der Computerbetrachter) eine THardwareInterfacereference 222 mit "MReconfigurableInterface" als oberste Schnittstelle. Wenn "MReconfigurableInterface" unterstützt wird, wird ein Service zurückgegeben, wenn das Hardwarereferenzobjekt 222 aktiviert ist, und der Klient kann auf sichere Weise Reconfigure() daran aufrufen.Clients can request THardwareInterface objects 212 to refresh themselves. To do this, a client (e.g., the computer viewer) creates a THardwareInterfacereference 222 with "MReconfigurableInterface" as the topmost interface. If "MReconfigurableInterface" is supported, a service is returned when the Hardware Reference Object 222 is enabled and the client can safely call Reconfigure() on it.

Wenn einem THardwareModule-Objekt 206 erlaubt wird, mehr als ein THardwareInterface-Objekt 212 zu besitzen, so ergibt sich daraus der Nebeneffekt, daß eine Verbindung indirekt eine "Rückwärtsschleife" zu einer Einrichtung bilden kann. Wenn ein Klient versuchen würde, alle Verbindungen einer Einrichtung zu umspannen, müßte er über mögliche Schleifen Bescheid wissen.Allowing a THardwareModule object 206 to have more than one THardwareInterface object 212 has the side effect that a connection can indirectly "loop back" to a device. If a client were to attempt to span all of the connections of a device, it would need to be aware of possible loops.

Ein THardwareInterface-Objekt 212 besitzt die folgenden Attribute:A THardwareInterface object 212 has the following attributes:

Max connections (max. Verbindungen) :Max connections:

Dies ist eine kurze Ganzzahl. Ein THardwareInterface-Objekt 212 kann eine oder mehrere Verbindungen unterstützen.This is a short integer. A THardwareInterface object 212 can support one or more connections.

Dieses Attribut legt die maximale Anzahl der legalen Verbindungen eines THardwareInterface-Objektes 212 fest. Standardmäßig wird der Wert auf 1 gesetzt.This attribute specifies the maximum number of legal connections of a THardwareInterface object 212. By default, the value is set to 1.

Mode (Modus):Mode:

Mögliche Werte sind In/Out/InOut (Ein/Aus/Einaus). Dieses Attribut legt die Übertragungsart fest. Ein THardwareInterface-Objekt 212 kann ein Eingang, ein Ausgang oder beides sein. Standardmä ßig wird der Wert auf InOut (EinAus) gesetzt.Possible values are In/Out/InOut This attribute specifies the transmission type. A THardwareInterface object 212 can be an input, an output, or both. By default, the value is set to InOut.

Reconfigurable (Neu konfigurierbar):Reconfigurable:

Dies ist ein Boolscher Wert. Wenn er wahr ist, kann die Hardware einen Refresh (Auffrischung) unterstützen (d.h. sie kann nachsehen, ob sich irgendetwas geändert hat) Dies bedeutet nicht, daß ein Dienst verfügbar ist, der die neuerliche Abtastung tatsächlich durchführt. Standardmäßig wird der Wert auf FALSCH gesetzt.This is a Boolean value. If it is true, the hardware can support a refresh (i.e. it can check to see if anything has changed) This does not mean that a service is available that actually performs the rescan. By default, the value is set to FALSE.

Dieses Attribut wird nur als Optimierung verwendet. Bevor ein Klient versucht, einen Anschluß aufzufrischen, kann er zuerst prüfen, ob die Hardware dies un terstützen kann. Dieselbe Information kann erlangt werden, indem die THardwareInterfaceReference 222 für den Anschluß aktiviert wird. Die überwiegende Mehrheit der Hardware unterstützt jedoch keine Neukonfigurierung, und die Verwendung der Eigenschaftensuchen ist langsam.This attribute is used only as an optimization. Before a client tries to refresh a port, it can first check whether the hardware supports this and The same information can be obtained by enabling THardwareInterfaceReference 222 for the port. However, the vast majority of hardware does not support reconfiguration and using property lookups is slow.

Wants persistent Connections (möchte nachhaltig wirkende Verbindungen):Wants persistent connections:

Dies ist ein Boolscher Wert. Das Konzept der Wirkungsdauer ist dasselbe wie jenes, das im Zusammenhang mit THardwareModule 206 beschrieben wurde. Ein Konnektor kann anfordern, daß seine Verbindung(en) nachhaltig wirkend ist bzw. sind. Eine Verbindung ist dann nachhaltig wirkend, wenn einer der beiden Konnektoren, welche die Verbindung durchführen, dies anfordert. Standardmäßig wird der Wert auf FALSCH gesetzt.This is a boolean value. The concept of duration is the same as that described in connection with THardwareModule 206. A connector can request that its connection(s) be persistent. A connection is persistent if one of the two connectors making the connection requests it. By default, the value is set to FALSE.

Ein Konnektor, der nachhaltig wirkende Verbindungen möchte, impliziert, daß auch seine Einrichtung Wirkungsdauer möchte. Wenn die beiden nicht übereinstimmen, wird eine Ausnahme erzeugt.A connector that wants persistent connections implies that its device also wants persistent connections. If the two do not match, an exception is raised.

HardwareInterfaceCategoryHardwareInterfaceCategory

Aufgabe der HardwareInterfaceCategory 214 ist es, Klienten die Möglichkeit zu geben, THardwareInterface-Objekte 212 nach ihrer Art zu gruppieren. Zum Beispiel möchte ein Klient alle seriellen Anschlüsse für eine gegebene Hardwarekonfiguration finden und gruppieren. Eine Instanz von HardwareInterfaceCategory 214 repräsentiert eine Schnittstellenart, die ein Konnektor zu repräsentieren in der Lage ist. Jedes THardwareInterface-Objekt 212 besitzt ein HardwareInterfaceCategory-Objekt 214 für jede Schnittstellenart, die es repräsentieren kann. Die Schnittstellenkategorien umfassen: Seriell, Parallel, Video, MIDI, ADB, SCSI und Slot.The purpose of the HardwareInterfaceCategory 214 is to provide clients with the ability to group THardwareInterface objects 212 by their type. For example, a client may want to find and group all serial ports for a given hardware configuration. An instance of HardwareInterfaceCategory 214 represents an interface type that a connector is capable of representing. Each THardwareInterface object 212 has a HardwareInterfaceCategory object 214 for each interface type that it can represent. The interface categories include: Serial, Parallel, Video, MIDI, ADB, SCSI, and Slot.

THardwareConnectionTHardwareConnection

Aufgabe eines THardwareConnection-Objektes 216 ist es, unterschiedliche Präsentationen für Verbindungen aufgrund ihres Status zu unterstützen. Eine Instanz von THardware-Connection 216 repräsentiert eine Verbindung zwischen zwei THardwareInterface-Objekten 212.The purpose of a THardwareConnection object 216 is to support different presentations for connections based on their status. An instance of THardwareConnection 216 represents a connection between two THardwareInterface objects 212.

Ein Hardwareverbindungsobjekt 216 besitzt die folgenden Attribute:A hardware connection object 216 has the following attributes:

Kind (Art):Child (type):

Eine Verbindung kann automatisch oder manuell sein. Eine automatische Verbindung wird vom System hergestellt. Eine manuelle Verbindung wird vom Benutzer hergestellt. Es ist wichtig, in der Lage zu sein, zwischen diesen beiden Verbindungsarten unterscheiden zu können. Ein Benutzer sollte automatische Verbindungen nicht modifizieren. Daher werden diese Verbindungen so präsentiert, daß Benutzer davon abgehalten werden, sie zu ändern. Standardmäßig wird der Wert auf Automatisch gesetzt.A connection can be automatic or manual. An automatic connection is made by the system. A manual connection is made by the user. It is important to be able to distinguish between these two types of connections. A user should not modify automatic connections. Therefore, these connections are presented in a way that discourages users from changing them. By default, the value is set to Automatic.

Wants Persistence (Möchte Wirkungsdauer):Wants Persistence:

Ein Boolscher Wert. Ein abgeleitetes Attribut, das wahr ist, wenn einer der beiden Konnektoren nachhaltig wirkende Verbindungen möchte.A Boolean value. A derived attribute that is true if either connector wants persistent connections.

Ein Verbindungsobjekt 216 kann erzeugt werden, wenn (1) die maximale Anzahl der Verbindungen an keinem der beiden THardwareInterface-Objekte 212 überschritten wird; (2) der "Stapel" von Diensten zwischen den zwei THardwareInterface-Objekten 212 erzeugbar ist (oder erzeugt ist) . Dies bedeutet, daß die entsprechenden Dienste installiert werden müssen, bevor ein Benutzer eine neue Einrichtung in seinem Computerbetrachter installieren darf; und (3) die Modi der zwei THardwareInterface-Objekte 212 gültig sind (dazu ist die untenstehende Tabelle zu benutzen): Tabelle 1 A connection object 216 may be created if (1) the maximum number of connections is not exceeded on either of the two THardwareInterface objects 212; (2) the "stack" of services between the two THardwareInterface objects 212 is createable (or is created). This means that the corresponding services must be installed before a user is allowed to install a new device in his computer viewer; and (3) the modes of the two THardwareInterface objects 212 are valid (use the table below): Table 1

TPartLocatorTPartLocator

Aufgabe des TPartLocator 218 ist es, alle "installierten" THardwareModule-"Prototypen" für eine spezifische Teilebehälterkategorie zu finden. Als Mitglied eines TPartsBin-Objektes 220 repräsentiert eine Instanz von TPartlocator 218 die Gruppe von Einrichtungen, welche von einem Teilebehälterbetrachter für einen bestimmten Karteireiter anzuzeigen ist. Jedes TPartLocator-Objekt 218 besitzt eine BinCategory (Behälterkategorie). Die Bincategory legt fest, welche Arten von Einrichtungen das TPartLocator-Objekt 218 finden wird. Wenn zum Beispiel die BinCategory = "Drucker" ist, wird das TPartlocator-Objekt 218 alle Drucker-Prototypen finden, die im System "installiert" sind. Wenn diese Behälterkategorie vom Teilebehälter verwendet wird, entspricht sie einem Karteireiter am Teilebehälterbetrachter. Der Teilebehälterbetrachter besitzt einen TPartLocator für jeden Karteireiter, den er anzeigt.The job of the TPartLocator 218 is to find all "installed" THardwareModule "prototypes" for a specific parts bin category. As a member of a TPartsBin object 220, an instance of TPartlocator 218 represents the set of devices to be displayed by a parts bin viewer for a particular tab. Each TPartLocator object 218 has a BinCategory. The BinCategory determines what types of devices the TPartLocator object 218 will find. For example, if the BinCategory = "Printers", the TPartlocator object 218 will find all printer prototypes that are "installed" in the system. When this bin category is used by the parts bin, it corresponds to a tab on the parts bin viewer. The Parts Bin Viewer has a TPartLocator for each tab it displays.

Ein TPartLocator-Objekt 218 bezieht sich auf eine Gruppe von Parts (Teilen) (d.h. THardwareModules 206). Jedes Teil repräsentiert eine Einrichtung, welche das Computersystem unterstützen kann. Zum Beispiel besitzt ein Drucker-TPartLocator-Objekt ein Prototyp-THardwareModule-Objekt für jede gefundene Druckerart.A TPartLocator object 218 refers to a group of Parts (i.e., THardwareModules 206). Each Part represents a device that the computer system can support. For example, a printer TPartLocator object has a prototype THardwareModule object for each type of printer found.

Ein TPartLocator-Objekt 218 besitzt die folgenden zusätzlichen Verhalten:A TPartLocator object 218 has the following additional behaviors:

Alle THardwareModule-Objekte 206, die im Eigentum einer Instanz von TPartLocator 218 stehen, gehören zur selben HardwareModuleCategory 208.All THardwareModule objects 206 owned by an instance of TPartLocator 218 belong to the same HardwareModuleCategory 208.

Alle THardwareModule-Objekte 206, die im Eigentum einer Instanz von TPartLocator 218 stehen, besitzen einzigartige HardwareModuleSignature-Objekte 210.All THardwareModule objects 206 owned by an instance of TPartLocator 218 have unique HardwareModuleSignature objects 210.

TPartsBinTPartsBin

Aufgabe von TPartsBin 220 ist es, das Übermaß an manuell konfigurierbaren Einrichtungen in sinnvolle Gruppen in Beziehung stehender Einrichtungen zu organisieren. Anstatt zum Beispiel dem Benutzer eine vollständige Liste aller Einrichtungen zu präsentieren, die sein System unterstützen kann, organisiert der Teilebehälter 220 diese Gruppe von Einrichtungen in mehreren Listen, wobei jede Liste auf einer Einrichtungskategorie basiert. Ein TPartsBin-Objekt 220 besitzt eine Gruppe von Behälter-TPartLocator-Objekten 218. Jeder Behälter repräsentiert eine Unterteilung und entspricht exakt einem Karteireiter am Teilebehälterbetrachter. Der Teilebehälterbetrachter zeigt den Inhalt der TPartLocator-Objekte 218 an. Wenn neue "Teile" in das System eingebracht (d.h. installiert) werden, werden die entsprechenden TPartLocator-Objekte 218 aktualisiert. Darüber hinaus werden, wenn neue Kategorien von "Teilen" eingeführt werden, neue TPartLocator-Objekte 218 vom TPartsBin-Objekt 220 erzeugt, und neue Karteireiter werden automatisch dargestellt. Vom Benutzer maßschneiderbare Lokatoren werden nicht ausgeschlossen.The purpose of TPartsBin 220 is to organize the abundance of manually configurable devices into meaningful groups of related devices. For example, instead of presenting the user with a complete list of all devices his system can support, the Parts Bin 220 organizes this group of devices into multiple lists, with each list based on a device category. A TPartsBin object 220 has a group of bin TPartLocator objects 218. Each bin represents a subdivision and corresponds exactly to a tab on the Parts Bin Viewer. The Parts Bin Viewer displays the contents of the TPartLocator objects 218. As new "parts" are introduced into the system (i.e., installed), the corresponding TPartLocator objects 218 are updated. In addition, when new categories of "parts" are introduced, new TPartLocator objects 218 are created from the TPartsBin object 220 and new tabs are automatically displayed. User-tailorable locators are not excluded.

Der Teilebehälter präsentiert dem Benutzer alle "potentiell" anschließbaren "stummen" Einrichtungen (wie der Apple Chooser; nur zeigt der Chooser auch einige der momentan angeschlossenen Einrichtungen an). Die Darstellung besteht aus einem Fenster mit einem Karteireiter für jeden Einrichtungstyp. Zum Beispiel sind Karteireiter für Drucker und Modems vorhanden. Der Benutzer wählt einen bestimmten Karteireiter aus, um alle Einrichtungen eines bestimmten Typs betrachten zu können. Der Benutzer kann eine Einrichtung aus dem Teilebehälter zum Computerbetrachter ziehen, um sie anzuschließen.The Parts Bin presents the user with all "potentially" connectable "dumb" devices (like the Apple Chooser, except the Chooser also shows some of the currently connected devices). The display consists of a window with a tab for each device type. For example, there are tabs for printers and modems. The user selects a specific tab to view all devices of a specific type. The user can drag a device from the Parts Bin to the Computer Viewer to connect it.

Der Teilebehälter ersetzt jenen Teil des Appler Chooser oder einer ähnlichen Einheit, wo ein Benutzer einen Drucker auswählen und dann auf den Anschluß des Druckers klicken würde, um ihn anzuschließen. Er ersetzt auch jenen Teil von MacTerminal oder einer ähnlichen Anwendung, wo der Benutzer jenen Anschluß auswählen würde, mit dem das Modem verbunden ist.The Parts Bin replaces that part of Appler Chooser or a similar unit where a user would select a printer and then click on the printer's port to connect it. It also replaces that part of MacTerminal or a similar application where the user would select the port to which the modem is connected.

Jede Datei, welche einen Prototyp eines THardware-Module 206 repräsentiert und aller Voraussicht nach im Teilebehälter aufscheint, muß eine PartsBin-THardwareCategory-Eigenschaft für jede Unterteilung besitzen, in welcher das Icon voraussichtlich erscheinen wird.Each file representing a prototype of a THardware Module 206 and expected to appear in the Parts Bin must have a PartsBin THardwareCategory property for each partition in which the icon is expected to appear.

Ein TPartsbin-Objekt 220 besitzt die folgenden zusätzlichen Verhalten:A TPartsbin object 220 has the following additional behaviors:

Der Benutzer kann jedes der Icons öffnen, um nachhaltig wirkende Standardeinstellungen festzulegen.The user can open any of the icons to set permanent default settings.

Ein Icon kann zu mehr als einer Teilebehälterkategorie gehören und daher in mehr als einer Unterteilung eines Teilebehälters aufscheinen.An icon can belong to more than one parts bin category and therefore appear in more than one subdivision of a parts bin.

THardwareInterfaceReferenceTHardwareInterfaceReference

Aufgabe von THardwareInterfaceReference 222 ist es, Klienten von den Einzelheiten darüber abzuschirmen, wie ein Dienst für eine lokales Einrichtung erzeugt wird. Es kapselt die zur Erzeugung des Dienstes notwendigen Einzelheiten ein (zum Beispiel, an welchem Anschluß die Einrichtung angeschlossen ist) . Es verwendet diese Informationen gemeinsam mit anderen Informationen, um den entsprechenden Dienstestapel zu bauen. Die als Ergebnis der Stapelerzeugung zurückgegebene Schnittstelle ist eine starke Schnittstelle zur gewünschten Einrichtung. Diese "beste" Schnittstelle wird direkt vom Klienten festgelegt.The purpose of THardwareInterfaceReference 222 is to shield clients from the details of how to create a service for a local device. It encapsulates the details necessary to create the service (for example, which port the device is connected to). It uses this information together with other information to build the appropriate service stack. The interface returned as a result of stack creation is a strong interface to the desired device. This "best" interface is specified directly by the client.

Eine Instanz eines aktiven THardwareInterfaceReference-Objektes repräsentiert den Zugriff auf einen Dienst, der von einer realen, lokalen Einrichtung angeboten wird.An instance of an active THardwareInterfaceReference object represents access to a service offered by a real, local device.

THardwareInterfaceIdentifierTHardwareInterfaceIdentifier

Aufgabe von THardwareInterfaceIdentifier 224 ist es, auf einzigartige Weise eine reale, physikalische Hardwarekomponente zu identifizieren. THardwareInterfaceIdentifier-Objekte 224 werden von Diensten und Konfigurationszugriffsmanagern (CAMs) verwendet, um die physikalischen Informationen zu erhalten, die sie benötigen, um die Hardware w tatsächlich anzutreiben (zum Beispiel benötigt ein Dienst die physikalische Adresse des Chips, den IRQ, Informationen über die Byte-Ebene usw.). THardwareInterfaceIdentifier-Objekte 224 sind von ihrer Art her stark, so daß der Dienst genau weiß, welche Informationen verfügbar sind und wie sie zu erhalten sind.The purpose of THardwareInterfaceIdentifier 224 is to uniquely identify a real, physical hardware component. THardwareInterfaceIdentifier objects 224 are used by services and configuration access managers (CAMs) to obtain the physical information they need to actually drive the hardware (for example, a service may need the physical address of the chip, the IRQ, byte-level information, etc.). THardwareInterfaceIdentifier objects 224 are strong in nature, so the service knows exactly what information is available and how to obtain it.

Als Beispiel dient das in Figur 6 gezeigte THardware-InterfaceIdentifier-Objekt für ein serielles THardwarelnterface-Objekt, welches im Eigentum eines Computer-THardwareModule-Objektes steht. Das THardwareInterfaceIdentifier-Objekt könnte von einem Dienst verwendet werden, um die physikalische E/A-Adresse des SCC-Chips zu holen, den es repräsentiert.As an example, the THardwareInterfaceIdentifier object shown in Figure 6 is for a serial THardwareInterface object owned by a computer THardwareModule object. The THardwareInterfaceIdentifier object could be used by a service to get the physical I/O address of the SCC chip it represents.

Ein Konfigurationszugriffsmanager (CAM) ist eine Eingabe-/Ausgabe-Systemeinheit, welche für die Initialisierung von Systemhardwareressourcen verantwortlich ist. Für jede Art von Hardwareressource wird von ihr eine Unterklasse gebildet. Für automatisch konfigurierende Einrichtungen sind die Unterklassen dafür verantwortlich, lebende Einrichtungen zu finden und ihre zusammenhängenden CAMs zu starten. Ein CAM kann einen Zugriffsmanager (AM) für eine Einrichtung entweder automatisch erzeugen und initiieren oder nicht. Zum Beispiel kann ein SCSI-CAM einen AM für eine SCSI-Festplatte erzeugen und initiieren, nicht aber für einen SCSI-Drucker. AMs für Drucker werden wirklich erst dann benötigt, wenn der Drucker verwendet wird.A configuration access manager (CAM) is an input/output system unit responsible for initializing system hardware resources. It has a subclass for each type of hardware resource. For auto-configuring devices, the subclasses are responsible for finding live devices and starting their associated CAMs. A CAM may or may not automatically create and initiate an access manager (AM) for a device. For example, a SCSI CAM may create and initiate an AM for a SCSI hard disk, but not for a SCSI printer. AMs for printers are really only needed when the printer is in use.

Ein Zugriffsmanager ist ein E/A-Dienst, der direkt mit einem Chip sprechen kann. Der AM entscheidet zwischen mehreren Anforderungen bezüglich des Zugriffes auf den Chip.An access manager is an I/O service that can talk directly to a chip. The AM decides between several requests regarding access to the chip.

Betrieb gemäß einer bevorzugten AusführungsformOperation according to a preferred embodiment

Nun wird der Betrieb gemäß einer bevorzugten Ausführungsform beschrieben werden, indem die Art und Weise diskutiert wird, in der die vorliegende Erfindung in einem typischen Hardwarekonfigurationsszenarium arbeitet. Der Betrieb gemäß einer bevorzugten Ausführungsform unter unterschiedlichen Hardwarekonfigurationsszenarien wird für Fachleute dieses Bereiches aufgrund der hierin enthaltenen Diskussion offensichtlich sein.Now, operation according to a preferred embodiment will be described by discussing the manner in which the present invention operates in a typical hardware configuration scenario. Operation according to a preferred embodiment under different hardware configuration scenarios will be apparent to those skilled in the art based on the discussion contained herein.

Dieses Szenarium bezieht sich auf den manuellen Anschluß einer Einrichtung. In diesem Szenarium fügt ein Benutzer eine neue serielle ISA-Karte zu seinem System hinzu und bootet es erfolgreich. Während des Boot-Prozesses findet die ISA-Sonde die Karte nicht, so daß die Karte nicht verwendet werden kann. Des weiteren wird die Karte im Computerbetrachter nicht dargestellt. Ihre Abwesenheit im Computerbetrachter ist für den Benutzer ein Hinweis darauf, daß das System sie nicht sieht. Der Benutzer muß seinem System nun Informationen über dieses neue Hardware-Modul geben. Er tut dies, indem er den Computerbetrachter gemäß der Unterstützung durch das Hardwarekonfigurationssystem verwendet, wie dies in den folgenden Schritten dargestellt ist.This scenario refers to manually attaching a device. In this scenario, a user adds a new ISA serial card to his system and boots it successfully. During the boot process, the ISA probe does not find the card, so the card cannot be used. Furthermore, the card is not shown in the Computer Viewer. Its absence in the Computer Viewer is an indication to the user that the system does not see it. The user must now give his system information about this new hardware module. He does this by using the Computer Viewer as supported by the Hardware Configuration System, as shown in the following steps.

(1) Zum ersten öffnet der Benutzer den Computerbetrachter und den Teilebehälter. Figur 7A ist eine teilweise Darstellung des Anfangszustandes der Computerhardwarekonfiguration und des Teilebehälters. Die dargestellte Computerhardwarekonfiguration besitzt ein Computermodul mit einem leeren ISA-Slot. Der Teilebehälter enthält die ISA-Karte, mit der wir das System aktualisieren möchten.(1) First, the user opens the computer viewer and the parts bin. Figure 7A is a partial representation of the initial state of the computer hardware configuration and the parts bin. The computer hardware configuration shown has a computer module with an empty ISA slot. The parts bin contains the ISA card with which we want to update the system.

(2) Der Benutzer zieht das Icon für die ISA-Karte vom Teilebehälter zu einem beliebigen ISA-Slot-Icon am Computer (vorzugsweise auf jenen Slot, in den die Karte tatsächlich eingesteckt wird) . Der Standardkonnektor wird vom THardwareModule-Objekt der Karte erhalten (in diesem Beispiel ist es der Kantenkonnektor). Durch die Typenverhandlung zwischen den zwei Icons wird sichergestellt, daß diese zwei miteinander verbunden werden dürfen. Der Standard-Verhandlungsprozeß berücksichtigt die hierin festgehaltenen Invarianten für Verbindungen.(2) The user drags the icon for the ISA card from the parts bin to any ISA slot icon on the computer (preferably the slot into which the card will actually be plugged). The default connector is obtained from the card's THardwareModule object (in this example, it is the edge connector). Type negotiation between the two icons ensures that the two can be connected. The default negotiation process respects the connection invariants specified here.

(3) Nun wird diese Karte in den Slot eingesteckt. Dies wird wie folgt durchgeführt. Zuerst fügt der Computerbetrachter (über ein Befehlsobjekt) die Karte dem THardwareModule-Objekt zur ComputerhardwareConfiguration (Computerhardware-Konfiguration) hinzu. Dies ist in Figur 7B dargestellt.(3) Now this card is inserted into the slot. This is done as follows. First, the Computer Viewer (via a Command object) adds the card to the THardwareModule object in the Computer Hardware Configuration. This is shown in Figure 7B.

(4) Als nächstes muß die Verbindung durchgeführt werden. Dies ist in Figur 7C dargestellt. Es gibt zwei Konnektor- (d.h. THardwareInterface-) Objekte: eines vom Computerbetrachter, das vom Benutzer ausgewählt wird, und eines von der Karte, das standardmäßig ausgewählt wird. Der Befehl verbindet die zwei Konnektoren miteinander, indem er eine THardwareConnection erstellt. Der letzte Schritt besteht darin, das Add-Verfahren (Hinzufüge-Verfahren) an der Verbindung aufzurufen, um die Verbindung zum Abschluß zu bringen.(4) Next, the connection must be made. This is shown in Figure 7C. There are two connector (i.e. THardwareInterface) objects: one from the computer viewer, which is selected by the user, and one from the card, which is selected by default. The command connects the two connectors together by creating a THardwareConnection. The last step is to call the Add method on the connection to complete the connection.

(5) Die ComputerhardwareConfiguration besitzt nun eine Kopie der ISA-Karte und ist mit dem ISA-Slot verbunden. Dies ist in Figur 7D dargestellt.(5) The Computer Hardware Configuration now has a copy of the ISA card and is connected to the ISA slot. This is shown in Figure 7D.

(6) Jegliche Änderungen an der Hardwarekonfiguration führen zu einem Meldungsereignis, das an alle interessierten Klienten gesandt wird. Zum Beispiel ist die ISA-Konfigurationsdatenbank an manuell angeschlossenen ISA-Karten interessiert und erhält eine Meldung. Dies ist in Figur 7E dargestellt. In vielen Fällen kann die neue ISA-Karte verwendet werden, sobald die ISA- Datenbank sie kennt. Wenn jedoch der Konfigurationszugriffsmanager (CAM) der ISA-Karte zusätzliche Informationen anfordert (z.B physikalische Adresse, IRQ und/oder DMA-Informationen), kann es sein, daß die Karte noch nicht zur Verfügung steht. Der Benutzer muß in einem solchen Fall dem CAM der Karte vielleicht zusätzliche Informationen zur Verfügung stellen. Wenn dies der Fall ist, sollte das Icon der ISA-Karte den Status anzeigen (über ein software-beeinträchtigtes Einrichtungs-Icon oder etwas ähnliches). Des weiteren kann ein Benutzeralarm erzeugt werden, um den Benutzer auf dieses Problem hinzuweisen.(6) Any changes to the hardware configuration result in a notification event that is sent to all interested clients. For example, the ISA configuration database is interested in manually connected ISA cards and receives a notification. This is shown in Figure 7E. In many cases, the new ISA card can be used as soon as the ISA database knows about it. However, if the ISA card's configuration access manager (CAM) requires additional information (e.g., physical address, IRQ, and/or DMA information), the card may not yet be available. The user may need to provide additional information to the card's CAM in such a case. If this is the case, the ISA card's icon should indicate the status (via a software-impaired device icon or something similar). Furthermore, a user alert can be generated to alert the user to this problem.

Wirkungsdauer von HandhabenDuration of action of handling

Dieser Abschnitt beschreibt die Eigenschaften von Handhaben in ihrer Beziehung zu den Masterobjekten in einer Hardwarekonfiguration. Das Hardwarekonfigurationsrahmenwerk gemäß einer bevorzugten Ausführungsform bietet allen Klienten nachhaltig wirkende Handhaben für folgendes: THardware-Configuration 204, THardwareModule 206, THardwareInterface 212 und THardwareConnection 216.This section describes the properties of handles in their relationship to the master objects in a hardware configuration. The hardware configuration framework according to a preferred embodiment provides all clients with persistent handles for the following: THardware-Configuration 204, THardwareModule 206, THardwareInterface 212 and THardwareConnection 216.

Authentische und lose HandhabenAuthentic and loose handling

Handhaben können sich in einem von zwei Zuständen befinden: authentisch oder lose. Eine authentische Handhabe ist eine Handhabe, die auf einen Master in der Datenbank verweist. Man erhält eine authentischen Handhabe, indem man einen Master zur Datenbank hinzufügt oder eine andere authentische Handhabe kopiert. Eine lose Handhabe ist eine Handhabe, die nicht mehr auf einen Master in der Datenbank verweist. Lose Handhaben können kopiert werden, aber Klienten verwenden vielleicht keine losen Handhaben, um den Master tatsächlich zu lesen oder zu schreiben.Handles can be in one of two states: authentic or loose. An authentic handle is a handle that points to a master in the database. An authentic handle is obtained by adding a master to the database or by adding another authentic handle. A loose handle is a handle that no longer points to a master in the database. Loose handles can be copied, but clients may not use loose handles to actually read or write the master.

Handhaben-ÜbergangHandling transition

Eine Handhabe geht vom authentischen in den losen Zustand über, wenn eines der folgenden Ereignisse eintritt. (1) Unbemerkt von einer Handhabe wird der Master explizit von einer anderen Handhabe aus der Datenbank entfernt. Oder (2) der Master wird implizit als Ergebnis eines Neubootens aus der Datenbank entfernt (weil der Master als nicht nachhaltig wirkend markiert wurde). Eine Handhabe geht vom losen in den authentischen Zustand über, wenn ein neuer Master der Datenbank hinzugefügt wird, der "äquivalent" zum (alten) Master ist, auf den von der Handhabe verwiesen wurde, als sie sich im authentischen Zustand befand. Die Äquivalenz wird im folgenden definiert.A handle transitions from the authentic to the loose state when one of the following events occurs. (1) Unbeknownst to a handle, the master is explicitly removed from the database by another handle. Or (2) the master is implicitly removed from the database as a result of a reboot (because the master was marked as non-sustainable). A handle transitions from the loose to the authentic state when a new master is added to the database that is "equivalent" to the (old) master pointed to by the handle when it was in the authentic state. Equivalence is defined below.

Handhaben -ÄquivalenzHandling -Equivalence

Der einzelne THardwareConfiguration-Master pro Hardwarekonfiguration wird implizit als nachhaltig wirkend markiert. THardwareConfiguration-Master gehen nur dann weg, wenn die Datenbank zerstört wird. Handhaben, die auf zerstörte Datenbanken verweisen, sind dauerhaft lose. Zum Zwecke dieses Abschnittes werden zwei Konfigurationsmaster niemals als "äquivalent" betrachtet. Ein Paar THardwareModule-Master wird als "äquivalent" betrachtet, wenn (1) ihre Werte für das Type-Attribut (THardwareModuleSignature) ident sind und (2) es eine Eins-zu-Eins-Zuordnung zwischen äquivalenten THardwareInterface-Objekten der zwei Modul- Master gibt.The single THardwareConfiguration master per hardware configuration is implicitly marked as persistent. THardwareConfiguration masters only go away when the database is destroyed. Handles pointing to destroyed databases are permanently loose. For the purposes of this section, two configuration masters are never considered "equivalent." A pair of THardwareModule masters is considered "equivalent" if (1) their values for the Type attribute (THardwareModuleSignature) are identical and (2) there is a one-to-one mapping between equivalent THardwareInterface objects of the two module masters.

Ein Paar THardwareInterface-Master wird als "äquivalent" betrachtet, wenn (1) sie zum selben THardwareModule- Master gehören und (2) sie THardwareInterfaceIdentifiers besitzen, die als "==" betrachtet werden. Ein Paar THardwareConnection-Master wird als "äquivalent" betrachtet, wenn ihre eigenen Endpunkte äquivalent sind.A pair of THardwareInterface masters is considered "equivalent" if (1) they belong to the same THardwareModule Masters and (2) they have THardwareInterfaceIdentifiers that are considered "==". A pair of THardwareConnection masters is considered "equivalent" if their own endpoints are equivalent.

Gleichzeitigkeit von HandhabenSimultaneity of handling

Dieser Abschnitt beschreibt das vom Hardwarekonfigurationsrahmenwerk gemäß einer bevorzugten Ausführungsform gebotene Gleichzeitigkeitsverhalten von Handhaben. Das Hardwarekonfigurationsrahmenwerk bietet alle Klienten mit Handhaben für folgendes: THardwareConfiguration, THardwareMod w ule, THardwareInterface und THardwareConnection. Eine Handhabe ist nur dann mehrpfadsicher, wenn folgendes gegeben ist: Ein Verfahren, das an einem Master in einer Konfigurationsdatenbank arbeitet (im Gegensatz zu einem als Referenz gezählten Master), ist im Hinblick auf andere Operationen am selben Master atomar. Im Hinblick auf die Implementation bedeutet das, daß eine Handhabe keinen internen Monitor besitzt. Ein als Referenz gezählter Master besitzt auch keinen internen Monitor. Aber für einen Master in der Konfigurationsdatenbank gibt es eine Synchronisation, um sicherzustellen, daß jeweils nur höchstens eine Operation am Master ausgeführt wird.This section describes the concurrency behavior of handles provided by the hardware configuration framework according to a preferred embodiment. The hardware configuration framework provides all clients with handles for THardwareConfiguration, THardwareMod w ule, THardwareInterface, and THardwareConnection. A handle is multipath safe only if the following holds: A method operating on a master in a configuration database (as opposed to a reference-counted master) is atomic with respect to other operations on the same master. In implementation terms, this means that a handle has no internal monitor. A reference-counted master also has no internal monitor. But for a master in the configuration database, there is synchronization to ensure that only at most one operation is performed on the master at a time.

KlassenschnittstellenClass interfaces

Zum Zwecke der Veranschaulichung werden nun zusätzliche Einzelheiten beschrieben (wie zum Beispiel die Wirkungsdauer von Handhaben und die Funktionalität von Mitgliedsfunktionen), welche zu den ausgewählten Klassen des Hardwarekonfigurationsrahmenwerkes (siehe Figur 2) gehören. Solche zusätzlichen Einzelheiten für Klassen, die im folgenden nicht spezifisch diskutiert werden, werden für Fachleute dieses Bereiches aus der hierin enthaltenen Diskussion offensichtlich sein.For purposes of illustration, we now describe additional details (such as the duration of handles and the functionality of member functions) associated with selected classes of the hardware configuration framework (see Figure 2). Such additional details for classes not specifically discussed below will be apparent to those skilled in the art from the discussion contained herein.

THardwareConfigurationTHardwareConfiguration

Ein THardwareConfigurationHandle 204 kann in einer Datei gespeichert und jederzeit wiederhergestellt werden. Die Handhabe ist solange gültig, bis das Destroy-Verfahren (Zerstören) aufgerufen wird. Die THardwareConfiguration-Klasse 204 umfaßt die folgenden Funktionen.A THardwareConfigurationHandle 204 can be saved to a file and restored at any time. The handle is valid until the Destroy method is called. The THardwareConfiguration class 204 includes the following functions.

THardwareConfigurationhandle ()THardwareConfigurationhandle()

Konstruiert eine lose Handhabe. Nützlich als Ziel zum Strömen und Zuordnen.Constructs a loose handle. Useful as a target for streaming and mapping.

THardwareConfigurationHandle(const TText& name)THardwareConfigurationHandle(const TText& name)

Konstruiert eine Handhabe zu einem Master-THardware-Configuration-Objekt, welches unter Verwendung der vom Name-Argument festgelegten nachhaltig wirkenden Hardware-Konfiguration konstruiert wird. Es können viele unterschiedliche THardwareConfigurations gleichzeitig bestehen, und dieser Name dient dazu, diese auf einzigartige Weise zu unterscheiden. Der Namensraum wird verwaltet, indem der Name der Einrichtung an den Anfang des Namensargumentes gehängt wird. Wenn keine nachhaltig wirkende Hardwarekonfiguration erwünscht ist, erzeugt die Einfügung eines Leernamens (d.h. "") eine nicht nachhaltig wirkende, als Referenz gezählte Hardwarekonfiguration.Constructs a handle to a master THardwareConfiguration object, which is constructed using the persistent hardware configuration specified by the name argument. Many different THardwareConfigurations can exist simultaneously, and this name is used to uniquely distinguish them. The namespace is managed by appending the device name to the beginning of the name argument. If a persistent hardware configuration is not desired, inserting a blank name (i.e. "") creates a non-persistent hardware configuration counted by reference.

Die nachhaltig wirkende Hardwarekonfiguration, spezifiziert durch das Name-Argument, enthält alle THardwareModule- und THardwareConnection-Objekte, welche Wirkungsdauer angefordert haben.The persistent hardware configuration, specified by the Name argument, contains all THardwareModule and THardwareConnection objects that have requested a persistence period.

Alle Handhaben, die für den THardwareConfigurationHandie mit der Bezeichnung "Foo" konstruiert wurden, beziehen sich auf den einzelnen Master in der nachhaltig wirkenden Hardwarekonfiguration mit der Bezeichnung "Foo".All handles designed for the THardwareConfigurationHandie named "Foo" refer to the single master in the persistent hardware configuration named "Foo".

THardwareConfigurationHandle (const THardware-Configuration Handle& copyFromTHardwareConfigurationHandle (const THardware-Configuration Handle& copyFrom

Kopiert die Handhabe, nicht den Master. Die neue Handhabe wird zu einer Referenz auf den Master, auf den von copyFrom (kopieren von) verwiesen wird.Copies the handle, not the master. The new handle becomes a reference to the master pointed to by copyFrom.

THardwareConfigurationHandle& operator=(const THardware Configuration Handle& copyFrom)THardwareConfigurationHandle& operator=(const THardware Configuration Handle& copyFrom)

Kopiert die Handhabe, nicht den Master.Copies the handle, not the master.

THardwareConfiguration Handle () THardwareConfiguration Handle()

Zerstört die Handhabe, nicht den Master.Destroy the handle, not the master.

void Destroy ()void Destroy()

Dieses Verfahren zerstört die nachhaltig wirkende Speicherung und sämtliche Masterobjekte in dieser Hardwarekonfiguration. Alle Handhaben zu jedem einzelnen Objekt in dieser Hardwarekonfiguration werden lose, einschließlich diesem.This process destroys the persistent storage and all master objects in this hardware configuration. All handles to every single object in this hardware configuration will be loose, including this one.

void GetAllHardwareModules (TCollectiOn< THardwareModule-Handle> & result) constvoid GetAllHardwareModules (TCollectiOn< THardwareModule-Handle> & result) const

Dieses Verfahren kopiert alle Handhaben, die für diese Hardwarekonfiguration angemeldet wurden, und fügt sie der Sammlung hinzu, die vom Result-Argument (Ergebnis-Argument) festgelegt wurde. Es leert nicht zuerst das Ergebnis.This procedure copies all handles registered for this hardware configuration and adds them to the collection specified by the result argument. It does not flush the result first.

Die kopierten Handhaben spiegeln den Status des Master-THardwareConfiguration-Objektes zum Zeitpunkt des Aufrufs dieses Verfahrens wider. Der Status des Master- THardwareConfiguration-Objektes kann sich jederzeit ändern und wird vom Ergebnis nicht direkt widergespiegelt. Änderungen werden von den Handhaben im Ergebnis widergespiegelt. Zum Beispiel wird jede Handhabe, deren Master aus seinem THardwareConfiguration-Objekt entfernt wurde, eine lose Handhabe. Die einzigen Verfahren, die an einer Handhabe im losen Zustand angewandt werden dürfen, sind das Zuordnen, Kopieren oder Strömen von Operatoren. Eine lose Handhabe wird authentisch, wenn sie das Ziel der Zuordnung oder des Strömens ist, wenn die Quelle nicht lose ist.The copied handles reflect the state of the master THardwareConfiguration object at the time this method is called. The state of the master THardwareConfiguration object can change at any time and is not directly reflected in the result. Changes are reflected by the handles in the result. For example, any handle whose master has been removed from its THardwareConfiguration object becomes a loose handle. The only methods that may be applied to a handle in the loose state are assigning, copying, or streaming operators. A loose Handling becomes authentic when it is the target of assignment or flow, when the source is not loose.

void GetHardwareModules (TCollection< THardwareModuleHandle> & result, const HardwareModuleCategory& desiredKind) constvoid GetHardwareModules (TCollection< THardwareModuleHandle> & result, const HardwareModuleCategory& desiredKind) const

Dieses Verfahren kopiert alle Handhaben von desiredkind (gewünschte Art), die für diese Hardwarekonfiguration angemeldet wurden, und fügt sie der Sammlung hinzu, die vom Result-Argument (Ergebnis-Argument) festgelegt wurde: Aufrufer übernimmt die Speicherung. Es leert nicht zuerst das Ergebnis.This method copies all handles of desiredkind declared for this hardware configuration and adds them to the collection specified by the result argument: caller handles the storage. It does not flush the result first.

Die kopierten Handhaben spiegeln den Status des Master-THardwareConfiguration-Objektes zum Zeitpunkt des Aufrufs dieses Verfahrens wider.The copied handles reflect the status of the master THardwareConfiguration object at the time this procedure is called.

void AddHardwareModule (THardwareModuleHandle& newHardware-Module)void AddHardwareModule (THardwareModuleHandle& newHardware-Module)

Dieses Verfahren fügt das gegebene newHardwareModule Objekt zu dieser Hardwarekonfiguration hinzu. Es tut dies, indem es das Master-THardwareModule-Objekt, auf welches von dem newHardwareModule-Objekt und jedem THardwareInterface-Handle-Objekt, das im Besitz von newHardwareModule steht, verwiesen wird, in die Hardwarekonfiguration verschiebt. Wenn der Klient Handhaben zu irgendeinem THardwareInterfaceHandle-Objekt besitzt, das im Eigentum von newHardware-Module steht, werden diese aktualisiert, um die Verschiebung in die Datenbank widerzuspiegeln.This method adds the given newHardwareModule object to this hardware configuration. It does this by moving the master THardwareModule object, which is referenced by the newHardwareModule object and any THardwareInterfaceHandle object owned by newHardwareModule, into the hardware configuration. If the client has handles to any THardwareInterfaceHandle object owned by newHardwareModule, they are updated to reflect the move in the database.

void RemoveHardwareModule (const THardwareModuleHandle& hardware Module)void RemoveHardwareModule (const THardwareModuleHandle& hardware Module)

Dieses Verfahren entfernt alle THardwareConnection-Objekte für jedes THardwareInterface-Objekt, das im Eigentum des Masters steht, auf den von hardwareModule verwiesen wird. Als nächstes wird der Master aus der Hardwarekonfiguration entfernt: der Master wird von dieser Handhabe referenzgezählt. Alle anderen Handhaben, die auf den Master verweisen, werden lose.This procedure removes all THardwareConnection objects for each THardwareInterface object owned by the master referenced by hardwareModule. Next, the master is removed from the hardware configuration: the master is referenced by this handle. All other handles that reference the master are dropped.

TInterest* CreateAnyChangeInterest ()TInterest* CreateAnyChangeInterest()

Dieses Verfahren erzeugt ein Interesse an jeglicher Änderung in der Hardwarekonfiguration (wozu auch jede Änderung an jedem Mitglied der Hardwarekonfiguration gehört); der Klient ist für die Ergebnisspeicherung zuständig. Eine Meldung wird von diesem THardwareConfiguration-Objekt an alle interessierten Klienten gesandt. Klienten können dieses Verfahren direkt aufrufen, um ein Interesse zu erzeugen, das zum Anmeldung für Meldungen verwendet wird.This method creates an interest in any change in the hardware configuration (which includes any change to any member of the hardware configuration); the client is responsible for storing the result. A notification is sent from this THardwareConfiguration object to all interested clients. Clients can call this method directly to create an interest, which is used to subscribe to notifications.

Tstream& operator»=(TStream& toWhere) constTstream& operator»=(TStream& toWhere) const

Ströme eine nachhaltig wirkende Referenz zur Master-Hardwarekonfiguration aus, welche diese Handhabe repräsentiert.Emit a persistent reference to the master hardware configuration that represents this handle.

Tstream& operator«= (TStream& fromWhere)Tstream& operator«= (TStream& fromWhere)

Ströme eine Referenz zu einer Master-Hardwarekonfiguration ein.Streams a reference to a master hardware configuration.

THardwareModuleTHardwareModules

Ein THardwareModuleHandle kann in einer Datei gespeichert und jederzeit wiederhergestellt werden. Die Handhabe bleibt solange gültig, bis der Master entfernt wird (über ein RemoveHardwareModule-Verfahren). Die THardwareModule-Klasse 206 umfaßt die folgenden Funktionen.A THardwareModuleHandle can be saved to a file and restored at any time. The handle remains valid until the master is removed (via a RemoveHardwareModule method). The THardwareModule class 206 includes the following functions.

THardwareModuleHandle ()THardwareModuleHandle ()

Erzeugt einen referenzgezählten Master, der nicht in einer beliebigen Hardwarekonfiguration vorhanden ist.Creates a reference-counted master that is not present in any hardware configuration.

THardwareModulHhandle (const THardwareModuleHandle& copyFrom)THardwareModuleHhandle (const THardwareModuleHandle& copyFrom)

Kopiert die Handhabe, nicht den Master. Die neue Handhabe wird zu einer Referenz auf den Master, auf den von copyfrom (kopieren von) verwiesen wird.Copies the handle, not the master. The new handle becomes a reference to the master pointed to by copyfrom.

THardwareModuleHandle& operator= (const THardwareModule Handle& copyFrom)THardwareModuleHandle& operator= (const THardwareModule Handle& copyFrom)

Kopiert die Handhabe, nicht den Master. Wenn die linke Seite die letzte Referenz auf einen Master ist, der sich in keiner Hardwarekonfiguration befindet, wird der Master zerstört. Die linke Handhabe wird dann zu einer Referenz auf den Master, der von copyFrom referenziert wird.Copies the handle, not the master. If the left hand side is the last reference to a master that is not in any hardware configuration, the master is destroyed. The left hand side then becomes a reference to the master referenced by copyFrom.

THardwareModulehandle ()THardwareModulehandle ()

Zerstört die Handhabe. Wenn dies die letzte Referenz auf einen Master ist, der sich in keiner Hardwarekonfiguration befindet, wird der Master zerstört.Destroys the handle. If this is the last reference to a master that is not in any hardware configuration, the master is destroyed.

void GetAllConnectors (TSequence&le;THardwareInterfaceHandle> & result) constvoid GetAllConnectors (TSequence&le;THardwareInterfaceHandle> & result) const

Dieses Verfahren kopiert alle Handhaben von THardwareInterface-Objekten, die im Eigentum von diesem THardwareModule stehen, und fügt sie der Sammlung hinzu, die vom Result-Argument (Ergebnis-Argument) festgelegt wurde: Aufrufer übernimmt die Speicherung. Es leert nicht zuerst das Ergebnis. Die Konnektoren werden dem Ergebnis in derselben Reihenfolge hinzugefügt, wie sie zum Modul zurückgegeben wurden (d.h. der erste hinzugefügte Konnektor wird zum ersten Konnektor, der vom TSequence-Iterator zurückgegeben wird).This method copies all handles of THardwareInterface objects owned by this THardwareModule and adds them to the collection specified by the Result argument: Caller handles the storage. It does not flush the Result first. The connectors are added to the result in the same order as they were returned to the module (i.e. the first connector added becomes the first connector returned by the TSequence iterator).

Die kopierten Handhaben spiegeln den Status des Master-THardwareModule-Objektes zum Zeitpunkt des Aufrufs dieses Verfahrens wider. Der Status des Master-THardwareModule-Objektes kann sich jederzeit ändern und wird vom Ergebnis nicht direkt widergespiegelt. Änderungen werden von den Handhaben im Ergebnis widergespiegelt.The copied handles reflect the status of the master THardwareModule object at the time this procedure is called. The status of the master THardwareModule object can change at any time and is not directly reflected by the result. Changes are reflected by the handles in the result.

Dieses Verfahren kann von Klienten jederzeit aufgerufen werden. Typischerweise ruft das Hardwarebetrachterrahmenwerk dieses Verfahren auf, um die Konnektorobjekte in einem HardwareModul den darzustellenden Konnektor-Icons zuzuordnen.This method can be called by clients at any time. Typically, the hardware viewer framework calls this method to map the connector objects in a hardware module to the connector icons to be displayed.

void GetDefaultConnectors (TSequence< THardwareInterface-Handle> & result) constvoid GetDefaultConnectors (TSequence< THardwareInterface handle> & result) const

Dieses Verfahren kopiert alle Handhaben von THardwareInterface-Objekten, die im Eigentum von diesem THardwareModule stehen und als Standardkonnektoren aufgezeichnet wurden, und fügt sie der Sammlung hinzu, die vom Result Argument (Ergebnis-Argument) festgelegt wurde: Aufrufer übernimmt die Speicherung. Es leert nicht zuerst das Ergebnis. Die Konnektoren werden dem Ergebnis in der gleichen Reihenfolge hinzugefügt, wie sie dem Modul hinzugefügt wurden.This method copies all handles of THardwareInterface objects owned by this THardwareModule and recorded as standard connectors and adds them to the collection specified by the Result Argument: caller does the storing. It does not flush the Result first. The connectors are added to the result in the same order as they were added to the module.

Die kopierten Handhaben spiegeln den Status des Master-THardwareModule-Objektes zum Zeitpunkt des Aufrufs dieses Verfahrens wider. Dieses Verfahren kann von Klienten jederzeit aufgerufen werden.The copied handles reflect the state of the master THardwareModule object at the time this method is called. This method can be called by clients at any time.

void AddConnector (const THardwareInterfaceHandle& newConnector, Boolean isDefault = FALSE)void AddConnector (const THardwareInterfaceHandle& newConnector, Boolean isDefault = FALSE)

Dieses Verfahren verschiebt das Master-THardwareInterface-Objekt, das von newconnector in den THardwareModule- Master referenziert wird. Wenn das isdefault-Argument wahr ist, wird newconnector als Standardkonnektor aufgezeichnet.This method moves the master THardwareInterface object referenced by newconnector to the master THardwareModule. If the isdefault argument is true, newconnector is recorded as the default connector.

Dieses Verfahren wird typischerweise dann aufgerufen, wenn ein THardwareModule-Objekt ganz von vorne konstruiert wird.This method is typically called when a THardwareModule object is constructed from scratch.

void RemoveConnector (const THardwareInterfaceHandle& connector)void RemoveConnector (const THardwareInterfaceHandle& connector)

Dieses Verfahren entfernt alle Verbindungen, die mit dem gegebenen Konnektor im Zusammenhang stehen. Als nächstes wird der von dem Konnektorargument spezifizierte Master aus der Hardwarekonfiguration entfernt: der Master wird von dieser Handhabe referenzgezählt. Alle anderen Handhaben, die auf den Master verweisen, werden lose.This procedure removes all connections associated with the given connector. Next, the master specified by the connector argument is removed from the hardware configuration: the master is reference counted by this handle. All other handles that point to the master are dropped.

void Getsignature (HardwareModuleSignature& signature) constvoid Getsignature (HardwareModuleSignature& signature) const

Kopiert eine persönlichkeitsneutrale Einheit, welche die Einrichtungsart repräsentiert, die dieses THardwareModule-Objekt repräsentiert, in das signature-Argument. Die persönlichkeitsneutrale Einheit kann dazu verwendet werden, um ein persönlichkeitsabhängiges Objekt (z.B. ein Präsentationsobjekt) zu erzeugen. Dieses Verfahren kann von Klienten jederzeit aufgerufen werden. Typischerweise ruft der Computerbetrachter dieses Verfahren auf, wenn das Präsentationsobjekt für dieses HardwareModul zum ersten Mal konstruiert wird.Copies a personality-neutral entity that represents the device type that this THardwareModule object represents into the signature argument. The personality-neutral entity can be used to create a personality-dependent object (e.g. a presentation object). This method can be called by clients at any time. Typically, the computer viewer calls this method when the presentation object for this HardwareModule is first constructed.

void SetSignature (const HardwarModuleSignature&)void SetSignature (const HardwarModuleSignature&)

Legt den Typ fest, den dieses THardwareModule-Objekt repräsentiert. Dieses Verfahren wird aufgerufen, wenn ein THardwareModule-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Specifies the type that this THardwareModule object represents. This method is called when a THardwareModule object is manually constructed from scratch, and is very rarely called directly by clients.

void GetCategories (TCollection< HardwareModuleCategory> & result) constvoid GetCategories (TCollection< HardwareModuleCategory> & result) const

Dieses Verfahren kopiert alle HardwareCategory-Objekte, die im Eigentum dieses THardwareModules stehen, und fügt sie der Sammlung hinzu, die vom Result-Argument (Ergebnis-Argument) festgelegt wurde: Aufrufer übernimmt die Speicherung. Es leert nicht zuerst das Ergebnis.This method copies all HardwareCategory objects owned by this THardwareModule and adds them to the collection specified by the Result argument: Caller handles the storage. It does not flush the result first.

Der Iterator spiegelt den Status des Master-THardware-Module-Objektes zum Zeitpunkt des Aufrufs dieses Verfahrens wider. Dieses Verfahren kann von Klienten jederzeit aufgerufen werden.The iterator reflects the status of the Master-THardware-Module object at the time this procedure is called. This procedure can be called by clients at any time.

void AddCategory (const HardwareModuleCategory& category)void AddCategory (const HardwareModuleCategory& category)

Hängt das category-Argument an das Ende der Liste von Kategorien für dieses Hardware-Modul an. Dieses Verfahren wird aufgerufen, wenn ein THardwareModule-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Appends the category argument to the end of the list of categories for this hardware module. This method is called when a THardwareModule object is manually constructed from scratch, and it is very rarely called directly by clients.

void DeleteCategory (const HardwareModuleCategory& category)void DeleteCategory (const HardwareModuleCategory& category)

Löscht das HardwareModuleCategory-Objekt, welches vom category-Argument spezifiziert wird, aus dem Master-THardwareModule.Deletes the HardwareModuleCategory object specified by the category argument from the master THardwareModule.

Boolean IsRoot() constBoolean IsRoot() const

Gibt WAHR (TRUE) zurück, wenn es sich bei dem THardwaremodule-Objekt um die zentrale Einrichtung seiner THardwareconfiguration handelt. Jedes THardwareConfiguration-Objekt besitzt eine Root-Einrichtung. Für einen Personalcomputer ist jenes THardwareModule-Objekt die Root-Einrichtung, welches den Computer repräsentiert.Returns TRUE if the THardwaremodule object is the central device of its THardwareconfiguration. Each THardwareConfiguration object has a root device. For a personal computer, the root device is the THardwareModule object that represents the computer.

void SetRoot (Boolean)void SetRoot (Boolean)

Setzt das "Root"-Attribut auf den Wert des gegebenen Arguments. Dieses Verfahren wird aufgerufen, wenn ein THardwareModule-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Sets the "root" attribute to the value of the given argument. This method is called when a THardwareModule object is manually constructed from scratch, and it is very rarely called directly by clients.

Boolean IsInternal() constBoolean IsInternal() const

Gibt WAHR (TRUE) zurück, wenn sich dieses THardwareModule-Objekt innerhalb des Root-THardwareModules befindet. Dieses Verfahren wird vom Konfigurationsbetrachter aufgerufen, um zu bestimmen, ob er die Einrichtung innerhalb oder außerhalb der Root-Einrichtung zeichnen soll. Zum Beispiel befindet sich das interne Festplattenlaufwerk eines Macintosh "innerhalb" des Computers.Returns TRUE if this THardwareModule object is inside the root THardwareModule. This method is called by the configuration viewer to determine whether to draw the device inside or outside the root device. For example, the internal hard disk drive of a Macintosh is "inside" the computer.

void SetInternal (Boolean)void SetInternal(Boolean)

Setzt das "internal"-Attribut auf den Wert des gegebenen Arguments. Dieses Verfahren wird aufgerufen, wenn ein THardwareModule-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Sets the "internal" attribute to the value of the given argument. This method is called when a THardwareModule object is manually constructed from scratch, and it is very rarely called directly by clients.

Boolean WantsPersistence( ) constBoolean WantsPersistence( ) const

Gibt WAHR (TRUE) zurück, wenn dieses THardwareModule-Objekt vom Hardwarekonfigurationsrahmenwerk fordert, die Einrichtung automatisch wiederherzustellen, wenn das Master-THardwareConfiguration-Objekt wiederhergestellt wird. Dieses Verfahren wird typischerweise vom Hardwarekonfigurationsrahmenwerk aufgerufen (d.h. von Objekten des Hardwarekonfigurationsrahmenwerks)Returns TRUE if this THardwareModule object requests the hardware configuration framework to automatically restore the device when the master THardwareConfiguration object is restored. This method is typically called by the hardware configuration framework (i.e., by objects of the hardware configuration framework)

void SetwantsPersistence (Boolean)void SetwantsPersistence (Boolean)

Setzt das "Wantspersistence"-Attribut auf den Wert des gegebenen Arguments. Dieses Verfahren wird aufgerufen, wenn ein THardwareModule-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Sets the "Wantspersistence" attribute to the value of the given argument. This method is called when a THardwareModule object is manually constructed from scratch, and it is very rarely called directly by clients.

TStream& operator»=(TStream& toWhere) constTStream& operator»=(TStream& toWhere) const

Wenn sich ein Master-THardwareModule-Objekt in einer Hardwarekonfiguration befindet, strömt dieses Verfahren eine nachhaltig wirkende Referenz aus. Andernfalls strömt dieses Verfahren eine Kopie des Masters einschließlich seiner Konnektoren, nicht aber seiner Verbindungen aus.If a master THardwareModule object is in a hardware configuration, this method streams a persistent reference. Otherwise, this method streams a copy of the master, including its connectors, but not its connections.

TStream& operator« (TStream& fromWhere)TStream& operator« (TStream& fromWhere)

Ströme einen THardwareModuleHandle ein. Wenn sich das Objekt im fromWhere-Argument in einer Hardwarekonfiguration befindet, strömt dieses Verfahren eine nachhaltig wirkende Referenz ein. Andernfalls strömt dieses Verfahren einen Master einschließlich seiner Konnektoren ein.Streams in a THardwareModuleHandle. If the object in the fromWhere argument is in a hardware configuration, this method streams in a persistent reference. Otherwise, this method streams in a master including its connectors.

THardwareInterfaceTHardwareInterface

Ein THardwareInterfaceHandle kann in einer Datei gespeichert und jederzeit wiederhergestellt werden. Diese Handhabe bleibt gültig, bis der Master entfernt wird. Die THardwareInterface-Klasse 212 umfaßt die folgenden Funktionen.A THardwareInterfaceHandle can be saved to a file and restored at any time. This handle remains valid until the master is removed. The THardwareInterface class 212 includes the following functions.

THardwareInterfaceHandle()THardwareInterfaceHandle()

Erzeugt einen referenzgezählten Master, der in einer beliebigen Hardwarekonfiguration nicht vorhanden ist.Creates a reference-counted master that is not present in any hardware configuration.

THardwareIntwareInterfaceHandle (const THardwareInterfaceHandle& copyFrom)THardwareIntwareInterfaceHandle (const THardwareInterfaceHandle& copyFrom)

Kopiert die Handhabe, nicht den Master. Die neue Handhabe wird zu einer Referenz auf den Master, auf den von copyFrom (kopieren von) verwiesen wird.Copies the handle, not the master. The new handle becomes a reference to the master pointed to by copyFrom.

THardwareInterfaceHandle& Operator (const THardwareInterfaceHandle& copyFrom)THardwareInterfaceHandle& Operator (const THardwareInterfaceHandle& copyFrom)

Kopiert die Handhabe, nicht den Master. Wenn die linke Seite die letzte Referenz auf einen Master ist, der sich in keiner Hardwarekonfiguration befindet, wird der Master zerstört. Die linke Handhabe wird dann zu einer Referenz auf den Master, der von copyFrom referenziert wird.Copies the handle, not the master. If the left hand side is the last reference to a master that is not in any hardware configuration, the master is destroyed. The left hand side then becomes a reference to the master referenced by copyFrom.

THardwareInterfaceHandle()THardwareInterfaceHandle()

Zerstört die Handhabe. Wenn dies die letzte Referenz auf einen Master ist, der sich in keiner Hardwarekonfiguration befindet, wird der Master zerstört.Destroys the handle. If this is the last reference to a master that is not in any hardware configuration, the master is destroyed.

THardwareModuleHandle GetOwner () constTHardwareModuleHandle GetOwner () const

Gibt eine Handhabe zum THardwareModule-Objekt zurück, zu dem dieses THardwareInterface-Objekt gehört. Dieses Verfahren wird typischerweise vom Hardwarekonfigurationsbetrachter aufgerufen.Returns a handle to the THardwareModule object to which this THardwareInterface object belongs. This method is typically called by the Hardware Configuration Viewer.

void GetAllConnections (TCollection(THardwareConnection-Handle> & result) constvoid GetAllConnections (TCollection(THardwareConnection handle> & result) const

Dieses Verfahren kopiert alle THardwareConnection-Handle-Objekte, die mit diesem THardwareInterface im Zusammenhang stehen, und fügt sie der Sammlung hinzu, die vom Result-Argument (Ergebnis-Argument) festgelegt wurde: Aufrufer übernimmt die Speicherung. Es leert nicht zuerst das Ergebnis.This method copies all THardwareConnection handle objects associated with this THardwareInterface and adds them to the collection specified by the Result argument: Caller handles the storage. It does not flush the result first.

Die kopierten Handhaben spiegeln den Status des Master-THardwarelnterface-Objektes zum Zeitpunkt des Aufrufs dieses Verfahrens wider. Dieses Verfahren wird typischerweise vorn Hardwarekonfigurationsbetrachter aufgerufen.The copied handles reflect the state of the master THardwareInterface object at the time this method is called. This method is typically called from the Hardware Configuration Viewer.

void Delete Connection (const THardwareInterfaceHandle& otherEndvoid Delete Connection (const THardwareInterfaceHandle& otherEnd

Dieses Verfahren löscht das THardwareConnection-Objekt, das von diesem Objekt und dem otherEnd (anderes Ende) festgelegt wurde, aus dieser Hardwarekonfiguration. Alle Handhaben, die sich auf das Master-THardwareConnection- Objekt beziehen, werden lose.This method deletes the THardwareConnection object specified by this object and the otherEnd from this hardware configuration. All handles related to the master THardwareConnection object become loose.

void DeleteAllConnections ()void DeleteAllConnections()

Dieses Verfahren löscht alle THardwareConnections aus diesem THardwareInterface-Objekt. Alle Handhaben, die sich auf die gelöschten Master-THardwareConnection-Objekte beziehen, werden lose. Dieses Verfahren wird typischerweise vom Hardwarekonfigurationsbetrachterrahmenwerk aufgerufen.This method deletes all THardwareConnections from this THardwareInterface object. All handles related to the deleted master THardwareConnection objects become loose. This method is typically called by the hardware configuration viewer framework.

THardwareInterfaceIdentifier* CopyHardwareInterface-Identifier() constTHardwareInterfaceIdentifier* CopyHardwareInterface-Identifier() const

Gibt einen Zeiger zum Objekt zurück, welches die reale physikalische Hardwarekomponente identifiziert, die dieser Konnektor repräsentiert. Der Aufrufer übernimmt die zurückgegebene Speicherung.Returns a pointer to the object that identifies the real physical hardware component that this connector represents. The caller accepts the returned storage.

void SethardwareInterfaceIdentifier (const THardwareIntwareInterfaceIdentifier&)void SethardwareInterfaceIdentifier (const THardwareIntwareInterfaceIdentifier&)

Setzt das "InterfaceIdentifier"-Attribut auf den Wert des gegebenen Arguments. Dieses Verfahren wird aufgerufen, wenn ein THardwareModule-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Sets the "InterfaceIdentifier" attribute to the value of the given argument. This method is called when a THardwareModule object is manually constructed from scratch, and it is very rarely called directly by clients.

short GetMaxConnections( ) constshort GetMaxConnections( ) const

Gibt die maximale Anzahl von Verbindungen zurück, die von diesem Konnektor zugelassen werden. Wenn dieser Wert größer als eins ist, repräsentiert der Konnektor einen Bus (z.B. SCSI, ADB). Dieses Verfahren wird typischerweise vom Hardwarekonfigurationsbetrachter während der Verbindungsverhandlungen aufgerufen.Returns the maximum number of connections allowed by this connector. If this value is greater than one, the connector represents a bus (e.g. SCSI, ADB). This method is typically called by the hardware configuration viewer during connection negotiations.

void SetMaxConnections (short)void SetMaxConnections (short)

Setzt das "MaxConnections"-Attribut auf den Wert des gegebenen Arguments. Dieses Verfahren wird aufgerufen, wenn ein THardwareModule-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Sets the "MaxConnections" attribute to the value of the given argument. This method is called when a THardwareModule object is manually constructed from scratch, and it is very rarely called directly by clients.

ETransmissionMode GetMode() constETransmissionMode GetMode() const

Gibt den von diesem Konnektor unterstützten Übertragungsmodus zurück. Dieses Verfahren wird typischerweise vom Hardwarekonfigurationsbetrachter während der Verbindungsverhandlungen aufgerufen.Returns the transfer mode supported by this connector. This method is typically called by the hardware configuration viewer during connection negotiations.

void SetMode(ETransmission Mode)void SetMode(ETransmission Mode)

Setzt das "TransmissionMode"-Attribut auf den Wert des gegebenen Arguments. Dieses Verfahren wird aufgerufen, wenn ein THardwareModule-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Sets the "TransmissionMode" attribute to the value of the given argument. This method is called when a THardwareModule object is manually constructed from scratch, and it is very rarely called directly by clients.

Boolean WantsPersistentConnections() constBoolean WantsPersistentConnections() const

Gibt WAHR (TRUE) zurück, wenn dieses THardware-Interface-Objekt vom Hardwarekonfigurationsrahmenwerk fordert, seine Verbindungen automatisch wiederherzustellen, wenn das Master-THardwareConfiguration-Objekt wiederhergestellt wird. Eine Verbindung wird dann wiederhergestellt, wenn einer der beiden Konnektoren, welche die Verbindung durchführen, dies anfordert.Returns TRUE if this THardwareInterface object requests the hardware configuration framework to automatically re-establish its connections when the master THardwareConfiguration object is restored. A connection is restored when either of the two connectors performing the connection requests it.

void SetWantsPersistentConnections (Boolean)void SetWantsPersistentConnections (Boolean)

Setzt das "WantsPersistentConnections"-Attribut auf den Wert des gegebenen Arguments. Dieses Verfahren wird aufgerufen, wenn ein THardwareModule-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Sets the "WantsPersistentConnections" attribute to the value of the given argument. This method is called when a THardwareModule object is manually constructed from the beginning, and it is very rarely called directly by clients.

Boolean IsReconfigurable() constBoolean IsReconfigurable() const

Gibt WAHR (TRUE) zurück, wenn die von diesem THardwareIntwareInterface-Objekt repräsentierte Hardware eine Neukonfigurierung unterstützen kann. Dies bedeutet nicht, daß ein Dienst momentan verfügbar ist, um die Neukonfigurierung tatsächlich durchfzuführen. Dieses Attribut ist eine Optimierung.Returns TRUE if the hardware represented by this THardwareInterface object can support reconfiguration. This does not mean that a service is currently available to actually perform the reconfiguration. This attribute is an optimization.

void SetWantsReconfiguration (Boolean)void SetWantsReconfiguration (Boolean)

Setzt das "WantsReconfiguration"-Attribut auf den Wert des gegebenen Arguments. Dieses Verfahren wird aufgerufen, wenn ein THardwareModule-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Sets the "WantsReconfiguration" attribute to the value of the given argument. This method is called when a THardwareModule object is manually constructed from scratch, and is very rarely called directly by clients.

void GetCategories (TCollection(HardwareIntwareInterfaceCategory)& result) constvoid GetCategories (TCollection(HardwareIntwareInterfaceCategory)& result) const

Dieses Verfahren kopiert alle HardwareCategory-Objekte, die im Eigentum von diesem THardwareInterface stehen, und fügt sie der Sammlung hinzu, die vom Result-Argument (Ergebnis-Argument) festgelegt wurde: Aufrufer übernimmt die Speicherung. Es leert nicht zuerst das Ergebnis.This method copies all HardwareCategory objects owned by this THardwareInterface and adds them to the collection specified by the Result argument: Caller handles the storage. It does not flush the result first.

Der Iterator spiegelt den Status des Master-THardwareInterface-Objektes zum Zeitpunkt des Aufrufs dieses Verfahrens wider. Dieses Verfahren kann von Klienten jederzeit aufgerufen werden.The iterator reflects the state of the master THardwareInterface object at the time this method is called. This method can be called by clients at any time.

void AddCategory (const HardwareInterfaceCategory& category)void AddCategory (const HardwareInterfaceCategory& category)

Hängt das category-Argument an das Ende der Liste von Kategorien für diese Hardware-Schnittstelle an. Dieses Verfahren wird aufgerufen, wenn ein THardwareInterface-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Appends the category argument to the end of the list of categories for this hardware interface. This procedure is called when a THardwareInterface object is manually constructed from scratch, and it is very rarely called directly by clients.

void DeleteCategory (const HardwareInterfaceCategory& category)void DeleteCategory (const HardwareInterfaceCategory& category)

Löscht das HardwareInterfaceCategory-Objekt, welches vom category-Argument spezifiziert wird, aus dem Master-THardwareInterface.Deletes the HardwareInterfaceCategory object specified by the category argument from the master THardwareInterface.

stream& operator»=(TStreamg& toWhere) conststream& operator»=(TStreamg& toWhere) const

Wenn sich ein Master-THardwareInterface-Objekt in einer Hardwarekonfiguration befindet, strömt dieses Verfahren eine nachhaltig wirkende Referenz aus. Andernfalls strömt dieses Verfahren eine Kopie des Masters aus.If a master THardwareInterface object is in a hardware configuration, this method streams a persistent reference. Otherwise, this method streams a copy of the master.

TStream & operator« = (TStream& from Where)TStream & operator« = (TStream& from Where)

Ströme einen THardwareInterfaceHandle ein. Wenn sich das Objekt im fromWhere-Argument in einer Hardwarekonfiguration befindet, strömt dieses Verfahren eine nachhaltig wirkende Referenz ein. Andernfalls strömt dieses Verfahren einen Master ein.Streams in a THardwareInterfaceHandle. If the object in the fromWhere argument is in a hardware configuration, this method streams in a persistent reference. Otherwise, this method streams in a master.

THardwareConnectionHandleTHardwareConnectionHandle

Ein THardwareConnectionHandle kann in einer Datei gespeichert und jederzeit wiederhergestellt werden. Diese Handhabe bleibt gültig, bis der Master entfernt wird. Die THardwareConnection-Klasse 216 umfaßt die folgenden Funktionen.A THardwareConnectionHandle can be saved to a file and restored at any time. This handle remains valid until the master is removed. The THardwareConnection class 216 includes the following functions.

THardwareConnectionHandle()THardwareConnectionHandle()

Erzeugt eine lose Handhabe. Nützlich als Ziel zum Strömen und Zuordnen.Creates a loose handle. Useful as a target for streaming and mapping.

THardwareConnectionHandle (const THardwareIntwareInterfaceHandle& toConnector, const THardwareInterfaceHandle& fromConnector)THardwareConnectionHandle (const THardwareIntwareInterfaceHandle& toConnector, const THardwareInterfaceHandle& fromConnector)

Erzeugt einen referenzgezählten Master, der nicht in einer Hardwarekonfiguration vorhanden ist.Creates a reference-counted master that does not exist in a hardware configuration.

THardwareConnectionHandle (const THardwareConnectionHandle& copy From)THardwareConnectionHandle (const THardwareConnectionHandle& copy From)

Kopiert die Handhabe, nicht den Master. Die neue Handhabe wird zu einer Referenz auf den Master, auf den von copyFrom (kopieren von) verwiesen wird.Copies the handle, not the master. The new handle becomes a reference to the master pointed to by copyFrom.

THardwareConnectionHandle& operator= (const THardwareConnection Handle& copyFrom)THardwareConnectionHandle& operator= (const THardwareConnection Handle& copyFrom)

Kopiert die Handhabe, nicht den Master. Wenn die linke Seite die letzte Referenz auf einen Master ist, der sich in keiner Hardwarekonfiguration befindet, wird der Master zerstört. Die linke Handhabe wird dann zu einer Referenz auf den Master, der von copyFrom referenziert wird.Copies the handle, not the master. If the left hand side is the last reference to a master that is not in any hardware configuration, the master is destroyed. The left hand side then becomes a reference to the master referenced by copyFrom.

THardwareConnectionHandle ()THardwareConnectionHandle ()

Zerstört die Handhabe. Wenn dies die letzte Referenz auf einen Master ist, der sich in keiner Hardwarekonfiguration befindet, wird der Master zerstört.Destroys the handle. If this is the last reference to a master that is not in any hardware configuration, the master is destroyed.

void Add()voidAdd()

Dieses Verfahren verschiebt das Master-THardware-Interfaceconnection-Objekt in die Hardwarekonfiguration. Kein Konnektor sieht diese Verbindung, bis Add (Hinzufügen) aufgerufen wird.This procedure moves the master THardwareInterfaceconnection object into the hardware configuration. No connector will see this connection until Add is called.

void Remove()void Remove()

Dieses Verfahren kehrt die Auswirkung von Add um. Das Master-THardwareConnection-Objekt wird aus der Hardwarekonfiguration entfernt: der Master wird von dieser Handhabe referenzgezählt. Alle ANDEREN Handhaben, die auf den Master verweisen, werden lose. Dieses Verfahren wird typischerweise vom Hardwarekonfigurationsbetrachter aufgerufen.This method reverses the effect of Add. The master THardwareConnection object is removed from the hardware configuration: the master is referenced by this handle. All OTHER handles that reference the master are dropped. This method is typically called from the hardware configuration viewer.

THardwareInterfaceHandle GetOtherEnd (const THardwareInterfaceHandle& thisEnd) constTHardwareInterfaceHandle GetOtherEnd (const THardwareInterfaceHandle& thisEnd) const

Bei gegebenem THardwareInterfaceHandle, der von this-End spezifiziert wird, gibt dieses Verfahren den THardware-InterfaceHandle am anderen Ende zurück.Given the THardwareInterfaceHandle specified by this-End, this method returns the THardware-InterfaceHandle at the other end.

EConnectionKind GetKind() constEConnectionKind GetKind() const

Gibt die Verbindungsart zurück, welche dieses THardwareConnection-Objekt repräsentiert. Eine Verbindung kann automatisch oder manuell sein. Eine automatische Verbindung wird vom System hergestellt. Eine manuelle Verbindung wird vom Benutzer hergestellt. Es ist wichtig, in der Lage zu sein, zwischen diesen beiden Verbindungsarten unterscheiden zu können. Dieses Verfahren wird typischerweise vom Hardwarekonfigurationsrahmenwerk aufgerufen.Returns the connection type that this THardwareConnection object represents. A connection can be automatic or manual. An automatic connection is established by the system. A manual connection is established by the user. It is important to be able to distinguish between these two types of connections. This method is typically called by the hardware configuration framework.

void SetKind (EConnectionKind)void SetKind (EConnectionKind)

Setzt das "kind"-Attribut auf den Wert des gegebenen Arguments. Dieses Verfahren wird aufgerufen, wenn ein THardwareModule-Objekt manuell von Anfang an konstruiert wird, und es wird sehr selten von Klienten direkt aufgerufen.Sets the "kind" attribute to the value of the given argument. This method is called when a THardwareModule object is manually constructed from scratch, and it is very rarely called directly by clients.

Boolean IsPersistent() constBoolean IsPersistent() const

Gibt WAHR (TRUE) zurück, wenn einer der beiden Konnektoren dieses THardwareConnection-Objektes nachhaltig wirkende Verbindungen möchte. Dieses Verfahren wird typischerweise vom Hardwarekonfigurationsrahmenwerk aufgerufen.Returns TRUE if either of the two connectors of this THardwareConnection object wants persistent connections. This method is typically called by the hardware configuration framework.

Tstream& Operator»=(TStream& toWhere) constTstream& Operator»=(TStream& toWhere) const

Wenn es sich in einer Hardwarekonfiguration befindet, strömt dieses Verfahren eine nachhaltig wirkende Referenz ein. Andernfalls strömt dieses Verfahren eine Kopie des Masters aus.If it is in a hardware configuration, this method streams in a persistent reference. Otherwise, this method streams out a copy of the master.

TStream& operator«=(TStream& fromWhere)TStream& operator«=(TStream& fromWhere)

Ströme einen THardwareConnectionHandle ein. Wenn sich das Objekt im fromwhere-Argument in einer Hardwarekonfiguration befindet, strömt dieses Verfahren eine nachhaltig wirkende Referenz ein. Andernfalls strömt dieses Verfahren einen Master ein.Streams in a THardwareConnectionHandle. If the object in the fromwhere argument is in a hardware configuration, this method streams in a persistent reference. Otherwise, this method streams in a master.

TPartLocatorTPartLocator

Ein TPartLocator-Objekt kann nicht gespeichert werden. Die TPartLocator-Klasse 218 umfaßt die folgenden Mitgliedsfunktionen.A TPartLocator object cannot be saved. The TPartLocator class 218 includes the following member functions.

TPartLocator (const HardwareModuleCategory& theCompartment)TPartLocator (const HardwareModuleCategory& theCompartment)

Erzeugt einen Teilesucher, der in der Lage ist, alle HardwareModulprototypen (d.h. Teile) zu suchen, die von theCompartment festgelegt werden. Der einzige erwartete Klient dieses Konstruktors ist TPartsBin. TPartsBin erzeugt einen dieser Sucher für jedes Fach (d.h. Schacht, Behälter, Karteireiter usw.), das der Teilebehälter aufweist.Creates a parts finder capable of finding all hardware module prototypes (i.e. parts) specified by theCompartment. The only expected client of this constructor is TPartsBin. TPartsBin creates one of these finders for each compartment (i.e. slot, bin, tab, etc.) that the parts bin has.

Boolean FindAll (TCollection(THardwareModuleHandle)& theResult)Boolean FindAll (TCollection(THardwareModuleHandle)& theResult)

Dieses Verfahren sucht alle FSEntities, die sich selbst als Teile identifizieren, die in diesem Fach sein möchten. Es erweckt alle THardwareModulehandle-Objekte aus den gefundenen Dateien und fügt diese der gegebenen Sammlung hinzu, die von theresult: Aufrufer übernimmt die Speicherung spezifiziert wird. Es leert nicht zuerst das Ergebnis. Es gibt WAHR (TRUE) zurück, wenn etwas gefunden wurde. Der Teilebehälter ruft dieses auf, wenn er den Inhalt eines bestimmten Faches darstellen (oder die Darstellung vorbereiten) muß.This method looks for all FSEntities that identify themselves as parts that want to be in this compartment. It raises all THardwareModulehandle objects from the files found and adds them to the given collection specified by theresult: caller takes over storage. It does not flush the result first. It returns TRUE if anything is found. The parts container calls this when it needs to render (or prepare to render) the contents of a particular compartment.

THardwareModuleHandle FindOne(const TText& theName)THardwareModuleHandle FindOne(const TText& theName)

Dieses Verfahren gibt den THardwareModuleHandle zurück, der für dieses Fach "installiert" wurde, dessen HardwareModuleSignature dem Wert theName entspricht.This method returns the THardwareModuleHandle that was "installed" for this slot whose HardwareModuleSignature matches theName value.

TInterest* CreateAddedInterest ()TInterest* CreateAddedInterest ()

Dieses Verfahren erzeugt ein Interesse für zu verwendende Klienten, um sich für Meldungen über das Hinzufügen eines Teiles anzumelden, das zu diesem Fach: Klient übernimmt Ergebnisspeicherung gehört. Der einzige erwartete Klient dieses Verfahrens ist TPartsBin. TPartsBin ruft dieses Verfahren unmittelbar vor dem Aufruf von Findall auf, so daß er eine aktuelle Anzeige der verfügbaren Teile sicherstellen kann.This method creates an interest for clients to use to subscribe to notifications about the addition of a part belonging to this bin: client takes over result storage. The only expected client of this method is TPartsBin. TPartsBin calls this method immediately before calling Findall so that it can ensure an up-to-date display of available parts.

TInterest* CreateremovedInterest ()TInterest* CreateremovedInterest ()

Dieses Verfahren erzeugt ein Interesse für zu verwendende Klienten, um sich für Meldungen über das Entfernen eines beliebigen Teiles anzumelden, das zu diesem Fach: Klient übernimmt Ergebnisspeicherung gehört. Der einzige erwartete Klient dieses Verfahrens ist TPartsBin. TPartsBin ruft dieses Verfahren unmittelbar vor dem Aufruf von FindAll auf, so daß er eine aktuelle Anzeige der verfügbaren Teile sicherstellen kann.This method creates an interest for clients to use to register for notifications about the removal of any part belonging to this bin: client takes care of result storage. The only expected client of this method is TPartsBin. TPartsBin calls this method immediately before calling FindAll so that it can ensure an up-to-date display of available parts.

TPartsBinTPartsBin

Ein TPartsBin-Objekt kann nicht gespeichert werden. Die TPartsbin-Klasse 220 umfaßt die folgenden Mitgliedsfunktionen.A TPartsBin object cannot be saved. The TPartsbin class 220 includes the following member functions.

TPartsBin ()TPartsBin ()

Konstruiert einen leeren Teilebehälter.Constructs an empty parts container.

TPartsBin (const TPartLocator& copyFrom)TPartsBin (const TPartLocator& copyFrom)

Kopiert alle TPartLocators, die im Eigentum von copy-From stehen, in diesen TPartsBin.Copies all TPartLocators owned by copy-From into this TPartsBin.

void GetAllPartLocators (TCollection< TPartLocator> & result) constvoid GetAllPartLocators (TCollection< TPartLocator> & result) const

Dieses Verfahren kopiert alle TPartlocator-Objekte, die im Eigentum dieses Teilebehälters stehen, und fügt sie der Sammlung hinzu, die vom Result-Argument (Ergebnis-Argument): Aufrufer übernimmt die Speicherung festgelegt wurde. Es leert nicht zuerst das Ergebnis.This method copies all TPartlocator objects owned by this parts container and adds them to the collection specified by the Result argument: Caller assumes the storage was set. It does not flush the result first.

Der Inhalt des Teilebehälter-Objektes kann sich jederzeit ändern, aber dies wird vom Iterator nicht direkt widergespiegelt. Dieses Verfahren kann von Klienten jederzeit aufgerufen werden. Der einzige erwartete Klient dieses Verfahrens ist der Teilebehälterbetrachter. Er zeigt ein Icon (und einen Namen) für jeden in seinem Eigentum stehenden Teilesucher an. Jeder Teilesucher repräsentiert einen Karteireiter am Teilebehälter. Des weiteren zeigt der Teilebehälter alle Teile dieses Faches an, wenn ein Karteireiter vom Benutzer ausgewählt wird.The contents of the Parts Bin object can change at any time, but this is not directly reflected by the Iterator. This method can be called by clients at any time. The only expected client of this method is the Parts Bin Viewer. It displays an icon (and a name) for each Parts Bin it owns. Each Parts Bin represents a tab on the Parts Bin. Furthermore, the Parts Bin displays all parts in that bin when a tab is selected by the user.

TPartLocator GetPartLocator (const HardwareModuleCategory& desired Compartment) constTPartLocator GetPartLocator (const HardwareModuleCategory& desired Compartment) const

Gibt das TPartLocator-Objekt für desiredcompartment (gewünschtes Fach) in diesem Teilebehälter zurück. Dieses Verfahren kann von Klienten jederzeit aufgerufen werden.Returns the TPartLocator object for the desired compartment in this parts container. This method can be called by clients at any time.

void AddCompartmentFor (const HardwareModuleCategory& compartment)void AddCompartmentFor (const HardwareModuleCategory& compartment)

Dieses Verfahren erzeugt ein TPartLocator-Objekt für die Art von Fach, die vom compartment-Argument für diesen Teilebehälter festgelegt wurde. Dieses Verfahren kann von Klienten jederzeit aufgerufen werden. Der einzige erwartete Klient dieses Verfahrens ist ein Teilebehälterbetrachter. Ein Teilebehälterbetrachter kann entscheiden, welche Kategorien er darstellen möchte.This method creates a TPartLocator object for the type of compartment specified by the compartment argument for this parts container. This method can be called by clients at any time. The only expected client of this method is a parts container viewer. A parts container viewer can decide which categories it wants to display.

void RemoveCompartment (const HardwareModuleCategory& compartment)void RemoveCompartment (const HardwareModuleCategory& compartment)

Dieses Verfahren entfernt das TPartLocator-Objekt für die Art von Fach, die vom compartment-Argument für diesen Teilebehälter festgelegt wurde. Der einzige erwartete Klient dieses Verfahrens ist der Teilebehälterbetrachter.This method removes the TPartLocator object for the type of compartment specified by the compartment argument for this parts container. The only expected client of this method is the parts container viewer.

TInterest* CreateAddedInterest ()TInterest* CreateAddedInterest ()

Dieses Verfahren erzeugt ein Interesse für zu verwendende Klienten, um sich für Meldungen über das Hinzufügen eines beliebigen neuen Teilesuchers anzumelden. Der einzige erwartete Klient dieses Verfahrens ist ein Teilebehälterbetrachter. Der Teilebehälterbetrachter ruft dieses Verfahren unmittelbar vor dem Aufruf von GetAllPartLocators auf, so daß er eine aktuelle Anzeige der verfügbaren Fächer sicherstellen kann.This method creates an interest for clients to use to subscribe to notifications about the addition of any new part locators. The only expected client of this method is a parts bin viewer. The parts bin viewer calls this method immediately before calling GetAllPartLocators so that it can ensure an up-to-date display of available bins.

TInterest* CreateRemovedInterest 0 Dieses Verfahren erzeugt ein Interesse für zu verwendende Klienten, um sich für Meldungen über das Entfernen eines bestehenden Teilesuchers anzumelden. Der einzige erwartete Klient dieses Verfahrens ist ein Teilebehälterbetrachter. Der Teilebehälterbetrachter ruft dieses Verfahren unmittelbar vor dem Aufruf von Getallpartlocators auf, so daß er eine aktuelle Anzeige der verfügbaren Fächer sicherstellen kann.TInterest* CreateRemovedInterest 0 This method creates an interest for clients to use to subscribe to notifications about the removal of an existing part locator. The only expected client of this method is a parts bin viewer. The parts bin viewer calls this method immediately before calling Getallpartlocators so that it can ensure an up-to-date display of available bins.

Claims (13)

1. Ein objektorientiertes Hardware-Konfigurationssystem zur Ermöglichen einer zentralisierten Benutzerkonfiguration (104, 110, 112, 116, 118) von Hardware in einem Computersystem (102), enthaltend1. An object-oriented hardware configuration system for enabling centralized user configuration (104, 110, 112, 116, 118) of hardware in a computer system (102), comprising eine Vielzahl von objektorientierten Hardware-Schnittstellen-Objekten, von denen jedes einen physikalischen Konnektor (212, 412, 414, 416) einer Hardware-Einrichtung repräsentiert, unda plurality of object-oriented hardware interface objects, each of which represents a physical connector (212, 412, 414, 416) of a hardware device, and eine Vielzahl von objektorientierten Hardware-Modul-Objekten, von denen jedes eine Hardware-Einrichtung repräsentiert, die durch Benutzer konfigurierbar ist und einen oder mehrere Hardware-Interface-Objekte enthält, die mit der Hardware-Einrichtung so verbunden sind, daß die Konnektoren der Hardware-Einrichtung definiert sind,a plurality of object-oriented hardware module objects, each of which represents a hardware device that is user-configurable and contains one or more hardware interface objects that are connected to the hardware device in such a way that the connectors of the hardware device are defined, gekennzeichnet durch:marked by: eine Vielzahl von Konnektor-Objekten (216), von denen jedes eine physikalische Verbindung (212, 412, 414, 416) zwischen zwei einer Vielzahl von Hardware-Schnittstellen-Objekten darstellt;a plurality of connector objects (216), each of which represents a physical connection (212, 412, 414, 416) between two of a plurality of hardware interface objects; ein objektorientiertes Hardware-Konfigurationsobjekt (204), das eine Vielzahl von Hardware-Module-Objekten enthält, die mit einem bestimmten Computersystem verbundene Hardware-Einrichtungen darstellen in der Weise, daß das Hardware-Module-Objekt eine besondere Hardware-Konfiguration des bestimmten Computersystems definiert; undan object-oriented hardware configuration object (204) containing a plurality of hardware module objects representing hardware devices associated with a particular computer system, such that the hardware module object defines a particular hardware configuration of the particular computer system; and Mittel zum Benachrichtigen von interessierten Klienten von Änderungen des bestimmten Computersystems durch Aussenden einer Meldung an die interessierten Klienten über Änderungen in dem Hardware-Konfigurationsobjekt (204-224), besagtes Konfigurationssystem enthält Mittel, die es einem Benutzer gestatten, auf das Hardware-Konfigurationsobjekt zuzugreifen zum Konfigurieren der Hardware-Einrichtungen, die mit dem bestimmten Computersystem verbunden sind, und zum Aufbau von Verbindungen zwischen Hardware-Einrichtungen mit der Vielzahl von Konnektor-Objekten.means for notifying interested clients of changes to the particular computer system by sending a message to the interested clients of changes in the hardware configuration object (204-224), said configuration system includes means for allowing a user to access the hardware configuration object for configuring the hardware devices connected to the particular computer system and for establishing connections between hardware devices with the plurality of connector objects. 2. Das Hardware-Konfigurationssystem nach Anspruch 1, weiter enthaltend Mittel zum Benachrichtigen von interessierten Klienten von Änderungen in den Verbindungen zwischen Hardware-Einrichtungen durch Aussenden einer Meldung an die interessierten Klienten über Änderungen in dem Hardware-Konfigurationsobjekt.2. The hardware configuration system of claim 1, further comprising means for notifying interested clients of changes in the connections between hardware devices by sending a message to the interested clients about changes in the hardware configuration object. 3. Das Hardware-Konfigurationssystem nach Anspruch 1, worin die Hardware-Module-Objekte zu Einrichtungsklassen gehören und jedes der Vielzahl von Hardware-Modul-Objekten ein objektorientiertes Hardware-Modul-Signatur-Objekt enthält, das die Einrichtungsklasse identifiziert, zu welcher das Hardware-Module-Objekt gehört.3. The hardware configuration system of claim 1, wherein the hardware module objects belong to device classes and each of the plurality of hardware module objects includes an object-oriented hardware module signature object identifying the device class to which the hardware module object belongs. 4. Das Hardware-Konfigurationssystem nach Anspruch 1, worin jedes der Vielzahl von Hardware-Module-Objekten ein objektorientiertes Hardware-Module-Kategorie-Objekt enthält zum Identifizieren von Einrichtungstypen, die jedes der Hardware-Module-Objekte repräsentieren kann.4. The hardware configuration system of claim 1, wherein each of the plurality of hardware module objects includes an object-oriented hardware module category object for identifying device types that each of the hardware module objects can represent. 5. Das Hardware-Konfigurationssystem nach Anspruch 4, worin die Einrichtungstypen enthalten: einen Monitortyp, einen Druckertyp, einen Tastaturtyp, einen Zeiger-Einrichtungstyp, einen Modemtyp, einen Kartentyp, einen Plattenantriebstyp, einen Abtastertyp und einen Telefax-Einrichtungs typ.5. The hardware configuration system of claim 4, wherein the device types include: a monitor type, a printer type, a keyboard type, a pointer device type, a modem type, a card type, a disk drive type, a scanner type, and a fax device type. 6. Das Hardware-Konfigurationssystem nach Anspruch 1, worin jedes der Vielzahl von Hardware-Schnittstellen-Ojekten ein objektorientiertes Hardware-Schnittstellen-Kategorie-Objekt umfaßt zum Identifizieren von Einrichtungs-Konnektortypen, die jedes der Hardware-Schnittstellen-Objekte darstellen kann.6. The hardware configuration system of claim 1, wherein each of the plurality of hardware interface objects comprises an object-oriented hardware interface category object for identifying device connector types that each of the hardware interface objects can represent. 7. Das Hardware-Konfigurationssystem nach Anspruch 6, worin die Einrichtung-Konnektortypen einen Serial-Konnektortyp, einen Parallel-Konnektortyp, einen Video-Konnektortyp, einen MIDI-Konnektortyp, einen ADB-Konnektortyp, einen SCSI-Konnektortyp und einen Slot-Konnektortyp enthalten.7. The hardware configuration system of claim 6, wherein the device connector types include a serial connector type, a parallel connector type, a video connector type, a MIDI connector type, an ADB connector type, a SCSI connector type, and a slot connector type. 8. Das Hardware-Konfigurationssystem nach Anspruch 6, worin jedes der Vielzahl von Hardware-Schnittstellen-Ojekten einen Computersystem-Schnittstellen-Anschluß darstellt.8. The hardware configuration system of claim 6, wherein each of the plurality of hardware interface objects represents a computer system interface port. 9. Ein Verfahren zum manuellen Konfigurieren eines Computersystems, das Speichermittel und eine Vielzahl von Hardwarekomponenten aufweist, von denen jede wenigstens einen physikalischen Konnektor besitzt und in eine Hardware - Hierarchie eingebunden ist, das Verfahren ist durch die Schritte gekennzeichnet:9. A method for manually configuring a computer system having storage means and a plurality of hardware components, each of which has at least one physical connector and is integrated into a hardware hierarchy, the method is characterized by the steps: (a) Speicherung in den Speichermitteln Klasseninformationen, die eine Vielzahl von Maschinenklassen und -Unterklassen definieren entsprechend einer der Vielzahl von Hardwarekomponenten, die Vielzahl von Maschinenklassen ist in einer objektorientierten Hierarchie angeordnet;(a) Storage in the storage means of class information defining a plurality of machine classes and subclasses corresponding to one of a plurality of hardware components, the plurality of machine classes are arranged in an object-oriented hierarchy; (b) Speicherung in den Speichermitteln Klasseninformationen, die eine Vielzahl von Konnektorklassen und -Unterklassen definieren, von denen jede einen Konnektor zum Verbinden von zwei Hardware-Schnittstellen-Objekten definiert entsprechend den physikalischen Konnektoren an einer oder mehreren der Vielzahl von Hardwarekomponenten;(b) storing in the storage means class information defining a plurality of connector classes and subclasses, each of which defines a connector for connecting two hardware interface objects corresponding to the physical connectors on one or more of the plurality of hardware components; (c) Identifizieren einer ersten der Vielzahl von Hardwarekomponenten;(c) identifying a first of the plurality of hardware components; (d) Instantueren eines ersten maschinenspezifischen Objekts aus der objektorientierten Hierarchie zur Darstellung der ersten Hardwarekomponente;(d) instantiating a first machine-specific object from the object-oriented hierarchy to represent the first hardware component; (e) Instantiieren über das erste maschinenspezifische Objekt ein Hardware-Schnittstellen-Objekt für jeden physikalischen Konnektor an der ersten Hardwarekomponente;(e) instantiating, via the first machine-specific object, a hardware interface object for each physical connector on the first hardware component; (f) Identifizieren einer zweiten der Vielzahl von Hardwarekomponenten;(f) identifying a second of the plurality of hardware components; (g) Instantiieren eines zweiten maschinenspezifischen Objekts aus der objektorientierten Hierarchie zur Darstellung der zweiten Hardwarekomponente;(g) instantiating a second machine-specific object from the object-oriented hierarchy to represent the second hardware component; (h) Instantiieren über das zweite maschinenspezifische Objekt ein Hardware-Schnittstellen-Objekt für jeden physikalischen Konnektor an der zweiten Hardwarekomponente;(h) instantiating, via the second machine-specific object, a hardware interface object for each physical connector on the second hardware component; (i) Konfigurieren über das erste und das zweite maschinenspezifische Objekt die erste und die zweite Hardware-Einrichtung;(i) configuring the first and second hardware devices via the first and second machine-specific objects; (g) Instantueren eines Konnektor-Objekts zur Darstellung einer physikalische Verbindung zwischen ersten Hardwarekomponente und der zweiten Hardwarekomponente auf ein Signal von dem Hardware-Schnittstellen-Objekt im ersten maschinenspezifische Objekt und ein Signal von dem Hardware-Schnittstellen-Objekt im zweiten maschinenspezifischen Objekt; und(g) instantiating a connector object for representing a physical connection between the first hardware component and the second hardware component in response to a signal from the hardware interface object in the first machine-specific object and a signal from the hardware interface object in the second machine-specific object; and (k) Benachrichtigen von interessierten Klienten von Änderungen in der Hardware-Konfiguration des bestimmten Computersystems durch Aussenden einer Meldung an die interessierten Klienten über Änderungen in dem Hardware-Konfigurationsobjekt.(k) notifying interested clients of changes in the hardware configuration of the specific computer system by sending a notification to the interested clients of changes in the hardware configuration object. 10. Das Verfahren nach Anspruch 9, weiter umfassend den Schritt der Benachrichtigen von interessierten Klienten von Änderungen in den Verbindungen zwischen Hardware-Einrichtungen durch Aussenden einer Meldung an die interessierten Klienten über Änderungen in dem Hardware-Konfigurationsobjekt.10. The method of claim 9, further comprising the step of notifying interested clients of changes in the connections between hardware devices by sending a message to the interested clients about changes in the hardware configuration object. 11. Das Verfahren nach Anspruch 10, worin jedes der Hardware-Module-Objekte zu Einrichtungsklassen gehört und das Verfahren weiter den Schritt der Identifizierung der Einrichtungsklasse durch ein objektorientiertes Hardware-Module-Signatur-Objekt umfaßt, zu welcher das Hardware-Module- Objekt gehört.11. The method of claim 10, wherein each of the Hardware Module objects belongs to device classes and the method further comprises the step of identifying the device class to which the Hardware Module object belongs by an object-oriented Hardware Module signature object. 12. DaS Verfahren nach Anspruch 11, worin jedes der Vielzahl von Hardware-Module-Objekten ein objektorientiertes Hardware-Module-Kategorie-Objekt enthält und das Verfahren weiter den Schritt der Identifizierung von Einrichtungstypen umfaßt, die jedes der Vielzahl von Hardware-Module-Objekten repräsentieren kann.12. The method of claim 11, wherein each of the plurality of hardware module objects includes an object-oriented hardware module category object, and the method further comprises the step of identifying device types that each of the plurality of hardware module objects can represent. 13. Das Verfahren nach Anspruch 12, worin jedes der Vielzahl von Hardware-Schnittstellen-Ojekten ein objektorientiertes Hardware-Schnittstellen-Kategorie-Objekt enthält und das Verfahren weiter den Schritt der Identifizierung von Einrichtungs-Konnektortypen umfaßt, die jedes der Hardware-Schnittstellen-Objekte darstellen kann.13. The method of claim 12, wherein each of the plurality of hardware interface objects includes an object-oriented hardware interface category object, and the method further comprises the step of identifying device connector types that each of the hardware interface objects can represent.
DE69405408T 1993-12-21 1994-04-11 OBJECT-ORIENTED SYSTEM AND METHOD FOR HARDWARE CONFIGURATION Expired - Lifetime DE69405408T2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/171,722 US5546595A (en) 1993-12-21 1993-12-21 Object-oriented system using objects representing hardware devices, physical connectors and connections between the physical connectors for configuring a computer
PCT/US1994/003981 WO1995017715A1 (en) 1993-12-21 1994-04-11 Object-oriented system and method for hardware configuration

Publications (2)

Publication Number Publication Date
DE69405408D1 DE69405408D1 (en) 1997-10-09
DE69405408T2 true DE69405408T2 (en) 1998-07-02

Family

ID=22624879

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69405408T Expired - Lifetime DE69405408T2 (en) 1993-12-21 1994-04-11 OBJECT-ORIENTED SYSTEM AND METHOD FOR HARDWARE CONFIGURATION

Country Status (7)

Country Link
US (1) US5546595A (en)
EP (1) EP0730763B1 (en)
JP (1) JPH09507317A (en)
AU (1) AU7310594A (en)
CA (1) CA2178582A1 (en)
DE (1) DE69405408T2 (en)
WO (1) WO1995017715A1 (en)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0710914B1 (en) * 1994-11-04 2000-05-03 Canon Information Systems, Inc. Smart programming of flash memory
US5745765A (en) * 1995-10-23 1998-04-28 Calico Technology, Inc. Method and apparatus for automatic and interactive configuration of custom products
US5948091A (en) * 1995-12-01 1999-09-07 Texas Instruments Incorporated Universal digital display interface
US6063128A (en) * 1996-03-06 2000-05-16 Bentley Systems, Incorporated Object-oriented computerized modeling system
US5864660A (en) * 1996-03-12 1999-01-26 Electronic Data Systems Corporation Testing the integration of a plurality of elements in a computer system using a plurality of tests codes, each corresponding to an alternate product configuration for an associated element
US6704802B1 (en) * 1996-03-27 2004-03-09 Dell Usa, Lp Method and system for communicating between independent software modules
US5805796A (en) * 1996-03-27 1998-09-08 Dell Usa, Lp System architecture for implementing modular diagnostics
US6526457B1 (en) 1996-10-30 2003-02-25 Computer Associates Think, Inc. Systems utility object interface for facilitating software portability
US5815731A (en) * 1996-10-31 1998-09-29 International Business Machines Corporation Method and system for providing device driver configurations on demand
US6078741A (en) * 1997-02-05 2000-06-20 Firsttel Systems Corporation Automatic generation of reconfiguration scripts for telecommunication devices
US6263376B1 (en) 1997-02-24 2001-07-17 Novell, Inc. Generic run-time binding interpreter
US6125408A (en) * 1997-03-10 2000-09-26 Compaq Computer Corporation Resource type prioritization in generating a device configuration
US6529877B1 (en) * 1997-03-27 2003-03-04 British Telecommunications Public Limited Company Equipment allocation system
US6553416B1 (en) 1997-05-13 2003-04-22 Micron Technology, Inc. Managing computer system alerts
US6425006B1 (en) 1997-05-13 2002-07-23 Micron Technology, Inc. Alert configurator and manager
US6219711B1 (en) 1997-05-13 2001-04-17 Micron Electronics, Inc. Synchronous communication interface
US6134614A (en) * 1997-05-13 2000-10-17 Micron Electronics, Inc. Method for facilitating the replacement or insertion of devices in a computer system through the use of a graphical user interface
US6058445A (en) * 1997-05-13 2000-05-02 Micron Electronics, Inc. Data management method for adding or exchanging components on a running computer
US6046742A (en) * 1997-05-13 2000-04-04 Micron Electronics, Inc. Display of system information
US6134615A (en) * 1997-05-13 2000-10-17 Micron Electronics, Inc. System for facilitating the replacement or insertion of devices in a computer system through the use of a graphical user interface
US6105089A (en) * 1997-05-13 2000-08-15 Micron Electronics, Inc. Data management system for adding or exchanging components on a running computer
US6096094A (en) 1997-10-03 2000-08-01 National Instruments Corporation Configuration manager for configuring a data acquisition system
US6009466A (en) * 1997-10-31 1999-12-28 International Business Machines Corporation Network management system for enabling a user to configure a network of storage devices via a graphical user interface
US6636901B2 (en) 1998-01-30 2003-10-21 Object Technology Licensing Corp. Object-oriented resource lock and entry register
US6141712A (en) * 1998-01-30 2000-10-31 Object Technology Licensing Corporation Apparatus and method for modeling behavior of expansion boards in a computer system
US6161150A (en) * 1998-01-30 2000-12-12 Object Technology Licensing Corporation System for informing a computer user of a conflict encountered during resource allocation to expansion cards of different types having resource information in different format
US6161151A (en) * 1998-01-30 2000-12-12 Object Technology Licensing Corporation Object-oriented global resource conflict resolver formatting resource requirements into a predetermined standard format and iteratively computing a resource assignment for each I/O function
US6393557B1 (en) * 1998-05-08 2002-05-21 International Business Machines Corporation Dynamic method for configuring a computer system
US6192470B1 (en) * 1998-07-29 2001-02-20 Compaq Computer Corporation Configuration sizer for selecting system of computer components based on price/performance normalization
US6253318B1 (en) * 1998-07-29 2001-06-26 Compaq Computer Corporation Method of developing physical requirements for computer configuration
US6353884B1 (en) 1998-07-29 2002-03-05 Compaq Computer Corporation System for describing and storing descriptions of hierachical structures using hardware definition files to specify performance, characteristics, part number and name of hardware components
US6263382B1 (en) * 1998-07-29 2001-07-17 Compaq Computer Corporation Sizer for interactive computer system configuration
US6374352B1 (en) * 1998-08-26 2002-04-16 Intel Corporation Temporary configuration with fall-back
US6167408A (en) * 1998-08-31 2000-12-26 International Business Machines Corporation Comparative updates tracking to synchronize local operating parameters with centrally maintained reference parameters in a multiprocessing system
US6334178B1 (en) 1998-08-31 2001-12-25 International Business Machines Corporation Multiprocessing system with automated propagation of changes to centrally maintained configuration settings
US6341291B1 (en) 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
US6389491B1 (en) * 1999-03-23 2002-05-14 Agilent Technologies, Inc. Test instrumentation I/O communication interface and method
AU4663300A (en) * 1999-04-28 2000-11-10 Tranxition Corporation Method and system for automatically transitioning of configuration settings among computer systems
JP2001006276A (en) * 1999-06-18 2001-01-12 Sony Corp Device and method for controlling external apparatuses
WO2001046804A1 (en) * 1999-08-16 2001-06-28 Z-Force Corporation System of reusable software parts for implementing concurrency and hardware access, and methods of use
EP1103891A3 (en) * 1999-11-15 2006-04-19 Lipman Electronic Engineering Ltd. Adaptive management center especially used for point of sale terminals
US7139693B1 (en) * 1999-12-22 2006-11-21 Intel Corporation Using software objects to communicate with hardware devices
JP4453203B2 (en) * 2001-01-09 2010-04-21 セイコーエプソン株式会社 Device environment setting system, device environment setting processing method, and information recording medium
US20040024732A1 (en) * 2001-04-02 2004-02-05 Bryan Klisch Constructing a component management database for managing roles using a directed graph
JP3985135B2 (en) * 2001-12-27 2007-10-03 セイコーエプソン株式会社 Device initialization method in control system, control system, program for causing computer to execute device initialization method, and recording medium recording this program
US7849171B2 (en) * 2002-02-27 2010-12-07 Ricoh Co. Ltd. Method and apparatus for monitoring remote devices by creating device objects for the monitored devices
US20030225772A1 (en) * 2002-05-31 2003-12-04 International Business Machines Corporation Business method for determining required product configurations to meet varied performance requirements
US7730174B2 (en) * 2003-06-27 2010-06-01 Computer Associates Think, Inc. System and method for agent-based monitoring of network devices
US20050060659A1 (en) * 2003-09-11 2005-03-17 Dell Products L.P. System, method and software for communicating the effects of user preference settings in an information handling system
US7603447B2 (en) * 2004-07-30 2009-10-13 Research In Motion Limited Method and system for coordinating device setting between a communications client and its host device
WO2006010241A1 (en) 2004-07-30 2006-02-02 Research In Motion Limited System and method for providing a communications client on a host device
EP1766513A4 (en) * 2004-07-30 2007-11-21 Research In Motion Ltd Client-host divided architecture for input-output coordination
EP1787201A4 (en) 2004-07-30 2008-11-05 Research In Motion Ltd Method and apparatus for provisioning a communications client on a host device
KR100662921B1 (en) * 2004-12-07 2007-01-02 삼성전자주식회사 Image forming apparatus system and program installation method
US7293170B2 (en) 2005-06-06 2007-11-06 Tranxition Corporation Changing the personality of a device by intercepting requests for personality information
US8701023B1 (en) 2006-02-16 2014-04-15 Cypress Semiconductor Corporation Global parameter management graphical user interface (GUI) for embedded application design
US7786996B2 (en) * 2006-10-24 2010-08-31 Sony Corporation System and method for object oriented hardware including cross-point switch interconnecting modules with I/O
CN101667124A (en) * 2009-10-15 2010-03-10 上海宝信软件股份有限公司 System and method for configuring monitoring device based on object model

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4821220A (en) * 1986-07-25 1989-04-11 Tektronix, Inc. System for animating program operation and displaying time-based relationships
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
US4891630A (en) * 1988-04-22 1990-01-02 Friedman Mark B Computer vision system with improved object orientation technique
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
EP0347162A3 (en) * 1988-06-14 1990-09-12 Tektronix, Inc. Apparatus and methods for controlling data flow processes by generated instruction sequences
US5041992A (en) * 1988-10-24 1991-08-20 University Of Pittsburgh Interactive method of developing software interfaces
US5133075A (en) * 1988-12-19 1992-07-21 Hewlett-Packard Company Method of monitoring changes in attribute values of object in an object-oriented database
US5050090A (en) * 1989-03-30 1991-09-17 R. J. Reynolds Tobacco Company Object placement method and apparatus
CA2016396C (en) * 1989-05-15 1994-03-15 Refus J. Archon Initial program load (ipl) based on an object abstraction for a data processing system
US5060276A (en) * 1989-05-31 1991-10-22 At&T Bell Laboratories Technique for object orientation detection using a feed-forward neural network
US5125091A (en) * 1989-06-08 1992-06-23 Hazox Corporation Object oriented control of real-time processing
US5181162A (en) * 1989-12-06 1993-01-19 Eastman Kodak Company Document management and production system
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5075848A (en) * 1989-12-22 1991-12-24 Intel Corporation Object lifetime control in an object-oriented memory protection mechanism
US5151987A (en) * 1990-10-23 1992-09-29 International Business Machines Corporation Recovery objects in an object oriented computing environment
US5119475A (en) * 1991-03-13 1992-06-02 Schlumberger Technology Corporation Object-oriented framework for menu definition
US5253344A (en) * 1991-09-05 1993-10-12 International Business Machines Corp. Method and apparatus for dynamically changing the configuration of a logically partitioned data processing system

Also Published As

Publication number Publication date
CA2178582A1 (en) 1995-06-29
US5546595A (en) 1996-08-13
AU7310594A (en) 1995-07-10
DE69405408D1 (en) 1997-10-09
WO1995017715A1 (en) 1995-06-29
EP0730763A1 (en) 1996-09-11
EP0730763B1 (en) 1997-09-03
JPH09507317A (en) 1997-07-22

Similar Documents

Publication Publication Date Title
DE69405408T2 (en) OBJECT-ORIENTED SYSTEM AND METHOD FOR HARDWARE CONFIGURATION
DE69637436T2 (en) Object-oriented communication system with support for several remote machine types
DE69423853T2 (en) Input / output objects in an operating system kernel
DE69209193T2 (en) Network management agent with operator created objects
DE69402523T2 (en) OBJECT-ORIENTED DETERMINATION SYSTEM
DE69131122T2 (en) Graphic configuration of a data processing network
DE69329577T2 (en) METHOD AND SYSTEM FOR IMPLEMENTATION-INDEPENDENT INTERFACE SPECIFICATION
DE68919631T2 (en) Process for processing program parts of a distributed application program by a main computer and an intelligent workstation in an SNA LU 6.2 network environment.
DE69625633T2 (en) System and method for determining and handling server configuration information in a distributed object environment
DE68925866T2 (en) Computer system with processing computer
DE69630355T2 (en) DYNAMIC DEVICE ADAPTATION USING DRIVER CANDIDATE LISTS
DE68925474T2 (en) Locking computer systems
DE69832354T2 (en) Network management framework
DE69616329T2 (en) METHOD FOR CONTROLLING APPLICATION PROGRAMS IN A NETWORK
DE69801449T2 (en) METHOD AND SYSTEM FOR CONFIGURING COMPUTERS TO CONNECT TO NETWORKS THROUGH NETWORK CONNECTION OBJECTS
DE60108884T2 (en) METHOD AND DEVICE FOR PROCESSING COMMUNICATION QUESTIONS THROUGH A SERVER WITHOUT CONTEXT SWITCHING
DE69526185T2 (en) Method and system for connecting to, browsing and accessing computer network resources
DE69535578T2 (en) Data exchange with extended clipboard data formats
DE69936162T2 (en) Method and device for an object-oriented interruption system
DE69328162T2 (en) Apparatus and method for making part of a namespace available as part of another namespace
DE69503052T2 (en) IMPROVED OBJECT-ORIENTED OPERATING SYSTEM FOR FILTERING DATA OBJECTS IN A WINDOW
DE60009489T2 (en) DEVICE AND METHOD FOR MANAGING THE DISTRIBUTION OF CONTENT TO A DEVICE
DE3855166T2 (en) Self-configuration of nodes in a distributed, message-based operating system
DE60125989T2 (en) PROCESS AND APPARATUS FOR IMPROVED FILE MANAGEMENT
DE60003457T2 (en) METHOD AND SYSTEM FOR CONFIGURING COMPONENTS, OUTPUTABLE IN A NETWORK

Legal Events

Date Code Title Description
8332 No legal effect for de
8370 Indication related to discontinuation of the patent is to be deleted
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 730763

Country of ref document: EP