JPH0635709A - オブジェクトクラス規定装置、ウィジェット及びその実現方法 - Google Patents

オブジェクトクラス規定装置、ウィジェット及びその実現方法

Info

Publication number
JPH0635709A
JPH0635709A JP5167331A JP16733193A JPH0635709A JP H0635709 A JPH0635709 A JP H0635709A JP 5167331 A JP5167331 A JP 5167331A JP 16733193 A JP16733193 A JP 16733193A JP H0635709 A JPH0635709 A JP H0635709A
Authority
JP
Japan
Prior art keywords
widget
class
resource
function
callback
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.)
Pending
Application number
JP5167331A
Other languages
English (en)
Inventor
Charles D Blewett
ダグラス ブルウェット チャールズ
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.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
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 American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
Publication of JPH0635709A publication Critical patent/JPH0635709A/ja
Pending 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • 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/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Digital Computer Display Output (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 コンパイル時に規定されたオブジェクトクラ
スと識別不能な実行時オブジェクトクラスを規定する方
法を提供する。 【構成】 ウィジェットの内の一つは、特定のリソース
に関連付けられたモニタ関数を有するものである。リソ
ースがアクセスされると、関連するモニタ関数719が
実行される。他のウィジェットは、コールバック関数の
リストに関連付けられたコールバックテスタ関数721
を有するものである。コールバックテスタ関数はウィジ
ェットのリソースが修正された場合に起動され、テスト
成功時にコールバック関数リスト上の関数が起動され
る。その他の種類のウィジェットはサーバ及びクライア
ントを表現するように適合させられている。ウィジェッ
トにおいては、リソースがプロセス間通信を表現してお
り、リソースへの操作はプロセス間通信と関連付けられ
ている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、オブジェクトの周囲に
組織化されたプログラムを用いて構成されたシステムに
関し、特にそのクラスがコンパイル時に規定されるよう
なオブジェクトに関する。本発明に係る実施例において
は、オブジェクトは、Xウィンドウグラフィカルユーザ
インターフェースシステムにおいて用いられる型のウィ
ジェットである。
【0002】
【従来の技術】従来技術においては、アプリケーション
を実行するシステムを構成するために2つのアプローチ
が一般的には用いられてきた。第一のアプローチは、そ
のアプリケーション全体に対して単一のプログラムを書
くことである;例えば、賃金に関するアプリケーション
は、単一のCOBOLプログラムとして書かれた。
【0003】第二のアプローチは、アプリケーションを
構成するために協同して機能する処理(プロセス)の組
を用いるものである。ここで、処理(プロセス)という
言葉は、実行されているプログラムを表す。例えば、賃
金関係のアプリケーションは、データを収集するために
一つのプロセスとして実行される第一のプログラム、デ
ータをソーティングするために別のプロセスとして実行
される第二のプログラム、賃金記録を更新するために第
三のプロセスとして実行される第三のプログラム、賃金
記録を印刷するために第四のプロセスとして実行される
第四のプログラム、等々を用いている。協同プロセス間
の通信は、プロセス間通信(インタープロセス通信)に
よってなされる。この第二のアプローチは、第一のアプ
ローチに対していくつかの重要な利点を有している。ま
ず最初に、プロセスとして実行されるプログラムはカス
タムメードのプログラムではなくてしばしば標準的なユ
ーティリティプログラムであり、その種の標準的なユー
ティリティプログラムを組み合わせるほうが新たなコー
ドを書くより一般には高速かつ安価である。さらに、第
二のアプローチは複数個のプロセシングユニットを有す
るシステムに対してよりよく適応させられうる:各々の
プロセスは相異なったプロセシングユニット上で実行さ
れうるものである場合があり、アプリケーションがまさ
にその種のものである場合には、プログラムはパラレル
プロセスとして実行されうる。最後に、各プロセスがイ
ンタープロセス通信によって通信するため、そのアプリ
ケーションは容易に分散システム、すなわりプロセッサ
が相異なった場所に位置しているようなマルチプロセッ
サシステム、に対して容易に適応させられる。
【0004】
【発明が解決しようとする課題】アプリケーションを協
同するプロセスの組として構成する技法における問題点
は、プログラムを構成するためのオブジェクトの多用で
ある。オブジェクトは、プログラムによって操作される
実体である。プログラムがオブジェクトを操作する際に
は、必ず、そのオブジェクトに対して規定された操作の
組を用いて行なわなければならない。プログラムを構成
するためにオブジェクトを用いることの主要な利点は、
オブジェクトが、実際にどのように実現されているかと
いうことには関係なく、プログラム中における論理的実
体として取り扱える点である。例えば、論理的実体とし
て、キューは4つの操作を有している:キューの生成、
キューの破棄、キューの末尾への値の追加、及びキュー
の先頭部からの値の取り出し、の4つである。プログラ
ムがキューを表現しているデータストラクチャに対して
これらの操作のみしか用いない場合には、データストラ
クチャはプログラムの他の部分に影響を与えることなく
変更されうる。
【0005】多くのオブジェクト指向プログラミングシ
ステムにおいては、オブジェクトはクラスを有してい
る。オブジェクトのクラスとは、そのオブジェクトに対
して規定された操作の組である。例えば、生成、破棄、
末尾への値の追加、及び先頭部からの値の取り出し、と
いう操作が実行されるオブジェクトはキューというクラ
スを有するオブジェクトである。クラスは、他のクラス
に対して階層的な関係を有している。例えば、プログラ
ムは、キューに対して前記4つの操作が実行されうるの
みならず、付加的な操作、例えば現時点でキュー内に存
在するアイテムの数を見い出す、なども要求する場合が
ある。この新たな操作の追加は、キューオブジェクトの
新たなクラスを生成する。新たなクラスは元のキューク
ラスの全ての操作を含んでいるため、新たなクラスは元
のキュークラスのサブクラスとなり、元のキュークラス
は新たなキュークラスのスーパークラスとなる。
【0006】この階層構造は、数層にも亘る場合があ
る。階層構造における各々のクラスは、階層構造内のそ
れと第一のクラスとの間の全てのクラスのサブクラスで
あり、また、階層構造内のそれより下の全てのクラスの
スーパークラスである。さらに、サブクラスは、そのス
ーパークラス全てに対して規定された操作の全てを本来
有している。すなわち、あらゆるスーパークラスに対し
て規定された操作は、そのサブクラスのオブジェクトに
対して実行されうる。この操作の継承はオブジェクトに
よるプログラミング効率を格段に向上させる。なぜな
ら、新たなオブジェクトクラスを規定するために必要な
ことの全ては、新たな操作を規定することだけになるか
らである;継承される操作の全てはそのスーパークラス
において規定されている。
【0007】オブジェクト指向プログラミングがアプリ
ケーションを協同プログラムの組として生成する技法と
衝突することには2つの理由が存在する。その第一の理
由は、オブジェクトのクラスがコンパイル時、すなわ
ち、プログラムのソースコードが実際のコンピュータシ
ステムにおいて実行可能なオブジェクトコードの翻訳さ
れる時点で規定されるということである。他方、アプリ
ケーションを協同プロセスの組として生成する技法は、
この協同プロセスが、そのクラスがランタイムで、すな
わちアプリケーションが実際にコンピュータシステムに
よって実行される時点で規定されるようなオブジェクト
を生成しうることをしばしば要求する。
【0008】第二の理由は、Xウィンドウグラフィカル
ユーザインターフェースシステムを用いて書かれたプロ
グラムにおけるプロセスとの通信の困難性である。Xウ
ィンドウシステムは、ウィジェットと呼称されるオブジ
ェクトを用いる。残念ながら、ウィジェットに対するク
ラスの階層構造はプロセスとの容易な通信を可能にする
操作を含んでおらず、従ってXウィンドウグラフィカル
ユーザインターフェースシステムは協同プロシージャと
してインプリメントされたアプリケーションと共には用
いられ得ない。
【0009】本発明の目的は、一般的にはオブジェクト
指向プログラミングシステム、より詳細にはXウィンド
ウシステムに係るこれらの問題を解決することである。
【0010】
【課題を解決するための手段】本発明は、その一側面に
おいては、第二のオブジェクトクラスのサブクラスであ
る第一のオブジェクトを規定するオブジェクト指向プロ
グラミングシステムにおいて用いられる装置である。こ
の装置は、前記第二のオブジェクトクラスがコンパイル
時に規定され、かつ前記装置が実行時に前記第一のオブ
ジェクトクラスを、前記オブジェクト指向プログラミン
グシステムにとっては前記第一のオブジェクトクラスが
コンパイル時に規定されたものであるように見えるよう
に規定する手段を有する、ということによって特徴付け
られている。
【0011】本発明は、その別の側面においては、Xウ
ィンドウシステムにおいて用いられるウィジェットであ
る。このウィジェットは、当該ウィジェットが、ウィジ
ェットが生成される時点で規定されるリソースを、この
ようなウィジェットを生成するメソッドと共に含むとい
うことによって特徴付けられている。
【0012】本発明は、その他の側面においては、Xウ
ィンドウシステムにおいて用いられるウィジェットであ
る。このウィジェットは、そのリソース中に、そのリソ
ース中のある与えられた一つと関連付けられていてその
与えられたリソースがアクセスされた時点で起動される
モニタ機能を有するということによって特徴付けられて
いる。
【0013】本発明は、さらに別の側面においては、X
ウィンドウシステムにおいて用いられるウィジェットで
ある。このウィジェットは、そのリソース中に、与えら
れたコールバック機能と関連付けられていてリソースが
テストを実行するように修正された場合に起動され、さ
らにその起動の結果がそのように示された場合には前記
与えられたコールバック機能を起動する、コールバック
テスタ機能を有するということによって特徴付けられて
いる。
【0014】本発明は、その付加的な側面においては、
Xウィンドウシステムにおいて用いられるウィジェット
である。このウィジェットは、プロセス間通信を表現す
るリソース及びプロセス間通信に対するリソースに関す
る操作を関連付ける手段を有するということによって特
徴付けられている。
【0015】本発明に係る前述されたあるいはそれ以外
の目的、側面、及び利点は、以下の実施例に関する詳細
な説明によって当業者には明らかとなる。
【0016】
【実施例】本発明のより望ましい実施例は、Xウィンド
ウシステムにおいて実現される。従って、以下の詳細な
説明においては、まず、Xウィンドウシステム及びウィ
ジェットの概略が記載される。その後、仮想ウィジェッ
ト、すなわち、実行時にそのクラスが規定されるウィジ
ェットがいかにして構成されるかが記載され、次いで、
リソースのアクセスに応答してモニタ機能が起動された
場合あるいはリソースに対する修正に応答してコールバ
ックテスタ機能に係るコールバックプロシージャが起動
されるべきか否かを決定するためにコールバックテスタ
機能が起動された場合に如何にしてウィジェットが生成
されるかが記載され、最後にそのような性質を有する仮
想ウィジェットが如何にして協同プロセスを制御するた
めに用いられうるかが記載されうる。
【0017】Xウィンドウシステムは、グラフィカルユ
ーザインターフェース(GUI)を制御するために用い
られる公知の一般的なシステムである。グラフィカルユ
ーザインターフェースは、ウィンドウ、メニュー、アイ
コンなどのアクティブグラフィカルエレメントの使用を
可能にする、コンピュータシステムへのインターフェー
スである。グラフィカルユーザインターフェースのユー
ザは、コンピュータシステムを、グラフィカルユーザイ
ンターフェースのエレメントに関する操作を実行するこ
とによってコンピュータシステムをコントロールする。
この操作は、通常、マウスやペンなどのようなポインテ
ィングデバイスによって実行される。例えば、アイコン
はグラフィカルユーザインターフェースにおいてプログ
ラムを表現する。プログラムを実行するためには、ユー
ザはそのアイコンを選択しかつ起動するためにマウスを
用いる。
【0018】Xウィンドウシステムの、ここでの議論に
関連したエレメントは、ポール・ジェイ・アセント(P
aul J. Asente)、ラルフ・アール・スウ
ィック(Ralph.R.Swick)による、”Xウ
ィンドウシステムツールキット、コンプリート・プログ
ラマーズ・ガイド・アンド・スペシフィケーション”
(デジタル・イクイプメント(Digital Equ
ipment)社、1990年)に記述されている。図
1は、Xウィンドウシステム101の概略を示したもの
である。システム101は、グラフィカルユーザインタ
ーフェース103を制御する。グラフィカルユーザイン
ターフェース103は3つの主要なコンポーネント、デ
ィスプレイ109、キーボード105、及びポインティ
ングデバイス107、を有している。ディスプレイ10
9は、一つあるいは複数個のウィンドウによって占めら
れている。ウィンドウ111は、グラフィカルユーザイ
ンターフェース103のユーザが操作を行なうスクリー
ン109上のある領域である。ウィンドウ111は他の
ウィンドウを含みうる。例えば、テキストエディタに対
するウィンドウ111はエディット中のテキストが表示
されているウィンドウ、スクロールバーであるウィンド
ウ111、及びエディット操作を規定する”ボタン”で
あるウィンドウ111を含むことができる。
【0019】グラフィカルユーザインターフェース10
3は、Xサーバ(XS)113によって制御されてい
る。Xサーバは、ディスプレイ109、キーボード10
5、及びポインティングデバイス107が接続されたプ
ロセッサ上で実行される。Xサーバ113は、ディスプ
レイ109上で表示を行なうために実際に必要となる操
作を実行し、さらにポインティングデバイス107及び
キーボード105に応答してカーソルを移動させ、ディ
スプレイ109上に文字を表示する。Xサーバ113
は、Xライブラリ115内のルーチンとデータのやり取
りを行なう。Xライブラリ115は、Xサーバ113に
よって提供されたグラフィカルユーザインターフェース
103へのプリミティブインターフェースをより高次の
インターフェースへと移動する;すなわち、プログラマ
は、ウィンドウ及び入力イベントに関して、ディスプレ
イ109及び入力デバイス105及び107を扱うため
に、Xライブラリ115内のルーチンを用いることが可
能である。
【0020】より高次のインターフェースは、Xイント
リンシックス117によって提供される。これは、ディ
スプレイ109内のウィンドウがウィジェットと呼称さ
れるオブジェクトによって表現されるようなインターフ
ェースを実現する。アプリケーションプログラム115
は、ウィンドウを表現しているウィジェット(W)12
5に対する操作を実行するために、Xイントリンシック
ス117内のルーチンを用いてディスプレイ109内の
ウィンドウ111に対する操作を実行する。Xイントリ
ンシックス117内のルーチンは、さらに、ウィジェッ
トによって表現されたウィンドウ111の状態における
変化に応答して起動され、これらのルーチンはウィンド
ウ内の状態の変化によって要求されるようにウィジェッ
ト125に対して機能する。
【0021】Xイントリンシックス117によって提供
されるウィジェットインターフェースにおいては、アプ
リケーションプログラム119とウィジェット125と
の間の通信は、ウィジェット125内のリソース127
によってなされる。リソースは、アプリケーションプロ
グラム119によって読み書き可能なウィジェット12
5内のデータ値である。リソース127に含まれている
のはコールバック129であり、これはアプリケーショ
ンプログラム119内のルーチンリストである。Xイン
トリンシックスは、ウィジェット125の状態の変化に
応答して自動的にコールバック129内のルーチンを起
動する。
【0022】システム101の操作は、以下のように行
なわれる: アプリケーションプログラム119は、そ
れぞれ矢印121及び123によって示されているよう
に、ウィジェット125を生成してウィンドウ111を
制御するためにXイントリンシックス117によって提
供されるウィジェット操作を用いるか、あるいはXライ
ブラリ115内のルーチンと直接用いるかのいずれかが
可能である。ここでの説明に関しては、最初の場合のみ
が重要である。アプリケーションプログラム119が、
ウィジェット125を生成して当該ウィジェットをウィ
ンドウ111と関連付けるためにひとたびXイントリン
シックスのルーチンを用いると、アプリケーションプロ
グラム119はウィジェット125を制御して、リソー
ス127内の値を読み取って設定することによりウィン
ドウ111を制御する。その後、Xイントリンシックス
117内のルーチンは、Xライブラリ115内のルーチ
ンによってウィジェット125に対応するウィンドウを
制御する場合にリソース127内の値を用いる;同様
に、ウィンドウ111の状態の変化が変化を反映した値
をGUI103からXサーバ113、Xライブラリ11
5、及び最終的にXイントリンシックス117へ戻す場
合、状態の変化によって要求されるようにXイントリン
シックス117内のルーチンがリソースの値を変化さ
せ、及び/あるいはコールバックルーチン129を起動
する。例えば、ウィンドウ111のリソースはディスプ
レイ109内のウィンドウの位置を含んでいる;ウィン
ドウ111がグラフィカルユーザインターフェース10
3のユーザによって移動させられた場合、Xイントリン
シックス117は新たな位置を示すために位置リソース
を更新する。
【0023】ウィジェット125は種々のクラスに属し
ており、これらのクラスは階層構造を構成している。図
2は、ウィジェットクラスの階層構造例201を示した
図である。全てのウィジェットクラスはコアクラス20
3のサブクラスであり、このコアクラス203はXイン
トリンシックス117によって規定されている。その次
のレベルには、コンポジットクラス205及びラベルク
ラス207が位置している。コンポジットクラス205
はXイントリンシックス117によって規定された別の
クラスである。ウィジェット125は、ウィジェット1
25が表現しているウィンドウ111が他のウィンドウ
を含む場合には、このコンポジットクラスのサブクラス
に属さなければならない。ラベルクラス207は、その
ウィジェットがラベルを表示するようなクラスである。
ラベルクラス207のサブクラスにはプッシュボタン2
13が含まれている。プッシュボタンクラス213のウ
ィジェットによって表現されるウィンドウ111は、ラ
ベルを有するのみならず、グラフィカルユーザインター
フェースのユーザによって起動されうる。ウィンドウが
起動されると、ある種の応答が生ずる。トグルクラス2
15はプッシュボタン213のサブクラスである;その
クラスのウィジェットは、”オン−オフ”プッシュボタ
ンを表現するウィンドウを表現する。
【0024】コンポジットクラスのサブクラスには、X
イントリンシックスによって定義された別のクラス、す
なわちシェルクラス209が含まれている。シェルクラ
スに属するウィジェットは、他のウィンドウを含むため
のみに存在するウィンドウを表現する。他のサブクラス
は、ボックスクラス210及び拘束クラス211であ
る。ボックスクラスに属するウィジェットは、ディスプ
レイ上でボックスを形成するウィンドウを表現する;拘
束クラスに属するウィジェットは、それが表現するウィ
ンドウに対する拘束を規定する。拘束クラス211もま
たXイントリンシックス117によって規定されてい
る。
【0025】サブクラスに属するウィジェット125
は、クラスの階層構造201中でその上位に位置するウ
ィジェット125の全ての属性を継承している。よっ
て、トグルクラス215に属するウィジェット125
は、プッシュボタン213、ラベル217、及びコアク
ラス203の全ての属性を継承している。ウィジェット
の属性には園リソース127が含まれている;結果とし
て、ウィジェット125はそのクラス自体のリソースを
有するのみならず階層構造中でそれより上位に位置する
全てのクラスのリソースも有している。
【0026】ウィジェットはウィジェットツリーに属し
ている。ウィジェットツリーにおいては、そのウィンド
ウが他のウィンドウに含まれているあらゆるウィジェッ
トは、含む側のウィンドウを表現しているウィジェット
のチャイルドウィジェットとなっている。図3はウィン
ドウ301及びそのウィジェットツリー311を示した
図である。ウィンドウ301はラベル305及びボタン
307を含むボックス303である。ウィジェットツリ
ー311は、シェルクラス209に属するウィジェット
であるウィジェット313、ボックス303を表現して
おりボックスクラス210に属するウィジェットである
ウィジェット315、ウィジェット315の2つのチャ
イルドウィジェット、すなわちラベル305を表現して
おりラベルクラス207に属するウィジェット317及
びボタン307を表現しておりプッシュボタンクラス2
13に属しているウィジェット319、より構成されて
いる。ウィジェットツリー311は、ウィジェットツリ
ー311中において点線によって示されたペアレント及
びチャイルドポインタによってXウィンドウシステム中
において実現されている。各々のウィジェット125
は、そのチャイルドウィジェットに対してチャイルドポ
インタ(CHP)321を、そのペアレントに対してペ
アレントポインタ(PP)323を有している。
【0027】一般にXウィンドウシステム、特にウィジ
ェットは、グラフィカルユーザインターフェースのプロ
グラミングを大幅に簡略化したが、依然としてある種の
アプリケーションに対するウィジェットの使用を制限す
る要因が存在している。とりわけ、ウィジェットのクラ
スがコンパイル時に規定されるという事実が問題であ
る。Xウィンドウシステムは、クラスを実行時に規定す
る手段を提供しない。さらに、コールバックルーチンに
よって提供されるコントロールのレベルが未だに充分で
はない。特に、特定のリソースに対するアクセスと関連
付けられたコールバックルーチンを規定する方法及び既
存のコールバックルーチンを特定の状況と関連付ける方
法は存在しない。以下、このような制限要因を克服する
技法が記述される。
【0028】アプリケーションプログラム119がウィ
ジェットを生成することを可能にさせるためにXイント
リンシックス117が提供するインターフェースは、X
tCreateManagedWidget関数であ
る。図4は、そのような関数415を示したブロック図
である。この図から明らかなように、関数415は4つ
の引き数、すなわち、そのウィジェットに対する文字列
名405、そのウィジェットのクラスに関するクラス情
報に対するポインタ407、生成されつつあるウィジェ
ットのペアレントであるウィジェットツリー311内の
ウィジェットに対するポインタ311、生成されつつあ
るウィジェットのリソース127の値のリスト、及びリ
スト上の値の数、を有している。値のリストはリソース
名と対応する値よりなるリストである。リソース名、そ
のタイプ、及びリソースのデフォールト値は、ウィジェ
ットのクラスが規定された場合に規定される。
【0029】XtCreateManagedWidg
et415の動作は以下のようになされる: クラスポ
インタ407は、Xイントリンシックス117によって
管理されているクラスデータベース中で新たなウィジェ
ットのクラスに対するクラス情報419を配置するため
に用いられる。クラス情報419は、クラスの階層構造
において、当該ウィジェットのクラスに対する最初のス
ーパークラスに関するスーパークラス情報421(0)
に対するポインタを含んでおり、スーパークラス情報4
21(0)は、階層構造中でその直上位に位置するスー
パークラスの情報421に対するポインタを有し、等々
で、そのうちの最後のものは、スーパークラス421
(n)、すなわちコアクラスに対する情報を含んでい
る。関数415は、クラス情報419から得られた当該
ウィジェットのクラスに関する全てのリソース、及び当
該ウィジェットのスーパークラス全てに関するスーパー
クラス情報421、に関する記述を得る。そのクラスを
有する他のウィジェットが既に生成されている場合に
は、リソースは”初期化される”、すなわち、そのウィ
ジェットに適したコンパクトな形にされる。初期化に際
して、当該ウィジェットに対してストレージ領域が割り
当てられ、リソースはそのストレージ領域にコピーされ
る。次いで、引き数411のリストが読み取られ、その
引き数リスト411に名前が載っているリソース127
の値がリストに含まれている値にセットされる。最後
に、ウィジェット125内のポインタがそのウィジェッ
トのペアレントウィジェットに(ペアレントポインタ
(PP)423)及びそのクラス情報419に(CLP
424−このポインタはもちろん引き数407として渡
されている−)セットされ、ペアレントウィジェットに
おけるポインタが新たなチャイルドウィジェットにセッ
トされる(チャイルドポインタ(CHP)425)。
【0030】ウィジェットのクラスが実行時に規定され
る技法の概略は図5に示されている。そのクラスが実行
時に規定されるウィジェットは、これ以降仮想ウィジェ
ットと呼称される。ウィジェットのクラスの実行時にお
ける規定は、関数VirtualCreateWidg
etClass515によって実行される。この関数
は、クラス407に対するポインタを返し、よって、X
tCreateManagedWidget415の起
動に際してポインタ407を生成するために用いられう
る。XtCreateManagedeWidget4
15の起動により仮想ウィジェット523が生成され
る。
【0031】VirtualCreateWidget
Class515は、5つの引き数503、すなわち、
仮想ウィジェットのクラス名であるクラス名505、そ
のクラスに対して追加された新たなリソースのリストを
指し示すポインタである新リソース507、新たなリソ
ースのリスト上にあるアイテムの数である新リソース数
509、仮想ウィジェットのクラスが直下のサブクラス
となるクラスに関するスーパークラス情報421へのポ
インタであるスーパークラス511、及び、スーパーク
ラス情報421の大きさであるスーパークラスサイズ5
13、を有している。Xイントリンシックス117は、
クラスポインタが与えられた場合にそのクラスに対する
情報を返す関数、及び与えられたクラスポインタに対し
てそのクラス情報の大きさを返す関数を提供する。
【0032】関数415は、おおむね以下の様な動作を
行なう: ・スーパークラス情報を配置する為にスーパークラスポ
インタ511を用いる。 ・実行時クラス情報(RCI)521を生成するため
に、スーパークラス情報421及び引き数505、50
7、509を用いる。この実行時クラス情報は、Xイン
トリンシックスが関係する限りにおいてはコンパイル時
クラス情報419とは区別され得ないものである。 ・そのクラスに対して規定された新たなリソースに対し
て要求されるデータを保持するために充分な大きさであ
るようにウィジェットのサイズを設定する。 ・実行時クラス情報521に対するポインタを返す。こ
のポインタは、XtCreateManagedWid
getを起動する際にクラスポインタ407として用い
られる。
【0033】VirtualCreateWidget
Class515の動作は、図6の流れ図により詳細に
示されている。呼び出し601に続く第一の段階は、新
たなリソースのリストを保持するためのストラクチャを
構築することである(603)。本発明のより望ましい
実施例においては、このリストは常にモニタ関数とコー
ルバックテスタ関数を有しており、さらに仮想ウィジェ
ットクラスに対してプログラマが定義することを望む他
の新たなリソースが含まれる。このストラクチャのサイ
ズは、引き数509、すなわち新リソース数によって決
定される。次の段階(605)は、Xイントリンシック
ス117によって提供された関数を用いてスーパークラ
スポインタ511によって規定されたスーパークラスを
初期化することである。関数XtInitialize
WidgetClassはスーパークラスポインタ51
1を引き数として用い、このスーパークラスに関するク
ラス情報をそのスーパークラスに対するスーパークラス
情報421から、さらにこのスーパークラスがサブクラ
スとなるあらゆるクラスに対するスーパークラス情報4
21から、獲得し、これら全てのクラス情報をそのクラ
スに属するウィジェットに対してコピーされうるような
フォーマットに収める。この後者を行なうために、この
関数は必要なXイントリンシックス初期化関数の全てを
呼び出し、リソースリストをコンパイルする。
【0034】その後、初期化されたスーパークラス情報
は、仮想ウィジェットに対する実行時クラス情報521
にコピーされ(607)、実行時クラス情報521内の
フィールドは、新たなリソースを実行時クラス情報に追
加するため及びその実行時クラスに属している仮想ウィ
ジェット523の適切な振る舞いを保証するために必要
とされるように修正される(609)。実行時クラス情
報521は、新たなスーパークラスに関する情報も含ん
でおり、必要な場合にはその情報も修正される(61
1)。これらの修正に関しては、以下に詳細に記載され
る。最後に、段階613においては、VirtualC
reateWidgetClassは、Xイントリンシ
ックスの関数XrmCompileResourceL
istを用いて新たなリソースのリストをコンパイル
し、コンパイルされたリストを初期化する。Virtu
alCreateWidgetClass515が終了
すると、それは実行時クラス情報521に対するクラス
ポインタを返す。
【0035】段階609及び611の詳細について付け
加えれば、実行時クラス情報521は等価のコンパイル
時クラス情報419と同一のフィールドを有している。
これらのフィールドの中で、2組がここでの議論に関連
している:すなわち、全てのウィジェットクラス情報4
19に含まれているCoreClassPartストラ
クチャに含まれるフィールド、及び拘束クラスのサブク
ラスであるウィジェットに対するクラス情報419に含
まれているConstraintClassPartス
トラクチャに含まれるフィールドである。CoreCl
assPart及びConstraintClassP
artに関する完全な情報は、前掲のアセンテ及びスウ
ィックによる参照文献に見い出される;ここでは、Vi
rtualCreateWidgetClass515
が実行時クラス情報521中で修正するフィールドのみ
に議論が限定される。
【0036】図7は、修正されたフィールドを示す図で
ある。CoreClassPartから始めると、修正
されたフィールドは、そのクラスに対するスーパークラ
ス情報421を示しており、ポインタ511がセットさ
れたスーパークラスフィールド701、新たなクラスに
対するクラス名がセットされたクラス名フィールド70
3、実行時情報521に対して必要とされるストレージ
領域の大きさがセットされたウィジェットサイズフィー
ルド705、NULLがセットされていてスーパークラ
スにおいて規定される初期化コールバックルーチンが起
動されないことを保証する初期化コールバックルーチン
関連ポインタ707−711、VirtualCrea
teWidgetClass515によって生成された
リソースリスト718を指し示すポインタ715がセッ
トされたリソースリストポインタ713、リソースリス
ト718が必要とするようにセットされたリソース数フ
ィールド715、クラス名から導出された識別子がセッ
トされたXRMクラスフィールド717、及び、ウィジ
ェットが破壊された場合に起動されたコールバックルー
チンを破壊するためのポインタ723である。
【0037】最後の2つのフィールドは更なる議論を必
要とする。Xウィンドウシステムにおいては、リソース
の値はXイントリンシックスの関数XtSetValu
esによって設定され、Xイントリンシックスの関数X
tGetValuesによって読み出される。ウィジェ
ット設計者は、ウィジェットに対するXtSetVal
ues及びXtGetValuesを規定できる。この
ことを実現するために、設計者は、設計者が書いた関数
に対するポインタをそれぞれセットバリューフィールド
725及びゲットバリューフィールドに配置する。仮想
ウィジェット523の場合には、これらの関数が新たな
リソースへのアクセスをウィジェットの状態における変
化と関連付ける働きをしている。本発明のより望ましい
実施例においては、ポインタ727はVirtualS
etValues関数729を指し示しており、ポイン
タ733はVirtualGetValues関数73
1を指し示している。これらの関数については後程詳細
に説明される。より望ましい実施例においては、すべて
の仮想ウィジェット523は関数729および731を
利用する;しかしながら、他の実施例においては、これ
らのポインタはVirtualCreateWidge
tClass関数515の引き数として渡される場合も
あり、また仮想ウィジェットの相異なったクラスが相異
なった関数729及び731を有しうる。
【0038】仮想ウィジェット523のクラスが拘束ク
ラスのサブクラスである場合には、実行時クラス情報5
21は一つあるいは複数個のConstraintCl
assPartフィールドを有することになる。これら
のうちの一つが図7の737に示されている。Cons
traintClassPartフィールドは、チェー
ンコールバックを有している。すなわち、ウィジェット
のクラスが拘束クラスのサブクラスである場合には、実
行時情報521内のConstraintClassP
art737の全てにおけるコールバックが、最上位あ
るいは最下位の拘束クラスから始まる、クラスの階層構
造内の拘束クラスの順序に従って実行される。関連する
コールバック関数は、フィールド739に規定された初
期化関数、フィールド741に規定された破壊関数、及
びフィールド743に規定されたセットバリュー関数で
ある。これらのコールバック関数が実行されることを防
ぐために、VirtualCreateWidgetC
lass関数515は、CoreClassPart7
05から始めて各々のConstraintClass
Partを順々に配置し、フィールド739−743内
のポインタをNULLにセットする。これらのポインタ
は、各々の拘束クラスに対する初期化、破壊、及びセッ
トバリュー関数を指し示している。
【0039】標準的なXウィンドウシステムにおいて
は、アプリケーションプログラム119がXtSetV
aluesあるいはXtGetValues関数を起動
した際に起動されるコールバック関数のみが、これらの
Xイントリンシックス関数に対してウィジェット設計者
が規定した関数である。必要なのは、リソースがアクセ
スされた場合にウィジェット125内に生ずるものに対
する微細な制御を実現する技法である。本発明のより望
ましい実施例においては、仮想ウィジェット523に対
して規定された新たなリソースがこの種の微細な制御を
達成するために用いられる。
【0040】このような制御は、モニタ関数及びコール
バックテスタ関数を用いて実現される。モニタ関数は、
特定のリソースに関連しており、そのリソースがアクセ
スされた場合に、すなわち、アプリケーションプログラ
ム119が、モニタ関数と関連付けられているリソース
を含むリソースリストと共にXtSetValuesあ
るいはXtGetValuesを呼び出した場合に、必
ず起動される関数である。テスタ関数は、ウィジェット
のクラスに関する一つあるいは複数個のコールバック関
数に関連付けられた関数である。ウィジェットに属する
リソースの値が変更された場合に、すなわち、アプリケ
ーションプログラムがXtSetValuesを呼び出
した場合に、毎回テスタ関数はテストを実行する。テス
トの結果に従って関連するコールバック関数が実行され
る。このテストはテスタ関数がアクセス可能なデータを
含みうる。
【0041】図7は、この技法が仮想ウィジェット52
3において実現されている様子の概略を示している。実
行時情報521はリソースリスト718を有している。
本発明のより望ましい実施例におけるリソースリストは
3つの部分を有している:モニタ関数のリスト719、
コールバックテスタ関数のリスト721、及び他のリソ
ースのリスト720である。他のウィジェットリソース
の場合と同様、リスト719上のモニタ関数及びリスト
721上のコールバックテスタ関数は、アプリケーショ
ンプログラム119によるXtSetValuesの実
行によってリスト上に配置される。リスト719上のモ
ニタ関数は、仮想ウィジェット523のクラスに対する
新たなリソース507のいずれかと関連付けられてい
る。リスト721上のコールバックテスタ関数は、与え
られたコールバックテスタ関数がアクセス可能なデータ
に関するテストを実行する。
【0042】リスト719及び721上の関数の起動
は、VirtualSetValues関数729及び
VirtualGetValues関数731によって
取り扱われる。前述されているように、これらの関数
は、アプリケーションプログラム119がウィジェット
のリソースの値を設定するあるいは読み出すためにそれ
ぞれXtSetValuesあるいはXtGetVal
uesを起動した場合に必ず実行される。これらの関数
の動作の概略及びそのリソース127及びテスタ/モニ
タ関数との関係が図9に示されている。仮想リソース管
理装置901は、アプリケーションプログラム119、
XイントリンシックスXtSetValues関数90
3、XイントリンシックスXtGetValues関数
905、VirtualSetValues関数72
9、VirtualGetValues関数731、リ
ソース127、モニタセットバリュー関数915、モニ
タゲットバリュー921、及びコールバックテスト関数
917を含んでいる。
【0043】リソース127には、仮想ウィジェット5
23に対する仮想リソース914が含まれている。もち
ろん、仮想リソース914は実行時クラス情報521に
おいて規定される。仮想リソース914は2つの部分に
別れている:すなわち、仮想リソースの各々に対して一
つずつのエントリを確保している仮想リソースアレイ9
09、及びコールバックテスタ関数のリスト911であ
る。アレイ909及びリスト911は、それぞれXtS
etValues903及びXtGetValues9
05によって設定及び読み出しされる。
【0044】動作は以下のようになされる:アプリケー
ションプログラム119が仮想リソースを含むリソース
リストと共にXtSetValuesを起動する場合に
は、XtSetValuesは、VirtualSet
Values729及び仮想ウィジェット523のクラ
スに対するセットバリュー関数を、仮想リソースを処理
するために起動する。最も単純な場合には、セットさる
べき仮想リソースはモニタ関数でもコールバックテスタ
関数でもない。この場合には、VirtualSetV
alues関数729は仮想リソースアレイ909内の
その仮想リソースに対するエントリを配置するために実
行時クラス情報521を用いる。エントリが、そのリソ
ースの値がセットされた場合に実行されるべきモニタセ
ットバリュー関数915が存在することを示した場合に
は、そのモニタ関数915が実行される。このようなモ
ニタ関数915が実行された後に、リソースがセットさ
れる。その後、コールバックテスタリスト911上のコ
ールバックテスタ関数917が実行され、テスト結果が
真である場合には、そのコールバックテスタ関数に関連
するコールバック関数が実行される。セットさるべき仮
想リソースがモニタ関数のリストである場合には、Vi
rtualSetValues729は仮想リソースア
レイ909中のモニタ関数に対するデータを更新する;
セットさるべき仮想リソースがコールバックテスタリス
ト911である場合には、VirtualSetVal
ues729はそのリストを更新する。
【0045】アプリケーションプログラム119が仮想
リソースを含むリソースと共にXtGetValues
905を起動する場合には、Xイントリンシックス11
7はその仮想リソースに対してVirtualGetV
aluesを起動する。各々の仮想リソースに対してV
irtualGetValuesは、仮想リソースアレ
イ909中の仮想リソースを配置するために実行時クラ
ス情報521を利用し、関連するモニタゲットトバリュ
ー関数921を実行し、仮想リソースの値を返す。仮想
リソースの値が変更されなかった場合には、コールバッ
クテスト関数は実行されない。
【0046】図8は、VIrtualGetValue
s731及びVirtualSetValues729
によって用いられるデータストラクチャの詳細を示した
図である。セットさるべき仮想リソースがコールバック
テスタリスト911である場合には、VirtualS
etValues729はコールバックテスタ関数のリ
ストを必要とする。データストラクチャ801はそのリ
ストの一部である。ここには4つのフィールド、すなわ
ち、テスト結果が真である場合に起動さるべきコールバ
ック関数のリストの名前803、関数によって用いられ
るデータへのポインタ、コールバック関数を起動するコ
ールバックテスタ関数917へのポインタ、及びコール
バックテスタ関数のリストの次の部分へのポインタであ
る。データストラクチャ811はコールバックテスタリ
スト911の一部である。フィールド813、815、
及び817はフィールド803、805、及び807に
対応している。コールバック名ID819は、フィール
ド813によって規定されたコールバック関数の識別子
である。ネクストフィールド821はリスト911中の
次の部分へのポインタである。
【0047】同様に、セットさるべき仮想リソースがモ
ニタ関数721である場合には、VirtualSet
Values729はモニタが提供さるべき仮想リソー
スとモニタとを規定しているリストを要求する。データ
ストラクチャ823はそのリストの一部を示している。
フィールド825はリソース名を含んでおり、フィール
ド827はゲットバリューモニタに対するクライアント
データへのポインタ、フィールド829はゲットバリュ
ーモニタ関数へのポインタ、フィールド831及び83
3はセットバリューモニタ関数に対する同様の値、及び
フィールド834はリスト中の次の部分へのポインタを
それぞれ含んでいる。
【0048】VirtualSetValues729
は、仮想リソースアレイ909内の値をセットするため
に、この情報及びリソースリスト718からの情報を用
いる。リソースリスト718は、各々のリソースに対し
て一つのリソースリストエントリ839を有するアレイ
である。エントリ中には、リソース名及びリソースタイ
プに対するリソース名識別子841及びリソースタイプ
識別子843が含まれている。仮想リソースアレイ90
9はリソースリスト718と対応するものである。リソ
ースリスト718中の各々のエントリに対応する仮想リ
ソースアレイエントリ(VRAE)846が存在し、対
応するVRAE845はリソースリスト718中のエン
トリが属しているリソースに関連する値を含んでいる。
仮想リソースアレイエントリ846は、5つのフィール
ドを有している。これらのフィールドの中で、フィール
ド847−853はリソース名フィールド825におい
て規定されたリソースに対するフィールド827−83
3と対応する値を有している。フィールド855はリソ
ースの現時点での値を有している。
【0049】図10は、VirtualSetValu
es729の詳細な流れ図である。この関数の引き数
は、クラスのセットバリュー関数に対するXイントリン
シックス117によって規定されたものである。これら
は、3つのウィジェットポインタ、引き数リストポイン
タ、及びリスト上の引き数の数である。3つのウィジェ
ットポインタは、それぞれ、そのリソースが新たな値を
受信することになるウィジェットのコピー、そのクラス
のセットバリュー関数が起動された時点で変更が完了し
ていたウィジェットのコピー、及び、実際に値が変更さ
れたウィジェットのコピーを指し示している。
【0050】1001にて起動された後の第一の段階
は、仮想ウィジェット523の実行時クラス情報521
が存在していること及びその実行時クラス情報が適切に
初期化されていることを確認することである(100
3)。実行時クラス情報が存在しない場合には、この関
数は終了する。その次の段階は、仮想ウィジェット52
3に対するリソースリスト718を見い出すことであ
る。この関数の残りの部分は、ループ1006である。
このループにおいては、引き数リスト中の各々のリソー
スに対してそのリソースがリソースリスト718中に存
在しているか否かを決定し、存在している場合には仮想
リソースアレイ909中の必要な修正を実行することで
ある。
【0051】決定ブロック1007においては、処理さ
るべき引き数が残存しているか否かが決定される;存在
していない場合には、全てのリソースがセットされてお
り、コールバックテスタ関数リスト911上のコールバ
ックテスタ関数が実行される(1009)。このことが
なされた後、この関数は終了する。処理さるべき引き数
が残存している場合には、次の引き数が以下のように処
理される:まず、その名前が引き数リストから取得され
る;次に、リソースリスト718がチェックされ、その
名前がリスト上に存在しているか否かが決定される(1
013);存在している場合には、そのタイプが検査さ
れてその名前によって表現されるリソースがモニタリス
ト上に存在しているか否かが決定される(1015);
モニタリスト上に存在している場合には、そのモニタが
仮想リソースアレイ909上にインストールされる。こ
のことは、インストールさるべきモニタのリスト上の各
々のエントリ823に対して以下のことを行なうことに
よって実現される:まず、リソースに対する仮想リソー
スアレイエントリ846を配置するために、リソースリ
スト718内のエントリ823からリソース名825を
利用する;その後、リストの一部のフィールド827、
829、831、及び833からフィールド847、8
49、851、及び853がセットされる。モニタがイ
ンストールされると、ループ1006が再び実行され
る。
【0052】セットされるリソースがモニタ関数719
ではない場合には、VirtualSetValues
関数729はそれがコールバックテスタ関数721であ
るか否かをチェックする。コールバックテスタ関数72
1である場合には、コールバックテスタ関数が仮想リソ
ース914のコールバックテスタ関数リスト911中に
インストールされる(1021)。このインストール
は、コールバックテスタリスト911に対するリストの
一部分811を作製するために引き数のリストの一部分
における情報を用いることによって実行される。新たな
リストの一部分811を含むコールバックテスタリスト
911は、古いコールバックテスタリスト911を置換
する。リストがインストールされると、実行ループ10
06が再び開始される。
【0053】モニタ関数リストでもコールバックテスタ
関数リストでもないリソースは、1023においてセッ
トされる。リソースがセットされる前に、セットバリュ
ーモニタ853において規定されたモニタ関数が実行さ
れる;その後、リソースの値がリソースに対する引き数
に規定されているようにセットされる。このことが実行
された後、ループ1006が再び実行される。
【0054】VirtualGetValues関数7
51は、引き数として、ウィジェットに対するポイン
タ、その値が読み出されることになるリソースのリス
ト、及びそのリスト内のアイテムの数の表示を必要とす
る。実際は、VirtualGetValues751
は、図10の1003、1005、1007及び101
1を含んでいるが、ループ1006と等価のループは1
007及び1011のみを含んでおり、さらに規定され
た仮想リソースの値が読み出される段階も含まれてい
る。すべての引き数が読み出されると、この関数は引き
数によって規定されたリソースの値を返す。
【0055】コールバックテスタ関数及びモニタ関数を
仮想ウィジェット523を用いて実現することは便利で
はあるが、モニタリスト及びコールバックテスタ関数リ
ストをコアウィジェットタイプのリソースに追加し、こ
のコアウィジェットタイプに対するセットバリュー及び
ゲットバリュー関数に、モニタリスト及びコールバック
テスタリストをセットしかつ仮想リソースに関して記述
された様式で通常のリソースに対するセット及びゲット
に応答するコードを追加することによって、コールバッ
クテスタ関数及びモニタ関数を通常のウィジェット12
7において実現することも可能である。
【0056】Xイントリンシックス117の観点から
は、仮想ウィジェット523は通常のウィジェット12
5とは識別不能である。実行時クラス情報521はクラ
ス情報419と全く同様に読み出され、仮想ウィジェッ
ト523に関する仮想リソース914に対しては通常の
ウィジェットに関するリソース127に対して実行され
るのと同一の操作が実行される。例えば、仮想ウィジェ
ット523のクラスは、通常のウィジェットクラスの場
合と全く同様に、新たなサブクラスに対するスーパーク
ラスとして機能する。実際、ある仮想ウィジェット52
3のクラスは他の仮想ウィジェット523のサブクラス
でありうる。
【0057】既に述べられているように、Xウィンドウ
システムと協同するプロセスより成り立っているシステ
ムとのインターフェースを実現する際にある種の問題点
に遭遇する。システム1101は、サーバプロセス11
03と複数個のクライアントプロセス1107(0)−
1107(n)より成り立っている。サーバプロセス1
103はそのクライアントプロセス1107に対するプ
ロセス間通信(IPC)1105を供給し、そのクライ
アントプロセス1107からプロセス間通信を受信す
る。システム1101のようなシステムに対するアプリ
ケーション例は、あるプロセスによって提供されたカー
ソル位置が、各々ウィンドウをコントロールする他の一
群のプロセスによって用いられるようなプロセスであ
る。この種のシステムにおいては、ユーザが第一のプロ
セスに対して入力を供給しつつあるマウスを動かした場
合に、カーソルは他のプロセスによってコントロールさ
れているウィンドウの各々においてその位置を同時に変
更する。この実現においては、クライアントプロセスあ
るいはサーバプロセスそれ自体がカーソル位置情報を受
信し、サーバプロセスがその情報を他のプロセスに供給
する。
【0058】システム1101においては、各々のクラ
イアントプロセス1107及びサーバプロセス1103
は、サーバプロセス1103において実行されているX
ウィンドウシステムに属するウィジェット125として
表現される。これらのウィジェットはツリー構造になっ
ており、クライアントプロセス1107(0..n)に
対応するクライアントウィジェット1111(0..
n)がサーバプロセス1103に対応するサーバウィジ
ェット1109のチャイルドウィジェットになってい
る。以下により詳細に説明されるように、プロセス11
03及び1107の間のIPC通信は、ウィジェット1
109及び1111のメッセージを表現するリソースに
関するXtGetValues及びXtSetValu
es操作としてモデル化される。
【0059】例えば、あるクライアントプロセス110
7において実行されつつあるプログラムがIPCメッセ
ージをサーバプロセス1103宛に送出することにより
他のクライアントプロセス1107と通信しうる。サー
バプロセス1103にメッセージが到達することによ
り、サーバウィジェット1109の状態に変化が生じ、
その結果、サーバウィジェット1109内の入力メッセ
ージを表現しているリソースがメッセージの値及びコー
ルバックリスト上の一つあるいは複数個のコールバック
関数の値にセットされる。よって、コールバック関数の
内の一つが起動され、メッセージを読み出すXtGet
Values関数が起動される;その後、メッセージが
処理され、コントロールプロセス1107によって必要
とされる形式のメッセージが生成されて、メッセージを
クライアントウィジェットの出力メッセージリソースに
書き込む、クライアントウィジェットの各々に対するX
tSetValues関数が起動される。各々のクライ
アントウィジェット1111に対するセットバリュー関
数が、その後、IPC1105をメッセージから取り出
し、それをクライアントプロセス1107宛に送出す
る。ここで、クライアントプロセス1107それ自体
が、クライアントプロセスを有するサーバでありうるこ
とに留意されたい。この種のクライアントプロセスは、
2つのウィジェット、すなわちそのサーバプロセスのウ
ィジェットツリーにおけるクライアントウィジェット及
びそれ自体が有するウィジェットツリーにおけるサーバ
ウィジェット、によって表現される。
【0060】本発明のより望ましい実施例においては、
サーバ及びクライアントウィジェットは、アテナ(At
hena)ウィジェットセットにおいて提供されてい
る”フォーム”クラスに基づいて規定されている。この
クラスに関しては、クリス・ディー・ピーターソン(C
hris D. Peterson)による、”アテナ
ウィジェットセット−C言語インターフェース”(Xウ
ィンドウシステム、Xバージョン11、リリース4)を
参照。図12は、サーバウィジェットクラス1201に
対する、本発明のより望ましい実施例において規定され
た付加リソース及びコールバックを示した図である。新
たなリソースは5群に分類される: ・プロセス間通信システムに対してサーバを識別させる
ために必要な情報を有するサーバセットアップリソース
1202 ・サーバクラス1201を有するウィジェットの状態の
ある種の変化に応じて実行されるコールバックを有して
いるサーバコールバック1206 ・サーバを表現しているデータストラクチャに対するポ
インタであるサーバビジブルデータストラクチャ121
2 ・サーバウィジェットがクライアントウィジェットから
受信したメッセージを表現しているストラクチャである
入力メッセージ1214 ・サーバウィジェットによってクライアントウィジェッ
トに対して送出されるメッセージを表現している出力メ
ッセージ1222 サーバセットアップリソース1202には、サーバプロ
セス1103が実行されているプロセッサを識別するX
tNserverHostName1203、及び用い
られているIPCシステムを識別するXtNserve
rEnvironmentName1205が含まれて
いる。
【0061】サーバコールバック1206は、3つの条
件に対するコールバックを含んでいる。XtNserv
erNewClient1207は、新たなクライアン
トからのIPCメッセージが受信された場合に実行され
る;XtNserverDeadClient1209
は、現時点でのクライアントに対するIPCメッセージ
に対する応答がそのクライアントがデッドであることを
表わしている場合に実行される;XtNserverR
ecvMessage1211は、IPCメッセージ1
105がクライアントプロセス1107から受信される
度に実行される。本発明のより望ましい実施例における
サーバビジブルデータストラクチャ1212は、サーバ
プロセスを表現しているデータストラクチャに対するポ
インタXtNserverPointer1213であ
る。
【0062】入力メッセージ1214は、本発明のより
望ましい実施例において用いられるIPCメッセージ1
105の有する各フィールドに対するリソースを含んで
いる。このリソースから明らかなように、IPCメッセ
ージ1105は4つのフィールドを有している;タイプ
フィールド、クライアント識別子フィールド、メッセー
ジ長フィールド、及びメッセージそのものを含むフィー
ルドである。本発明のより望ましい実施例においては、
クライアント管理メッセージ及びデバッグメッセージに
対してはシステムによって規定されたタイプが存在する
が、その他に関しては、タイプはそのメッセージを送受
信するアプリケーションによって規定される。リソース
1215−1221の名前は、入力メッセージのどのフ
ィールドがそのリソースによって表現されているかを表
わしている。同様に、出力メッセージ1222はIPC
メッセージの各々のフィールドに対するリソースを有し
ており、これらのリソース1223−1229の名前は
各々のリソースによってどのフィールドが表現されるか
を表わしている。
【0063】クライアントプロセスを表現するために用
いられているプロセスウィジェットクラスのリソースが
図13に示されている。このクラス1301は、全体的
にはサーバクラス1201と同様である。セットアップ
リソース1303は、プロセスを生成するために用いら
れるオペレーティングシステムのコマンド(ここでは、
UNIXオペレーティングシステムの”sh”コマン
ド)とサーバウィジェット1109にこのプロセスを識
別させるために用いられる識別子とを規定している。コ
ールバック関数1305は2つである;XtNproc
essDeadClientは、ウィジェット1111
によって表現されるクライアント1107が死んだ場合
に実行され、XtNprocessRecvMessa
geはサーバプロセス1103がクライアントウィジェ
ット1111によって表現されるプロセス1109から
メッセージを受信した場合に実行される。XtNpro
cessPointer1307はXtNserver
Pointer1213と対応した、クライアントプロ
セス1111を表現するデータストラクチャへのポイン
タである。
【0064】リソース1309は、クライアントプロセ
ス1107によってサーバプロセス1103に対して送
出された(すなわち、サーバプロセス1103の観点か
らは”入力”となる)メッセージに対するものである。
これらのリソースは、IPCメッセージの4つのフィー
ルド全てと、メッセージを送出しているクライアントプ
ロセス1107を示しているXtNprocessIn
MessageClientIdとを表現している。
【0065】サーバクラス1201及びプロセスクラス
1301を有するウィジェットはそれらがサーバプロセ
ス1103及びクライアントプロセス1107を表現し
制御するために用いられうるが、その利便性は、これら
のクラスの実行時サブクラスが作成され、これらの実行
時サブクラスに属する仮想ウィジェット523がそのプ
ロセスを表現するために用いられた場合に非常に増大す
る。
【0066】例えば、前述のカーソル例を実現するため
のサーバウィジェット1109及びクライアントウィジ
ェット1111の組は、カーソルデータを規定するIP
Cメッセージタイプを定義して、カーソルデータを扱い
かつ伝播させるために必要とされる新たなリソースを含
む、サーバクラス1201及びプロセスクラス1301
の実行時サブクラスを定義することにより実現されう
る。
【0067】カーソルサーバのサブクラスにおいては、
新たなコールバック関数がXtNserverRecv
Messageコールバックに追加される。新たなコー
ルバック関数は、XtSetValues操作に応答し
て入力メッセージのタイプをチェックし、このタイプが
カーソルデータである場合には、カーソルの位置リソー
スをセットするためにXtSetValuesを用い
る。以下のリソースが追加される: ・その値がカーソルの位置を表すカーソル位置リソース ・クライアントウィジェット1111(フォームクラス
はコンポジットクラスのサブクラスである)に対するポ
インタを取得するためにXtGetValuesを用
い、その後クライアントウィジェット1111の各々に
おけるカーソル位置をセットするためにXtSetVa
luesを用いる、前記カーソル位置リソースに対する
サーバセットバリューモニタ
【0068】カーソルクライアントサブクラスにおいて
は、以下のリソースが追加される: ・カーソル位置リソース ・カーソル位置リソースに直前に書き込まれた値をクラ
イアントウィジェット1111に対応するクライアント
プロセス1105(n)宛に送出されるプロセス間通信
1105に変換する、前記カーソル位置リソースに対す
るクライアントセットバリューモニタ
【0069】図14は、複数個のクライアントプロセス
1107に対してカーソル位置を供給するために前記コ
ンポーネントが協同する様子を示した図である。IPC
1105が受信されると、矢印1407によって示され
ているようにXtNserverRecvMessag
eコールバック1411が実行される;XtNserv
erRecvMessageは、矢印1409によって
示されているように、入力メッセージを取得するために
XtGetValuesをInMessage1405
に関して起動する。このメッセージ中のタイプリソース
1215がカーソルデータであることを示した場合に
は、XtNserverRecvMessage141
1は、矢印1413によって示されているように、カー
ソル位置リソース1415をセットするためにXtSe
tValuesを起動する。カーソル位置リソース14
15に対して規定されたセットバリューモニタ1417
は、カーソルクライアントウィジェット1420の各々
に対するポインタを取得し、各々のカーソルクライアン
トウィジェット1420におけるカーソル位置リソース
1421に対してXtSetValuesを実行する。
クライアントカーソル位置ウィジェット1420の各々
に対して規定されたカーソル位置セットバリューモニタ
1423は、XtSetValuesに対して、カーソ
ルクライアントウィジェット1420に対応するクライ
アントプロセス1107宛のカーソル位置プロセス間メ
ッセージ1105を生成するためにカーソル位置リソー
ス1421内のカーソルデータを用いることによって応
答する。
【0070】以上の説明から明らかなように、サーバプ
ロセス1103とクライアントプロセス1107との間
のあらゆるプロセス間通信は、メッセージに対するタイ
プを規定し、そのメッセージデータによってセットされ
る実行時サブクラスのリソースを規定し、そのタイプに
対してリソースをセットすることによって応答するXt
NserverRecvMessageコールバックを
規定し、データを関連する仮想ウィジェットに伝えるリ
ソースに係るモニタを規定し、伝達されたウィジェット
における伝達されたデータを適切に処理する他のモニタ
を規定することによって、取り扱われうる。
【0071】以上の説明から、当業者はオブジェクトの
クラスが実行時にどのように規定されるかを理解しう
る。より詳細に述べれば、実行時に規定されるクラスを
有する、Xウィンドウシステムにおいて用いられる仮想
ウィジェットをどのようにして構成するのかが記載され
ている。さらに、特定のリソースがアクセスされた場合
にモニタ関数を起動し、またリソースの修正に対してテ
ストを実行することによって応答するコールバックテス
タ関数を起動するウィジェットを如何に構成するかが記
載されている。テストが成功した場合には、コールバッ
クテスタ関数に関連するコールバック関数が起動され
る。加えて、ウィジェットがプロセス及びサーバを表現
しかつ制御するために如何に用いられるか及びこの種の
システムにおいて仮想ウィジェットが如何に有効である
かが記載されている。
【0072】当業者には明らかではあるが、本明細書に
記載された発明の原理は、Xウィンドウシステム以外の
オブジェクト指向プログラミングシステムにおいても用
いられうるものであり、さらにXウィンドウシステムそ
れ自体においても相異なった様式で実現されうるもので
あり、仮想ウィジェットも他の様式で用いられうるもの
である。以上の説明は、本発明の一実施例に関するもの
で,この技術分野の当業者であれば、本発明の種々の変
形例が考え得るが、それらはいずれも本発明の技術的範
囲に包含される。
【00】
【発明の効果】以上述べたごとく、本発明によれば、そ
のクラスが実行時に規定されるオブジェクトを許容する
システムを実現する装置及びそこで用いられるオブジェ
クト及びその実現方法が提供される。
【図面の簡単な説明】
【図1】Xウィンドウシステムを示すブロック図。
【図2】Xウィンドウシステムにおけるウィジェットク
ラスの階層構造を示すブロック図。
【図3】Xウィンドウシステムにおけるウィンドウ及び
当該ウィンドウに対応するウィジェットツリーを示すブ
ロック図。
【図4】Xウィンドウシステムにおけるコンパイル時ク
ラスを有するウィジェットの生成を示すブロック図。
【図5】Xウィンドウシステムにおける実行時クラスを
有するウィジェットの生成を示すブロック図。
【図6】仮想生成ウィジェットクラス関数515を示す
流れ図。
【図7】実行時クラス情報521を示すブロック図。
【図8】本発明のより望ましい実施例におけるデータス
トラクチャを示すブロック図。
【図9】本発明のより望ましい実施例における仮想セッ
トバリュー関数及び仮想ゲットバリュー関数の動作の概
略を示すブロック図。
【図10】仮想セットバリュー関数を示す流れ図。
【図11】サーバ及びクライアントプロセス及びその対
応するウィジェットを示すブロック図。
【図12】サーバクラスにおけるリソースを示す図。
【図13】プロセスクラスにおけるリソースを示す図。
【図14】サーバ及びプロセスクラスの実行時サブクラ
スに属する仮想ウィジェットを用いるシステムの動作を
示すブロック図。
【符号の説明】
101 Xウィンドウシステム 103 グラフィカルユーザインターフェース 105 キーボード 107 ポインティングデバイス 109 ディスプレイ 111 ウィンドウ 113 Xサーバ 115 Xライブラリ 117 Xイントリンシックス 119 アプリケーションプログラム 121、123 矢印 125 ウィジェット 127 リソース 129 コールバック 201 ウィジェットの階層構造 203 コアウィジェット 205 コンポジットウィジェット 207 ラベルウィジェット 209 シェルウィジェット 210 ボックスウィジェット 211 拘束ウィジェット 213 プッシュボタンウィジェット 215 トグルウィジェット 301 ウィンドウ 303 ボックス 305 ラベル 307 プッシュボタン 309 プッシュボタンラベル 311 ウィジェットツリー 313、315、317、319 ウィジェット 321 チャイルドポインタ 323 ペアレントポインタ 401 403 引き数リスト 405 ウィジェット名 407 ウィジェットクラス 409 ペアレント名 411 引き数 413 引き数の個数 415 XtCreateManagedWidget 417 419 コンパイル時クラス情報 420 421 スーパークラス情報 422 424 クラス情報ポインタ 501 503 引き数リスト 505 クラス名 507 新リソース 509 新リソース数 511 スーパークラス 513 スーパークラスサイズ 515 VirtualCreateWidgetCl
ass関数 517、519 矢印 521 実行時クラス情報 601 起動 603 新リソースストラクチャを作成 605 スーパークラスを初期化 607 初期化されたスーパークラスレコードを実行時
クラス情報521へコピー 609 実行時クラス情報521内のクラスフィールド
を修正 611 実行時クラス情報521内のスーパークラスフ
ィールドを要求されるように修正 613 リソースストラクチャをコンパイルして初期化 615 クラスポインタを返す 701 スーパークラス 703 クラス名 706 ウィジェットサイズ 707 クラス部分初期化 709 初期化 711 初期化フック 713 リソース 715 リソース数 717 XRMクラス 718 リソースリスト 719 モニタ関数 720 リソースリストの一部 721 コールバックテスタ関数 723 コールバックルーチン破壊ポインタ 725 セットバリュー 727、733 矢印 729 VirtualSetValues関数 731 VirtualGetValues関数 801 データストラクチャ 803 コールバック名 805 クライアントデータ 807 コールバックテスタ 809 ネクストポインタ 811 リストの一部 813 コールバック名 815 クライアントデータ 817 コールバックテスタ 819 コールバックID 821 ネクストポインタ 823 データストラクチャ 825 リソース名 827 ゲットバリュークライアントデータ 829 ゲットバリューモニタ 831 セットバリュークライアントデータ 833 セットバリューモニタ 834 ネクストポインタ 835 839 リソースエントリ 841 リソース名識別子 843 リソースタイプ識別子 846 仮想リソースアレイエントリ 847 ゲットバリュークライアントデータ 849 ゲットバリューモニタ 851 セットバリュークライアントデータ 853 セットバリューモニタ 855 リソースバリュー 901 仮想リソース管理装置 903 XtSetValues関数 905 XtGetValues関数 909 仮想リソースアレイ 911 コールバックテスタリスト 914 仮想リソース 915 モニタセットバリュー関数 917 コールバックテスト関数 921 モニタゲットバリュー関数 1001 起動 1003 ID作成及び初期化 1005 リソースリスト獲得 1006 ループ 1007 引き数が残存しているか? 1009 コールバックテスタ関数実行 1011 次の引き数名を獲得 1012 戻り 1013 リソースリスト中の引き数か? 1015 モニタリスト上の引き数か? 1017 909中のモニタをインストール 1019 コールバックテスタ関数か? 1021 コールバックテスタ関数をインストール 1023 仮想リソース値をセット 1101 システム 1103 サーバプロセス 1105 プロセス間通信 1107 クライアントプロセス 1109 サーバウィジェット 1111 クライアントウィジェット 1201 サーバウィジェットクラス 1202 サーバセットアップリソース 1203 XtNserverHostName 1205 XtNserverEnvironment
Name 1206 サーバコールバック 1207 XtNserverNewClient 1209 XtNserverDeadClient 1211 XtNserverRecvMesasge 1212 サーバビジブルデータストラクチャ 1213 XtNserverPointer 1214 入力メッセージ 1215 XtNserverInMessageTy
pe 1217 XtNserverInMessageCl
ientId 1219 XtNserverInMessageLe
ngth 1221 XtNserverInMessageBu
ffer 1222 出力メッセージ 1223 XtNserverOutMessageT
ype 1225 XtNserverOutMessageC
lientId 1227 XtNserverOutMessageL
ength 1229 XtNserverOutMessageB
uffer 1301 プロセスウィジェットクラス 1303 プロセスセットアップリソースフィールド 1305 プロセスコールバックフィールド 1307 プロセスビジブルデータストラクチャフィー
ルド 1309 入力メッセージフィールド 1311 出力メッセージフィールド 1401 1402 カーソルサーバウィジェット 1405 メッセージ 1407、1409、1413 矢印 1411 XtNserverRecvMessage 1415 カーソル位置リソース 1417 カーソル位置セットバリューモニタ 1419 1420 カーソルクライアントウィジェット 1421 カーソル位置リソース 1431 カーソル位置セットバリューモニタ

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクト指向プログラミングシステ
    ムにおいて用いられ、第二のオブジェクトクラスのサブ
    クラスである第一のオブジェクトクラスを規定する装置
    において、 前記第二のオブジェクトクラスがコンパイル時に規定さ
    れ、 当該装置が、前記第一のオブジェクトクラスを当該第一
    のオブジェクトクラスがコンパイル時に規定されたもの
    であると前記オブジェクト指向プログラミングシステム
    によってみなされるように規定する手段(515)を有
    することを特徴とするオブジェクトクラス規定装置。
  2. 【請求項2】 Xウィンドウシステムにおいて用いられ
    るウィジェットにおいて、当該ウィジェットが、当該ウ
    ィジェットが生成された時点で規定されるリソースを有
    することを特徴とするウィジェット。
  3. 【請求項3】 Xウィンドウシステムにおいて用いられ
    るウィジェットを生成する方法において、 前記ウィジェットが第二のクラスのサブクラスである第
    一のクラスに属しており、 当該方法が、前記ウィジェットが生成された時点で、 前記第二のクラスの定義を受信する段階;リソースの組
    の定義を受信する段階;前記第二のクラスの前記定義及
    び前記リソースの組の定義から前記第一のクラスを規定
    する段階;及び、前記第一のクラスの前記定義に従って
    前記ウィジェットを生成する段階;を実行する段階を有
    していることを特徴とするウィジェット生成方法。
  4. 【請求項4】 Xウィンドウシステムにおいて用いられ
    るウィジェット(523)において、 当該ウィジェットが、そのリソース(718)中に、当
    該リソース中のある与えられたリソースに関連付けられ
    ていて当該与えられたリソースがアクセスされた時点で
    起動されるモニタ関数(719)を有することを特徴と
    するウィジェット。
  5. 【請求項5】 Xウィンドウシステムにおいて用いられ
    るウィジェット(523)において、 当該ウィジェットが、そのリソース(718)中に、与
    えられたコールバック関数と関連付けられていてリソー
    スが修正された場合にテストを実行しかつその結果に従
    って前記与えられたコールバック関数を起動するコール
    バックテスタ関数を有することを特徴とするウィジェッ
    ト。
  6. 【請求項6】 Xウィンドウシステムにおいて用いられ
    るウィジェット(523)において、 当該ウィジェットが、プロセス間通信を表現するリソー
    ス(1214、1222)及び当該リソースへの操作を
    当該プロセス間通信と関連付ける手段(1411)を有
    することを特徴とするウィジェット。
JP5167331A 1992-06-15 1993-06-15 オブジェクトクラス規定装置、ウィジェット及びその実現方法 Pending JPH0635709A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US898251 1992-06-15
US07/898,251 US5896532A (en) 1992-06-15 1992-06-15 Objects with run-time classes and methods of making them

Publications (1)

Publication Number Publication Date
JPH0635709A true JPH0635709A (ja) 1994-02-10

Family

ID=25409161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5167331A Pending JPH0635709A (ja) 1992-06-15 1993-06-15 オブジェクトクラス規定装置、ウィジェット及びその実現方法

Country Status (4)

Country Link
US (1) US5896532A (ja)
EP (1) EP0575073A3 (ja)
JP (1) JPH0635709A (ja)
CA (1) CA2096060A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6070006A (en) * 1993-04-14 2000-05-30 Kabushiki Kaisha Toshiba Object oriented software development tool for creation of new class(es)
US6202098B1 (en) 1995-01-04 2001-03-13 International Business Machines Corporation Method and system for object oriented notification
US6163813A (en) * 1995-06-07 2000-12-19 International Business Machines Corporation Pattern for instantiating objects of unknown type in object-oriented applications
US5805159A (en) * 1996-08-22 1998-09-08 International Business Machines Corporation Mobile client computer interdependent display data fields
US5805158A (en) * 1996-08-22 1998-09-08 International Business Machines Corporation Copying predicted input between computer systems
US6230318B1 (en) * 1998-02-24 2001-05-08 Microsoft Corporation Application programs constructed entirely from autonomous component objects
US6557023B1 (en) * 1999-05-28 2003-04-29 Sun Microsystems, Inc. Method and apparatus for avoiding array class creation in virtual machines
US6305126B1 (en) * 1999-12-10 2001-10-23 Marvin Lumber And Cedar Company Window jamb component assembly
GB0004090D0 (en) * 2000-02-22 2000-04-12 Innovation Venture Ltd Application programming system and method of operation thereof
US7079861B2 (en) * 2002-01-24 2006-07-18 Dell Products L.P. Method and system for monitoring status in a network having wireless and wired connections
US7079830B2 (en) * 2002-01-24 2006-07-18 Dell Products L.P. Information handling system with wireless LAN and wired LAN activity monitoring apparatus and methodology
GB0302602D0 (en) * 2003-02-04 2003-03-12 Young Arthur P Equipment and methods for real time application
WO2005010781A1 (en) * 2003-07-24 2005-02-03 Koninklijke Philips Electronics N.V. An object creation strategy for simulator modules
US8096081B2 (en) * 2005-01-12 2012-01-17 Pella Corporation Jamb liner for a window assembly
US20060248087A1 (en) * 2005-04-29 2006-11-02 International Business Machines Corporation System and method for on-demand analysis of unstructured text data returned from a database
US8924869B2 (en) * 2005-08-12 2014-12-30 Barry Fellman Service for generation of customizable display widgets
US8869066B2 (en) 2006-07-06 2014-10-21 Addthis, Llc Generic content collection systems
US8266274B2 (en) * 2007-03-06 2012-09-11 Clearspring Technologies, Inc. Method and apparatus for data processing
US9009728B2 (en) 2007-03-06 2015-04-14 Addthis, Inc. Method and apparatus for widget and widget-container distribution control based on content rules
US8352966B2 (en) * 2007-09-11 2013-01-08 Yahoo! Inc. System and method of inter-widget communication
US8209378B2 (en) * 2007-10-04 2012-06-26 Clearspring Technologies, Inc. Methods and apparatus for widget sharing between content aggregation points
US20090240611A1 (en) * 2008-03-21 2009-09-24 Augustine Nancy L Systems and methods for displaying a data modification timeline
US20100100626A1 (en) * 2008-09-15 2010-04-22 Allen Stewart O Methods and apparatus related to inter-widget interactions managed by a client-side master
US8266201B2 (en) * 2010-03-29 2012-09-11 The Aerospace Corporation System and method for distributing processing of a single-process application having first and second objects in a network having local and remote processes
US10621062B2 (en) * 2017-02-21 2020-04-14 International Business Machines Corporation Widget provisioning of user experience analytics and user interface / application management

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
JPH03500588A (ja) * 1988-04-15 1991-02-07 ディジタル イクイプメント コーポレーション デジタルデータ処理システムにおける階層情報管理システム
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
US5339392A (en) * 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
GB2242293A (en) * 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components
GB9105278D0 (en) * 1990-04-27 1991-04-24 Sun Microsystems Inc Method and apparatus for implementing object-oriented programming using unmodified c for a window-based computer system
US5280610A (en) * 1990-08-14 1994-01-18 Digital Equipment Corporation Methods and apparatus for implementing data bases to provide object-oriented invocation of applications
US5421016A (en) * 1991-12-12 1995-05-30 International Business Machines Corporation System and method for dynamically invoking object methods from an application designed for static method invocation

Also Published As

Publication number Publication date
EP0575073A3 (en) 1994-11-02
EP0575073A2 (en) 1993-12-22
US5896532A (en) 1999-04-20
CA2096060A1 (en) 1993-12-16

Similar Documents

Publication Publication Date Title
JPH0635709A (ja) オブジェクトクラス規定装置、ウィジェット及びその実現方法
EP1474753B1 (en) Component model for real time system control
US6002867A (en) Development system with methods providing visual form inheritance
US6968536B2 (en) Frame component container
US8170901B2 (en) Extensible framework for designing workflows
EP1643435B1 (en) An extensible framework for designing workflows
US5446902A (en) Method for implementing computer applications in an object oriented manner using a traditional non-object oriented programming language
McCormack et al. An overview of the X toolkit
JP5820339B2 (ja) 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張
US6556218B1 (en) Method and apparatus for generating dips for use with Java beans
Gwinn Object-oriented programs in realtime
Pavlidis Fundamentals of X programming: graphical user interfaces and beyond
Murillo et al. Distributed Seismic Unix: a tool for seismic data processing
Sametinger et al. A documentation scheme for object-oriented software systems
Olivares The intelligent machine architecture version 2.5: A revised development environment and software architecture
Allen Self Handbook Documentation
Ali iPhone SDK 3 Programming
Ali iPhone SDK 3 programming: advanced mobile development for Apple iPhone and iPod touch
WO1994004988A1 (en) Extensible framework for constructing graphical applications
Hudson et al. SubArctic UI Toolkit user’s manual st. Paul release (beta version 0.8 e)
Hackenyos et al. Oregon State University
Clark Introducing the. NET Framework and Visual Studio
Kalgi Integration of Chicory components and Chicory optimization
Dixon et al. The Design and Implementation of a User Interface for the Co
Orsini Run time coordinator, system analysis and implementation review on Ultrix environment.