[前へ] [目次へ] [次へ]

System (ネイティブネームクラス)


このクラスはシステムメソッドを扱うクラスです。
このクラスに定義されているメソッドは FGES VM 自体の機能と直結しており、
スレッドの生成やコンパイラの起動など特殊な操作を実行できます。

このクラスはネームクラスです。
ネームクラスは全てがクラスメソッドとクラス共有変数で構成され、 using でグローバル名前空間に展開できます。
また、原則としてインスタンスを作成する必要はありません。

●継承

   このクラスは継承をしていません。

●インターフェイスとインターフェイスメソッド

   このクラスはインターフェイスの実装宣言をしていません。

●クラスメソッド

名前概要
public操作メソッド CompileGlobalグローバルコンパイラを起動します
public操作メソッド CompileClassクラスコンパイラを起動します
public操作メソッド CompileMethodメソッドコンパイラを起動します
public操作メソッド CreateThreadスレッドを作成します
public取得メソッド GetArg呼び出し元の引数参照を取得します
public取得メソッド GetGlobalVarグローバル変数の参照を取得します
public取得メソッド GetThisThreadメソッドを呼び出したスレッドのハンドルを取得します
public比較・判定メソッド IsRequestingHaltメソッドを呼び出したスレッドに中断要求が出ているか取得します
public取得メソッド GetGlobalVarListグローバル変数名リストを取得します
public操作メソッド SplitFGESTokenFGESトークン分割を行います
public操作メソッド ReplaceFGESTokenFGESトークン単位の置換を行います
public操作メソッド DeleteFGESCommentsFGESコメントを削除します
public比較・判定メソッド ScanFGESStatementLengthFGESステートメントの長さを取得します
public取得メソッド GetFileInformationファイル情報を取得します

●クラスメンバメソッド

   このクラスはクラスメンバメソッドを持っていません。

●クラス共有変数

   このクラスはクラス共有変数を持っていません。

●インスタンス変数

   このクラスはインスタンス変数を持っていません。


●C++レベル追加情報

クラスID: FGES_CLASSID_SYSTEM
クラス名: FGESNC_System および FGES_VM



System::CompileGlobal

public static Bool CompileGlobal( INativeString sect_name,
                            INativeString source,editable INativeString? error_mes)


   FGESグローバルコンパイラを起動し、
   source をグローバル定義空間のFGESソースコードとしてコンパイルします。

   コンパイルエラーが発生した場合、 error_mes にエラーメッセージが出力され、処理が戻ります。
   この時、 FGES VM は引き続き実行を続けることが出来ます。
   ただし、コンパイル中に例外が発生した場合、コンパイルスレッドが中断され、
   このメソッドを呼び出したスレッドで例外が再投入されます。

戻り値:コンパイルに成功すると真を返します。

INativeString sect_name :このコンパイルのファイル名として使用する名前。
INativeString source :コンパイルするソースコード。
editable INativeString? error_mes :[出力]エラーメッセージを出力するオブジェクト。
      空参照を指定した場合、無視します。

先頭へ


System::CompileClass

public static FGESClass?@ CompileClass( INativeString sect_name, INativeString source,
                  editable INativeMemoryHost memhost,editable INativeString? error_mes)


   FGESクラスコンパイラを起動し、
   source をクラス定義のFGESソースコードとしてコンパイルします。
   source は class から始め、クラス定義全体を記述します。
   このメソッドでコンパイルしたクラスはグローバル名前空間には登録されません。
   グローバル名前空間に登録したい場合は CompileGlobal を使用してください。

   作成したクラスオブジェクトはメモリ管理オブジェクト memhost に接続されます。
   クラスのインスタンスが存在する状態でクラスオブジェクトが消滅すると例外の原因になります。
   このメソッドで作成したクラスオブジェクトの寿命に注意してください。

   コンパイルエラーが発生した場合、 error_mes にエラーメッセージが出力され、処理が戻ります。
   この時、 FGES VM は引き続き実行を続けることが出来ます。
   ただし、コンパイル中に例外が発生した場合、コンパイルスレッドが中断され、
   このメソッドを呼び出したスレッドで例外が再投入されます。

戻り値:コンパイルに成功すると作成したクラスオブジェクトを返します。
   コンパイルに失敗した場合は空参照を返します。

INativeString sect_name :このコンパイルのファイル名として使用する名前。
INativeString source :コンパイルするソースコード。
editable INativeMemoryHost memhost :作成したクラスオブジェクトを接続するメモリ管理オブジェクト。
editable INativeString? error_mes :[出力]エラーメッセージを出力するオブジェクト。
      空参照を指定した場合、無視します。

先頭へ


System::CompileMethod

public static FGESMethod?@ CompileMethod( INativeString sect_name, INativeString source,
                         INativeClass? belongclass,editable INativeMemoryHost memhost,
                         editable INativeString? error_mes)


   FGESメソッドコンパイラを起動し、
   source をメソッド定義のFGESソースコードとしてコンパイルします。
   source は method から始め、メソッド定義全体を記述します。
   このメソッドでコンパイルしたメソッドはクラスメンバ名前空間には登録されません。

   メソッドの所属クラスは belongclass で指定します。 source のメソッド宣言には含められません。

   作成したメソッドオブジェクトはメモリ管理オブジェクト memhost に接続されます。
   メソッドを呼び出しているスレッドがある状態でメソッドオブジェクトが消滅すると例外の原因になります。
   このメソッドで作成したメソッドオブジェクトの寿命に注意してください。

   コンパイルエラーが発生した場合、 error_mes にエラーメッセージが出力され、処理が戻ります。
   この時、 FGES VM は引き続き実行を続けることが出来ます。
   ただし、コンパイル中に例外が発生した場合、コンパイルスレッドが中断され、
   このメソッドを呼び出したスレッドで例外が再投入されます。

戻り値:コンパイルに成功すると作成したメソッドオブジェクトを返します。
   コンパイルに失敗した場合は空参照を返します。

INativeString sect_name :このコンパイルのファイル名として使用する名前。
INativeString source :コンパイルするソースコード。
INativeClass? belongclass :コンパイルするメソッドの所属クラス。
      空参照を指定した場合、グローバルメソッドとしてコンパイルします。
editable INativeMemoryHost memhost :作成したメソッドオブジェクトを接続するメモリ管理オブジェクト。
editable INativeString? error_mes :[出力]エラーメッセージを出力するオブジェクト。
      空参照を指定した場合、無視します。

先頭へ


System::CreateThread

public static HThread CreateThread( IInteger thread_priority)

   新しいFGESスレッドを作成し、そのスレッドハンドルを返します。
   thread_priority にはスレッドの優先度を0〜7で指定します。
   スレッドの優先度は高いほど優先的に実行されます。
   ただし、優先度0はマニュアルスレッドとなり、明示的に実行されない限り実行されません。

   このメソッドは最初に thread_priority から INativeInteger による取得を試みます。
   これに失敗した場合、 thread_priority.Get を呼び出します。

戻り値:作成したスレッドハンドルを返します。

IInteger thread_priority :作成するスレッドの優先度

先頭へ


System::GetArg

public static Any?@ GetArg( INativeInteger index)

   このメソッドを呼び出したメソッドの引数情報にアクセスし、
   index 番(0起算)の引数の、呼び出し元から渡された参照を返します。
   この時、編集可能/読み取り専用属性も含めて呼び出し元の情報が取得されます。
   指定した引数番号が無効である場合例外が発生します。
   引数の数は arglist.GetCount() で取得し、有効な番号だけを使用してください。
   
   このメソッドは可変長引数から編集可能属性の参照を取得するために使用します。
   それ以外の用途では引数列、および arglist を使用した方が便利です。

戻り値:対象の引数の参照を返します。

INativeInteger index :取得する引数番号

先頭へ


System::GetGlobalVar

public static Any?@ GetGlobalVar( IString globalvar_name)

   指定したグローバル変数の参照を返します。
   このメソッドは指定したグローバル変数が存在しない場合でも例外を発生させず、空参照を返します。
   存在する保証のないグローバル変数を取得する際に使用します。
   
   このメソッドはソースコードの可読性を損なう恐れがあります。
   特別な理由がない限りこのメソッドを使用せずに済む構造にすべきです。
   
   このメソッドは最初に globalvar_name から INativeString による取得を試みます。
   これに失敗した場合、 globalvar_name.Get を呼び出します。

戻り値:対象のグローバル変数の参照を返します。

IString globalvar_name :取得するグローバル変数名

先頭へ


System::GetThisThread

public static HThread GetThisThread()

   このメソッドを呼び出したスレッドのスレッドハンドルを取得します。

戻り値:このメソッドを呼び出したスレッドのスレッドハンドルを返します。
   
先頭へ


System::IsRequestingHalt

public static Bool IsRequestingHalt()

   このメソッドを呼び出したスレッドに中断要求が出ているかを取得します。

戻り値:このメソッドを呼び出したスレッドに中断要求が出ている場合、真を返します。
   
先頭へ


System::GetGlobalVarList

public static void GetGlobalVarList(editable PStringArray out_list)

   グローバル変数の名前リストを取得します。
   
editable PStringArray out_list :[出力]グローバル変数リストを出力するオブジェクト。

先頭へ


System::SplitFGESToken

public static void SplitFGESToken( IString fges_src,editable PStringArray out_list)

   指定した文字列をFGESトークン単位に分割します。
   
   このメソッドは最初に fges_src から INativeString による取得を試みます。
   これに失敗した場合、 fges_src.Get を呼び出します。

IString fges_src :分割するFGESソースコード。
editable PStringArray out_list :[出力]分割したトークンリストを出力するオブジェクト。

先頭へ


System::ReplaceFGESToken

public static Integer ReplaceFGESToken(
             editable INativeString target, IString repold, IString repnew)


   指定した文字列をFGESトークン単位で置換処理します。
   置換対象はFGESトークンと完全一致する必要があります。
   トークン内に置換対象文字列が含まれるだけでは置換されません。
   
   このメソッドは最初に各引数から INativeString による取得を試みます。
   これに失敗した場合、 IString@@Get を呼び出します。

戻り値:置換した数を返します。

editable INativeString target :[入出力]置換するFGESソースコード。
IString repold :置換対象の文字列。
IString repnew :置換する文字列。

先頭へ


System::DeleteFGESComments

public static void DeleteFGESComments(editable String fges_src)

   指定した文字列をFGESのスクリプトとして解釈し、コメントにあたる部分を削除します。

editable String fges_src :[入出力]コメントを削除する文字列。

先頭へ


System::ScanFGESStatementLength

public static Integer ScanFGESStatementLength( IString fges_src, IInteger? start=NULL)

   指定した文字列の start の位置からFGESのスクリプトとして解釈し、
   ステートメントの終点までのバイト数を返します。
   
   このメソッドは最初に各引数からネイティブインターフェイスによる取得を試みます。
   これに失敗した場合、各インターフェイスの Get を呼び出します。

戻り値:解析開始位置からステートメントの終点までのバイト数。

IString fges_src :解析するFGESソースコード。
IInteger? start=NULL :解析を開始する位置(バイト単位)。
      空参照を指定した場合、0(先頭)として扱います。

先頭へ


System::GetFileInformation

public static Bool GetFileInformation( IString filename,
            editable INativeInteger? size,editable INativeInteger? attributes=NULL,
            editable INativeInteger? updatetime=NULL,editable INativeInteger? createtime=NULL,
            editable INativeInteger? accesstime=NULL)


   指定したファイルのサイズ、属性、更新時刻、作成時刻、アクセス時刻を取得します。
   このメソッドはファイルシステムから取得された値をそのまま返します。
   返される値の詳細はWindowsなら GetFileAttributesEx/WIN32_FILE_ATTRIBUTE_DATA を参照してください。
   
   FILETIME値を他の時刻基準に変換したい場合は Time::SetFileTime を使用します。
   
   FGES VM が Protected Mode で動作している場合、ファイル名にパスは使用できません。

   このメソッドは最初に filename から INativeString による取得を試みます。
   これに失敗した場合、 filename.Get を呼び出します。

戻り値:取得に成功すると真を返します。

IString filename :情報を取得するファイル名。
editable INativeInteger? size=NULL :[出力]ファイルサイズ(バイト単位)を出力するオブジェクト。
      空参照を指定した場合は無視します。
editable INativeInteger? attributes=NULL :[出力]ファイル属性を出力するオブジェクト。
      空参照を指定した場合は無視します。
editable INativeInteger? updatetime=NULL :[出力]更新時刻(FILETIME値)を出力するオブジェクト。
      空参照を指定した場合は無視します。
editable INativeInteger? createtime=NULL :[出力]作成時刻(FILETIME値)を出力するオブジェクト。
      空参照を指定した場合は無視します。
editable INativeInteger? accesstime=NULL :[出力]アクセス時刻(FILETIME値)を出力するオブジェクト。
      空参照を指定した場合は無視します。

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2022/05/29