ScfSubSystem

Sub system class confugured from a "structure configuration file"

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

Quick Index

DESCRIPTION

Class Summary

class ScfSubSystem : public Sub_system
{

public:
ScfSubSystem* NewElement() ;
Boolean Init(char* objectname, int objnum, FILE* fp);
ScfSubSystem() ;
~ScfSubSystem() ;
protected:
Port** mRps;
int mNumRps;
Port** mSps;
int mNumSps;
Element** mElmnt;
int mNumElmnt;
Element** mIte;
int mNumIte;
char* mScffile;
void Register_receive_ports(void);
void Register_send_ports(void);
void Register_components(void);
void Register_iterators(void);
void Connect_ports(void);
void Connect_components(void);
}; // ScfSubSystem

Back to the top of ScfSubSystem


DESCRIPTION

subsytem class configured from a structure configuration file

ScfSubSystem は、端子や構成要素の構成をファイル Structure Configuration File から読みとって作りあげる部分系のクラスです。

Back to the top of ScfSubSystem


Port** mRps;

Pointer to the area where pointers to relay ports for receiveing data are stored

  Port** mRps;

Back to the top of ScfSubSystem


int mNumRps;

Number of relay ports for receiving data

  int mNumRps;

Back to the top of ScfSubSystem


Port** mSps;

Pointer to the area where pointers to relay ports for sending data are stored

  Port** mSps;

Back to the top of ScfSubSystem


int mNumSps;

Number of relay ports for sending data

  int mNumSps;

Back to the top of ScfSubSystem


Element** mElmnt;

Usual (Non-iterate) Components

  Element** mElmnt;

Back to the top of ScfSubSystem


int mNumElmnt;

Number of usual components

  int mNumElmnt;

Back to the top of ScfSubSystem


Element** mIte;

Iterator Components

  Element** mIte;

Back to the top of ScfSubSystem


int mNumIte;

Number of iterator components

  int mNumIte;

Back to the top of ScfSubSystem


char* mScffile;

Structure Configuration File

  char* mScffile;

Back to the top of ScfSubSystem


void Register_receive_ports(void);

受信側中継端子を登録します。派生クラスで定義します。Construct から 呼ばれます。登録されていない受信側中継端子は接続できません.

  void Register_receive_ports(void);

Back to the top of ScfSubSystem


void Register_send_ports(void);

送信側中継端子を登録します。派生クラスで定義します。Construct から 呼ばれます。登録されていない送信側中継端子は接続できません.

  void Register_send_ports(void);

Back to the top of ScfSubSystem


void Register_components(void);

全構成要素のうち, 反復計算を行なわない構成オブジェクトのアドレスを component_array に登録します.

登録されていない構成オブジェクトには, 計算実行命令が送れません.

例えば, 派生クラスで構成オブジェクト abc をデータメンバとして定義 した場合, 次のように abc を登録します.

       void Register_components(void) { Register((void*) &abc); }
     
この時, 必ず &abc を void* 型にキャストして下さい.

これにより &abc は, 一時的に object_list に収録された後, 最終的に void* 型配列 component_array 中に記憶されます. (Sub_system::Construct 参照)

  virtual void Register_components(void);

Back to the top of ScfSubSystem


void Register_iterators(void);

Register_iterators は, 全構成要素のうち, 反復計算を行なう要素のアド レスを iterator_array に登録します. 反復計算を行なう部分系モデルを 新に作成するプログラマが、この関数を定義しなければなりません。

ScfSubSytem 用の Register_iterators は、scfsub.cc で実装しています。

  void Register_iterators(void);

Back to the top of ScfSubSystem


void Connect_ports(void);

部分系モデル内部の端子の接続を Sub_system::Connect を用いて定義し ます.

ScfSubSytem 用の Connect_ports を、scfsub.cc で実装しています。

  void Connect_ports(void);

Back to the top of ScfSubSystem


void Connect_components(void);

部分系モデル内部の直接通信接続を Element::Register(void*,int) を 用いて定義します.

ScfSubSytem 用の Connect_components を、scfsub.cc で実装しています。

  void Connect_components(void);

Back to the top of ScfSubSystem


ScfSubSystem* NewElement() ;

Returns a pointer to a new ScfSubSystem

  ScfSubSystem* NewElement()                               
;

Function is currently defined inline.


Back to the top of ScfSubSystem


Boolean Init(char* objectname, int objnum, FILE* fp);

Initialize the element with the information obtained from the file pointer

in objectname
-- object name
in objnum
-- object number
in fp
-- file pointer

  Boolean Init(char* objectname, int objnum, FILE* fp);

Back to the top of ScfSubSystem


ScfSubSystem() ;

Default Constructor

  ScfSubSystem()
    ;

Function is currently defined inline.


Back to the top of ScfSubSystem


~ScfSubSystem() ;

Destructor

  ~ScfSubSystem()                                                                                            
;

Function is currently defined inline.


Back to the top of ScfSubSystem


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);
enum OperationFlag ;
Boolean Register(void* obj, int num);
Boolean Construct(void);
void* Get_receive_port(char* c_name, char* o_name, int o_num );
void* Get_send_port(char* c_name, char* o_name, int o_num );
void* Get_receive_port(char* o_name, int o_num );
void* Get_send_port(char* o_name, int o_num );
void* Get_object(char* c_name, char* o_name, int o_num );
void* Get_component(char* c_name, char* o_name, int o_num ) ;
void* Get_component(char* o_name, int o_num ) ;
Boolean Switch(void);
Boolean Are_you_ready(void);
Boolean Set_data_string(char* d_str, int d_strlen );
void Clear_data_string(void);
Boolean Get_data_string(char* d_str);
void Set_parameter(FILE* fp) ;
void Parameter(FILE* fp, char*& buffer, int buflen, Boolean& stock_p);
void Set_initial_state(FILE* fp) ;
void Initial_state(FILE* fp, char*& buffer, int buflen, Boolean& stock_p);
Boolean Share_info(void) ;
void Save_send_port_stock(FILE* fp);
void Restore_send_port_stock(void);
time_t Current_time(void) ;
time_t Time_step(void) ;
time_t Next_time(void) ;
time_t Terminal_time(void) ;
time_t MediumTermTargetTime(void) ;
time_t Fixed_time(void) ;
time_t Target_time(void) ;
void Rewind_current_time(void);
void Renew_fixed_time(void);
void Initialize_target_time(void) ;
void Renew_target_time(time_t itrs);
time_t Calculate_iteration_step(void);
time_t Necessary_time_from(Receive_port* rp);
time_t Necessary_time_to(Receive_port* rp);
Boolean Initial_time(time_t i_time);
Boolean Initial_work(void);
Boolean Can_you_calculate(void) ;
Boolean Record_status(void);
Boolean Work(void) ;
Boolean Do_you_reach_target_time(void);
void Flush_data(void);
void Creq(void) ;
void Print_receive_ports(FILE* fp , char* head ) ;
void Print_send_ports(FILE* fp , char* head ) ;
void Print_connection(FILE* fp , char* head );
void Save_terminal_state(FILE* fp) ;
void Terminal_state(FILE* fp);
Element* NewElement() ;
Boolean Init(char*, int, FILE*) ;
Boolean Init(char* o_name, int o_num, int num_of_objs , char* p_str ) ;
Boolean Init(char* o_name, int o_num, char* p_str) ;
Boolean Register(void* p, int obj) ;
void* Get_component(char* c_name, char* o_name, int o_num);
void* Get_component(char* o_name, int o_num);
void Set_parameter(FILE*) ;
void Print_components(FILE* fp , char* head );
time_t Necessary_time_from(void* rp);
time_t Necessary_time_to(void* rp);
time_t Calculate_time_step(void) ;
Boolean Calculate(void) ;
Boolean Do_you_reach_target_time(int num);
Boolean Do_you_converge(int num);
Boolean Init(char* o_name, int o_num, int num_of_objs , int num_of_itr , char* p_line );
Boolean Init(char* o_name, int o_num, int num_of_objs , char* p_line );
ScfSubSystem* NewElement() ;
Boolean Init(char* objectname, int objnum, FILE* fp);
protected:
char* class_name;
char* object_name;
int object_number;
void* owner;
Boolean initialworkdone_p;
Boolean shareinfodone_p;
List* object_list;
void** receive_port_array;
int number_of_receive_ports;
void** send_port_array;
int number_of_send_ports;
void** object_array;
int number_of_objects;
char* data_string;
time_t current_time;
time_t time_step;
time_t fixed_time;
time_t target_time;
Boolean mCreqp;
void* Get_from_list(char* c_name, char* o_name, int o_num);
void* Get_from_list(char* o_name, int o_num);
Boolean Register(void* obj);
void Register_receive_ports(void) ;
void Register_send_ports(void) ;
Boolean Make_object_array(void**& obj_array, int& num_of_objs);
Boolean Set_object_array(int num_of_objs);
void* Get_from_array(char* c_name, char* o_name, int o_num, void** obj_array, int num_of_objs);
void* Get_from_array(char* o_name, int o_num, void** obj_array, int num_of_objs);
Boolean Look_data_string(char*& buffer);
char* Get_line(FILE* fp, char* buffer, int buflen, Boolean& stock_p, int& iflag);
void Get_line(FILE*fp, char* buffer, int buflen, char* fname, int line_number);
void Cur2fix2tar(void) ;
Boolean Renew_current_time(void) ;
Boolean Initial_output(void) ;
Boolean Can_you_calculate0(void);
Boolean Can_you_calculate1(void);
void Set_data_pack_array(void);
void Reduce_data_pack_stock(void);
Boolean Print_status(void) ;
Boolean Work0(void);
Boolean Work1(void);
Boolean Work2(void);
Boolean Work3(void);
void Send_stocked_data(void);
void Print_objects(FILE* fp, char* head, char* title, void** obj_array, int number_of_objs);
void** component_array;
int number_of_components;
void*** iterator_array;
int number_of_iterator_sets;
int* number_of_iterators;
void Register_components(void) ;
void Initialize_iterator_array(void);
void Register_iterators(void) ;
Boolean Register(int num, ...);
Boolean Register(void* p) ;
Boolean Connect(void* my_p, void* r, char* rp_c_name, char* rp_name, int rp_num);
Boolean Connect(void* s, char* sp_c_name, char* sp_name, int sp_num, void* r, char* rp_c_name, char* rp_name, int rp_num);
Boolean Connect(void* s, char* sp_c_name, char* sp_name, int sp_num, void* my_p);
Boolean Connect(void* my_p, void* r, char* rp_name, int rp_num);
Boolean Connect(void* s, char* sp_name, int sp_num, void* r, char* rp_name, int rp_num);
Boolean Connect(void* s, char* sp_name, int sp_num, void* my_p);
Boolean Connect(void* my_sp, void* my_rp);
void Connect_ports(void) ;
void Connect_components(void) ;
void Rewind_current_time(int num);
void Flush_data(int num);
void Renew_fixed_time(int num);
void Renew_target_time(int num, time_t itrs);
time_t Calculate_iteration_step(int num);
Port** mRps;
int mNumRps;
Port** mSps;
int mNumSps;
Element** mElmnt;
int mNumElmnt;
Element** mIte;
int mNumIte;
char* mScffile;

Back to the top of ScfSubSystem


Ancestors

Inheritance chain for ScfSubSystem:

Back to the top of ScfSubSystem


Descendants

Class is not inherited by any others.

Back to the top of ScfSubSystem


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

Report problems to jkotula@stratasys.com