[前へ]
[目次へ]
[次へ]
System (ネイティブネームクラス)
このクラスはシステムメソッドを扱うクラスです。
このクラスに定義されているメソッドは
FGES VM
自体の機能と直結しており、
スレッドの生成やコンパイラの起動など特殊な操作を実行できます。
このクラスはネームクラスです。
ネームクラスは全てがクラスメソッドとクラス共有変数で構成され、
using
でグローバル名前空間に展開できます。
また、原則としてインスタンスを作成する必要はありません。
●継承
このクラスは継承をしていません。
●インターフェイスとインターフェイスメソッド
このクラスはインターフェイスの実装宣言をしていません。
●クラスメソッド
名前
概要
CompileGlobal
グローバルコンパイラを起動します
CompileClass
クラスコンパイラを起動します
CompileMethod
メソッドコンパイラを起動します
CreateThread
スレッドを作成します
GetArg
呼び出し元の引数参照を取得します
GetGlobalVar
グローバル変数の参照を取得します
GetThisThread
メソッドを呼び出したスレッドのハンドルを取得します
IsRequestingHalt
メソッドを呼び出したスレッドに中断要求が出ているか取得します
GetGlobalVarList
グローバル変数名リストを取得します
SplitFGESToken
FGESトークン分割を行います
ReplaceFGESToken
FGESトークン単位の置換を行います
DeleteFGESComments
FGESコメントを削除します
ScanFGESStatementLength
FGESステートメントの長さを取得します
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