Input_port

abstract class for input ports

[ libohymos | Source | Keywords | Summary | Ancestors | All Members | Descendants ]

Quick Index

DESCRIPTION

Class Summary

class Input_port : public Send_port
{

public:
char* Data_pack_type(void) ;
void Input_data(void) ;
void Creq(void) ;
Boolean Init(char* p_name, int p_num) ;
Input_port( char* p_name, int p_num );
Input_port(void);
~Input_port(void);
protected:
}; // Input_port

Back to the top of Input_port


DESCRIPTION

Abstract class for creating input ports for a total system.

This is the base class from which the user creates his own input port models.

Do not confuse Input_port with Receive_port.

基本型入力端子は,全体系の入力端子を作成するための抽象クラスです。ユー ザは,このクラスを継承して,全体系の入力端子のモデルを作成してくださ い。基本型入力端子のクラス宣言では,ユーザが実現するべき入力端子の基 本仕様を定めています。また,その実装では,事前に用意できる機能を定義 しています。

全体系モデルは,この基本型入力端子のクラスを継承してユーザが作成した 入力端子を通じてデータを入手するものとして設計されています。

全体系の内部に対して入力端子が入力データを受けとる役割をするという意 味では,入力端子は,基本型要素モデルの受信端子に似ていますが,全く別 のものと考えた方がよいです。

全体系モデルは, ファイル入出力, ネットワークによる入出力, キーボード 入力, CRT 出力など, 種々雑多なデータの入出力に対応しなければなりませ ん。全体系モデルは, こうした雑多なデータを系の内部に取り込む時は, 全 て Data_pack 型のデータに変換しなければなりません。また,シミュレー ション結果をシミュレーション実行者に提供する時は, Data_pack 型で蓄積 されているデータをシミュレーション実行者の望むデータ形式に変換しなけ ればなりません。このようなデータの変換に関する具体的処理は, ユーザが 作成する入力端子, 出力端子で行うことにし, 全体系モデルの方では, 入力 端子・出力端子を一定の手続きで操作することにしました。すなわち,入力 端子,出力端子は,内部の定型的な処理と外部の処理との仲立ちをすること になります。

Back to the top of Input_port


char* Data_pack_type(void) ;

Returns the string which shows data-type treated by the current input-port. Because this is pure virtual, the function must be defined in derived classes from this class.

Example
char* Data_pack_type(void) { return "INT"; }

We call the string returned by this funcion "data_pack_type". 入力データパック型を返す

純粋仮想関数です. Input_port の派生クラスで, 入力データパック型を 表す文字列へのポインタを返すように必ず定義して下さい.

例えば, 入力データパック型が "INT" である派生クラスでは,

     char* Data_pack_type(void) { return "INT"; }
     
のように定義します.

接続時には, この端子と送信先端子とで Data_pack_type が一致するこ とを確認します.

     RETURN:
       ・char*     入力データパック型を表す文字列へのポインタ.
     

  virtual char* Data_pack_type(void) = NULL;

Back to the top of Input_port


void Input_data(void) ;

入力データの送信

各入力端子で, 入力データからデータパックを作成し, データパックを送 信する関数を定義して下さい.

  virtual void Input_data(void) = NULL;

Back to the top of Input_port


void Creq(void) ;

ファイルは、計算機能がないので、計算要請があってもどうしょうもない。

  void Creq(void)                                               
;

Function is currently defined inline.


Back to the top of Input_port


Boolean Init(char* p_name, int p_num) ;

Execute Send_port::Init and returns a Boolean value which is returned by Send_port::Init

初期化用関数

Send_port::Init を実行します.

        RETURN:
            ・YES   初期化が成功した場合.
            ・NO    二重に初期化された場合. (Object::Init)
        EXIT:
            ・5     object_name の記憶領域が確保できない場合.
                    (Object::Init)
     

  Boolean Init(char* p_name, int p_num)
                     ;

Function is currently defined inline.


Back to the top of Input_port


Input_port( char* p_name, int p_num );

Constructor. Constructs by the use of default constructor of base class Send_port and initializes the data members by the use of Input_port::Init.

Input_port(char*,int) は, 基底クラス Send_port のデフォルトコンスト ラクタを用い, Input_port::Init を用いて, メンバを以下の通り初期化し ます.

            ・class_name            : "Input_port"
            ・object_name           : p_name (ヒープにコピー)
            ・object_number         : p_num
            ・owner                 : NULL
            ・buffer_list           : ヒープに確保する. (接続作業用)
            ・receiver_array        : NULL
            ・number_of_receivers   : -1
            ・data_pack_array       : NULL
            ・number_of_data_packs  : -1
     

  Input_port(
    char* p_name,       // object_name
    int p_num           // object_number
    );

Back to the top of Input_port


Input_port(void);

Constructor

デフォルトコンストラクタは, Input_port::Init を実行しません. その結 果, 以下の設定となります.

            ・object_name           : NULL
            ・object_number         : -1
     

その他のメンバに対する処理は, 引数つきコンストラクタと同じです. この場合, Input_port::Init を用いてメンバを初期化して下さい.

  Input_port(void);

Back to the top of Input_port


~Input_port(void);

Destructor

  ~Input_port(void);

Back to the top of Input_port


All Members

public:
char* Class_name(void) ;
char* Object_name(void) ;
int Object_number(void) ;
void* Owner(void) ;
Boolean Compare(char* c_name, char* o_name, int o_num);
Boolean Compare(char* o_name, int o_num);
Boolean Compare(Object* obj);
Boolean Set_owner(void* o);
void Cprint(FILE* fp_out, char* head);
void Cprint(FILE* fp_out) ;
void Cprint(char* head ) ;
void Oprint(FILE* fp_out, char* head);
void Oprint(FILE* fp_out) ;
void Oprint(char* head ) ;
void Absname( char* absname );
Boolean Init(char* o_name, int o_num);
char* Data_pack_type(void) ;
Boolean Set_sender(void* s);
Boolean Register_receiver(void* r);
Boolean Switch(void);
Boolean Are_you_ready(void) ;
void Creq(void) ;
void Set_data_pack_array(void) ;
Boolean Can_you_get_data(time_t t_from, time_t t_to) ;
Boolean Can_you_get_data(time_t t) ;
void Get_data_pack_array(void**& dp_array, int& num_of_dp) ;
time_t Oldest_data_time(void) ;
time_t Newest_data_time(void) ;
int Number_of_data_packs(void) ;
Boolean Get_data_pack( void*& former, time_t data_time, void*& later, char flag) ;
Boolean Get_data_pack(void*& former, time_t data_time) ;
Boolean Get_data_pack(time_t data_time, void*& later) ;
time_t Necessary_time_from(void) ;
time_t Necessary_time_to(void) ;
void Reduce_data_pack_stock(void) ;
void Print_connection(FILE* fp_out, char* head);
void Print_connection(FILE*) ;
void Print_connection(char* head ) ;
Port* NewPort(); // pure virtual
Boolean Init(char* p_name, int p_num) ;
void Set_comment_string(char* cmt);
char* Get_comment_string(void);
void Stock(void* d_pack);
void Send_by_string(char*& dstr) ;
Boolean Get_data_pack(void*& former, time_t data_time, void*& later, char flag );
void Forget_data_pack_stock(time_t t_from);
Boolean Set_protect_past_data_flag(Boolean pflag) ;
void Clear_data_pack(void);
void Save_send_port_stock(FILE* fp);
void Input_data(void) ;
protected:
char* class_name;
char* object_name;
int object_number;
void* owner;
List* buffer_list;
void** receiver_array;
int number_of_receivers;
char* comment_string;
void** data_pack_array;
int number_of_data_packs;
Boolean protect_past_data_flag;

Back to the top of Input_port


Ancestors

Inheritance chain for Input_port:

Back to the top of Input_port


Descendants

Back to the top of Input_port


Generated from source by the Cocoon utilities on Sun Sep 3 22:52:02 2000 .

Report problems to jkotula@stratasys.com