initialize

void initialize(const Setting& setting);

Xtalの実行環境を作成初期化し、Currentに設定します。内部的には、VMやテーブル、GCなどのモジュール生成や領域確保を行っているので、ほぼ全てのXtal関数に先立って実行されている必要があります。

マルチスレッド下での動作の詳細は別ページに説明を譲ることとします。xtal_setting.hのXTAL_NO_THREADのdefineの有無によって挙動を変更することが可能です。

作成した環境はuninitializeによって明示的に破棄されます。

引数のSettingクラスのインスタンスはuninitializeを呼び出すまで存在している必要があります。

Example

C++

#include <xtal.h>
 
#include <xtal_lib/xtal_cstdiostream.h>
#include <xtal_lib/xtal_chcode.h>
#include <xtal_lib/xtal_errormessage.h>
#ifdef WIN32
#include <xtal_lib/xtal_winthread.h>
#include <xtal_lib/xtal_winfilesystem.h>
#else // WIN32
#include <xtal_lib/xtal_pthread.h>
#include <xtal_lib/xtal_posixfilesystem.h>
#endif // WIN32
 
int main(){
    xtal::CStdioStdStreamLib std_stream_lib;
#ifdef WIN32
    xtal::WinThreadLib thread_lib;
    xtal::WinFilesystemLib filesystem_lib;
#else // WIN32
    xtal::PThreadLib thread_lib;
    xtal::PosixFilesystemLib filesystem_lib;
#endif // WIN32
    xtal::UTF8ChCodeLib ch_code_lib;
 
    xtal::Setting setting;
    setting.std_stream_lib = &std_stream_lib;
    setting.thread_lib = &thread_lib;
    setting.filesystem_lib = &filesystem_lib;
    setting.ch_code_lib = &ch_code_lib;
 
    xtal::initialize(setting);
 
    // Xtalのオブジェクトへのアクセスが可能な状態になる
    xtal::stdout_stream()->println("Hello xtal");
 
    xtal::uninitialize();
 
    return 0;
}

Output

Hello xtal
reference/initialize.txt · 最終更新: 2012/03/31 20:28 by sukai
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0