|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectohymosj.OhObject
ohymosj.OhPort
端子を作成するための基底となる抽象クラスです。
クラス OhPort は、全ての端子モデルの基底クラスです。
端子が持つべき基本的なメソッドを定義しています。
メソッドの一部は、このクラスでは定義を与えず、抽象メソッドになっています。
OhPort;
OhPort is the base class from which all port classes are derived.
We call an object of class OhPort or classes inherited from class Port a "port".
In ohymosj, a port is used for sending and/or receiving datapacks.
Basic methods which a port should have are declared.
Parts of those basic methods are declared as pure virtual.
フィールドの概要 |
クラス ohymosj.OhObject から継承したフィールド |
_className, _objectName, _objectNumber, _owner, NEWLINE |
コンストラクタの概要 | |
OhPort()
|
|
OhPort(java.lang.String aPortName,
int aPortNumber)
|
メソッドの概要 | |
abstract boolean |
areYouReady()
|
void |
calReq()
|
boolean |
canYouGetData(OhTimePoint aT)
|
abstract boolean |
canYouGetData(OhTimePoint aTFrom,
OhTimePoint aTTo)
|
boolean |
canYouSwitch()
|
void |
cPrint(java.io.PrintWriter aPw,
java.lang.String aHead)
|
static OhPort |
create(java.lang.String aClassName)
|
abstract java.lang.String |
dataType()
|
boolean |
getDataPack(java.lang.Object[] aFormer,
OhTimePoint _dataTime)
|
abstract boolean |
getDataPack(java.lang.Object[] aFormer,
OhTimePoint _dataTime,
java.lang.Object[] aLater,
char aMode)
|
boolean |
getDataPack(OhTimePoint _dataTime,
java.lang.Object[] aLater)
|
abstract void |
getDataPackArray(OhArrayList[] aDpArray,
int[] aNumOfDp)
|
abstract OhTimePoint |
getNecessaryTimeFrom()
|
abstract OhTimePoint |
getNecessaryTimeTo()
|
abstract OhTimePoint |
getNewestDataTime()
|
abstract int |
getNumberOfDataPacks()
|
abstract OhTimePoint |
getOldestDataTime()
|
boolean |
init(java.lang.String aPortName,
int aPortNum)
|
void |
printConnection(java.io.PrintWriter aPw,
java.lang.String aHead)
|
abstract void |
reduceDataPackStock()
|
boolean |
registerReceiver(java.lang.Object aReceiver)
|
abstract void |
setDataPackArray()
|
boolean |
setSender(java.lang.Object aSender)
|
クラス ohymosj.OhObject から継承したメソッド |
getAbsName, getClassName, getObjectName, getObjectNumber, getOwner, getTopOwner, objCompare, objCompare, objCompare, oPrint, setOwner |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public OhPort()
・_className : "OhPort" ・_objectName : null ・_objectNumber : -1 ・_owner : null
public OhPort(java.lang.String aPortName, int aPortNumber) throws OhError
・_className : "OhPort" ・_objectName : aObjName ・_objectNumber : aObjNum ・_owner : null
aPortName
- a String
valueaPortNumber
- an int
value
OhError
- if an error occursメソッドの詳細 |
public abstract java.lang.String dataType()
抽象メソッドです。
このメソッドの実装は、 OhSendDouble, OhInputFileDouble, OhRelayDouble, OhReceiveDouble, OhOutputFileDouble で与えることにします。 int, long, float についても同様です。 例えば、受信データが int なら "int" を返すように定義します。
Abstract method.
This method returns string DataType which shows the type of datapacks treated by the port.
Because this method is declared as abstract, in a derived class of class OhPort the definition of this method must be given by a programmer.
String
valuepublic abstract boolean areYouReady()
抽象メソッドです。
接続作業後、計算作業前の確認に用います。 接続作業を終了し、計算作業に進むことができる場合 true を返し、 接続作業が終了していない場合 false を返します。
RETURN: ・true 接続作業が終了している。 ・false 接続作業が終了していない。
Confirm whether all connection work has been done successfully or not.
In class OhPort, which is an abstract class, method areYouReady() is an abstract method.
boolean
valuepublic abstract void setDataPackArray()
抽象メソッドです。
実際には、 _dataPackArray の要素数を _numberOfDataPacks に設定するだけです。
Abstract method. This method makes data pack array.
public abstract boolean canYouGetData(OhTimePoint aTFrom, OhTimePoint aTTo)
抽象メソッドです。
canYouGetData(OhTimePoint aTFrom, OhTimePoint aTTo) は, aTFrom 以前から、 aTTo 以降までのデータパックをこの端子から取得可能ならば、 true を返し、不可能なら false を返すように各派生クラスで定義します.
ARGUMENT: ・aTFrom aTFrom 以前からのデータパックが取得可能であることを確認する. ・aTTo aTTo 以降までのデータパックが取得可能であることを確認する. RETURN: ・YES aTFrom 以前から aTTo 以降までのデータパックを取得可能な場合. t におけるデータが取得可能な場合. ・NO aTFrom 以前から aTTo 以降までのデータパックを取得不可能な場合.
Inquire whether the invoking port can get data from "aTFrom" to "aTTo".
aTFrom
- an OhTimePoint
valueaTTo
- an OhTimePoint
value
boolean
valuepublic abstract void getDataPackArray(OhArrayList[] aDpArray, int[] aNumOfDp)
派生クラスにおいて、データパック配列を取得するメソッドを定義します。 aDpArray にはデータパック配列を格納し、aNumOfDp には、aDpArray の要素数を格納します。
Get a datapack array.
aDpArray
- an OhArrayList[]
valueaNumOfDp
- an int[]
valuepublic abstract OhTimePoint getOldestDataTime()
This method returns the oldest data time.
OhTimePoint
valuepublic abstract OhTimePoint getNewestDataTime()
This method returns the updated data time.
OhTimePoint
valuepublic abstract int getNumberOfDataPacks()
This method returns the number of data packs.
int
valuepublic abstract boolean getDataPack(java.lang.Object[] aFormer, OhTimePoint _dataTime, java.lang.Object[] aLater, char aMode)
派生クラスにおいて、時刻を指定してデータパックを取得するメソッドを定義します。
aFormer には、データ記録時刻が _dataTime 以前で _dataTime に最も近い収録データパックを取得、格納します。
aLater には、データ記録時刻が _dataTime 以降で _dataTime に最も近い収録データパックを取得、格納します。
aFlag は取得のモードを選択するためのオプションで、下記の通りです。
・"b" aFormer, aLater の両方を必ず取得する。 取得できない場合は、両方とも NULL に設定する。 ・"f" aLater を取得できなくても、aFormer のみ取得する。 aLater を取得できない場合、NULL に設定する。 ・"l" aFormer を取得できなくても、aLater のみ取得する。 aFormer を取得できない場合、NULL に設定する。 ・その他 aFormer, aLater のすくなくとも一方を取得する。 取得できないものは NULL に設定する。aFlag のデフォルト値は、 "b" です。
また、 引数に aLater を渡さない場合は、 aFlag を f として aFormer のみ取得し、 引数に aFormer を渡さない場合は、 aFlag を l として aLater のみ取得します。
データ記録時刻が丁度 _dataTime であるデータパックが収録されている場合は、 aFormer, aLater ともそれを格納します。
条件を満たすデータパックを取得できない場合、aFormer, aLater は null に設定されます。
データを取得できた場合は、true を返します。
aFormer
- an Object[]
value_dataTime
- an OhTimePoint
valueaLater
- an Object[]
valueaMode
- a char
value
boolean
valuepublic abstract OhTimePoint getNecessaryTimeFrom()
getNecessaryTimeFrom よりデータ記録時刻が早いデータパックは、 OhPort.reduceDataPackStock() により消去されます。
OhTimePoint
valuepublic abstract OhTimePoint getNecessaryTimeTo()
OhTimePoint
valuepublic abstract void reduceDataPackStock()
この端子で取得可能なデータパックのうち、 getNecessaryTimeFrom() よりデータ記録時刻が早いデータパックを消去するよう、 派生クラスで定義します。
public boolean init(java.lang.String aPortName, int aPortNum) throws OhError
引数つきコンストラクタで使用されます。
Initialization.
OhObject
内の init
aPortName
- a String
valueaPortNum
- an int
value
boolean
value
OhError
- if an error occurspublic boolean setSender(java.lang.Object aSender) throws OhError
このクラスの派生クラスでは、 Object 型にキャストされた送信元端子のアドレス aSender を引数として受けとり、 aSender を送信元として設定できたら true を、設定できなかったら false を返すよう定義してください。
このメソッドは、エラーメッセージを出力後 false を返します。 派生クラスで、setSender() を再定義しない場合は、これが、default の定義になります。
Set the sender. There is only one sender for each receiver. This method returns whether it succeeded or not.
Although a default definition is given in the Port class, a programmer must give his own definitions in derived classes.
aSender
- an Object
value
boolean
value
OhError
- if an error occurspublic boolean registerReceiver(java.lang.Object aReceiver) throws OhError
このクラスの派生クラスでは、 Object 型にキャストされた送信先端子のアドレス aReceiver を引数として受けとり、 aReceiver を送信先として登録できたら true を、登録できなかったら false を返すよう定義してください。
このメソッドは、エラーメッセージを出力後 false を返します。 派生クラスで、setSender() を再定義しない場合は、これが、default の定義になります。
Register a receiver of this port. There may be more than one receiver for a sender port. This method returns whether it suceeded or not.
Although a default definition is given here, a programmer must give his own definitions in derived classes.
aReceiver
- an Object
value
boolean
value
OhError
- if an error occurspublic boolean canYouSwitch() throws OhError
このクラスの派生クラスで、端子の接続作業の終了処理とつぎの仕事の準備を行なうよう定義します。
処理が成功したら true を、失敗したら false を返します。 このメソッドは、エラーメッセージを出力後 false を返します。
OhReceivePort では、接続作業後行なうべき処理は特にありません。 常に true を返すように定義します。
OhSendPort では、複数の受信端子にデータを送信することもあるので、 送信相手の port をリスト _bufferList に収録していきます。 最終的には、リストに登録された送信相手の port を配列 _receiversArray に移し替えます。 この作業を OhSenderPort.canYouSwitch() で実行します (OhSendPort は、 OhSenderPort の派生クラス)。
その後、接続が終了して、計算を始めます。 その時、_dataPackArray の準備をします。 すなわち、_numberOfDataPacks の値を -1 から 0 に設定します。
Finish registration of receivers and count the number of receivers. In a derived class, do work which finishes connection operations.
boolean
value
OhError
- if an error occurspublic void calReq() throws OhCannotGetDataError, OhError
ここでは何もしないように定義されています。
以下のクラス OhPort の派生クラスでつぎのように定義されています。
Request of calculation. Transfer the request to a element which does actual caluculation work or ports which send datapack to the current port.
OhCannotGetDataError
- if an error occurs
OhError
- if an error occurspublic boolean canYouGetData(OhTimePoint aT)
このメソッドは、aT(引数) におけるデータが取得可能か確認するメソッドです。 このクラス内の同名の抽象メソッドを呼び出しています。
Inquire whether the invoking port can get data at OhTimePoint "aT".
aT
- an OhTimePoint
value
boolean
valuepublic boolean getDataPack(java.lang.Object[] aFormer, OhTimePoint _dataTime)
派生クラスにおいて、時刻を指定してデータパックを取得するメソッドを定義します。 このクラス内の同名の抽象メソッドを呼び出しています。
aFormer には、データ記録時刻が _dataTime 以前で _dataTime に最も近い収録データパックを取得、格納します。
aFlag は取得のモードを選択するためのオプションで、下記の通りです。 データ記録時刻が丁度 _dataTime であるデータパックが収録されている場合は、 aFormer にそれを格納します。
条件を満たすデータパックを取得できない場合、aFormer は null に設定されます。
データを取得できた場合は、true を返します。
aFormer
- an Object[]
value_dataTime
- an OhTimePoint
value
boolean
valuepublic boolean getDataPack(OhTimePoint _dataTime, java.lang.Object[] aLater)
派生クラスにおいて、時刻を指定してデータパックを取得するメソッドを定義します。 このクラス内の同名の抽象メソッドを呼び出しています。
aLater には、データ記録時刻が _dataTime 以降で _dataTime に最も近い収録データパックを取得、格納します。
データ記録時刻が丁度 _dataTime であるデータパックが収録されている場合は、 aLater にそれを格納します。
条件を満たすデータパックを取得できない場合、aLater は null に設定されます。
データを取得できた場合は、true を返します。
_dataTime
- an OhTimePoint
valueaLater
- an Object[]
value
boolean
valuepublic void cPrint(java.io.PrintWriter aPw, java.lang.String aHead)
OhObject
内の cPrint
aPw
- a PrintWriter
valueaHead
- a String
valuepublic void printConnection(java.io.PrintWriter aPw, java.lang.String aHead)
派生クラスで接続情報を表示するよう定義します。 このクラスでは、エラーメッセージを出力します。
aPw
- a PrintWriter
valueaHead
- a String
valuepublic static OhPort create(java.lang.String aClassName)
引数に、端子モデルを表すクラス名を与えると、 その端子モデルのオブジェクトを生成します。
aClassName
- a String
value
OhPort
value
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |