13.07.2015 Views

Caché での C++ の使用法

Caché での C++ の使用法

Caché での C++ の使用法

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

プロキシ・クラスの 生 成スタティック・メソッドは 以 下 のように 定 義 されます (ここで、My_Class はプロキシ・クラスの 名 前 です)。• create_new() — %New メソッドを 呼 び 出 して、サーバ 上 にオブジェクトを 生 成 します。static d_ref create_new(Database* db,const_str_t init_val = 0, // const_str_t is a typedef of const wchar_t*Db_err* err = 0)• open() — 永 続 クラスに 対 してのみ 生 成 されます。サーバ 上 で %Open を 呼 び 出 し、その 完 全 なオブジェクト ID を 使用 してオブジェクトを 開 きます。static d_ref open(Database* db,const d_binary& ident,int concurrency = -1,int timeout = -1,Db_err* err = 0)• openid() — サーバ 上 で %Openid を 呼 び 出 し、そのエクステント 固 有 の ID を 使 用 してオブジェクトを 開 きます。static d_ref openid(Database* db,const const_str_t ident,int concurrency = -1,int timeout = -1,Db_err* err = 0)// const_str_t is a typedef of const wchar_t*2.3 プロキシ・メソッドの 実 装<strong>Caché</strong> インスタンス・メソッドに 対 しては <strong>C++</strong> インスタンス・メソッドが 生 成 され、<strong>Caché</strong> クラス・メソッドに 対 しては <strong>C++</strong> スタティック・メソッドが 生 成 されます。<strong>C++</strong> メソッドがクライアントで 呼 び 出 されると、<strong>Caché</strong> サーバ 上 にある 実 際 のメソッドの 実装 が 呼 び 出 されます。メソッド・シグニチャに 既 定 値 の 引 数 が 含 まれる 場 合 、<strong>Caché</strong> は 生 成 された <strong>C++</strong> メソッド 内 でその既 定 値 を 使 用 します。 例 えば、1 つのメソッドを 持 つ 単 純 な <strong>Caché</strong> クラスを 定 義 するとします。Class MyApp.Simple Extends %RegisteredObject {Method LookupName(id As %String) As %String {// lookup a name using embedded SQLSet name = ""&sql(SELECT Name INTO :name FROM Person WHERE ID = :id)Quit name}}得 られる <strong>C++</strong> クラス・ヘッダは 以 下 のようになります。class MyApp_Simple : public Persistent_t {friend d_ref;public:// codevirtual d_string LookupName(d_string id);}メソッドが <strong>C++</strong> から 呼 び 出 されると、<strong>C++</strong> クライアントはまずサーバ・オブジェクト・キャッシュを 同 期 化 し、<strong>Caché</strong> サーバのメソッドを 呼 び 出 し、 結 果 の 値 が 存 在 する 場 合 は 最 後 にそれを 返 します。メソッドの 引 数 が 参 照 渡 しで 指 定 されている場 合 は、その 値 も 更 新 されます。14 <strong>Caché</strong> <strong>での</strong> <strong>C++</strong> の 使 用 法

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!