Wide Studio Programmer's Guide

Wide Studio Home
Up to


リモートインスタンスにアクセスするには



リモートインスタンスにアクセスするには

オブジェクト管理インスタンス(ロードモジュールにつき、一つ存在)に 対して要求すると、アクセスしたいリモートインスタンスを取得することができます。
オブジェクト管理クラス インスタンス取得関数
WSCbaseList WSCbaseList* WSGIappObjectList()

アクセスしたいオブジェクトを取得は、次の様に行います。
#include "WSCbaseList.h" //WSGIappObjectList() にアクセスする...
#include "WSCRbase.h"    //仮想リモートインスタンスクラスを使用
...
void event_procedure(WSCbase* object){

  //オブジェクト管理による WSCRbase ポインタの取得
  char* obj_name   = "newvlab_001";     //newvlab_001 という名称のリモートインスタンス
  WSCRbase* rinstance = WSGIappObjectList()->getRemoteInstance(obj_name);

  //仮想リモートインスタンスによるリモートインスタンスに対するアクセス
  rinstance->setProperty(WSNlabelString,"HELLO WORLD"); 


rinstance がリモートインスタンスにアクセスするための 仮想リモートインスタンスです。 リモートインスタンスのオブジェクト名称を引数にします。 通常のインスタンス(オブジェクト)にアクセスするのと同じように、 仮想リモートインスタンスを通して、リモートインスタンスにアクセスします。

リモートインスタンスをキャストするには

オブジェクト管理を通して得られた仮想リモートインスタンスは 通常のオブジェクトと同じようにオリジナルのクラスにキャストして 使用することが出来ます。 オリジナルクラスに存在するメソッドを利用する場合にキャストします。 次の例は、WSClist::addItem() を呼び出すため、 WSCRbase 型の仮想リモートインスタンスから、 WSCRlist 型の仮想リモートインスタンスにキャストしています。
#include "WSCbaseList.h" //WSGIappObjectList() にアクセスする...
#include "WSCRlist.h"    //仮想リモートインスタンスクラスを使用
...
void event_procedure(WSCbase* object){

  //オブジェクト管理による WSCRbase ポインタの取得
  char* obj_name   = "newlist_001";     //newlist_001 という名称のリモートインスタンス
  WSCRbase* rinstance = WSGIappObjectList()->getRemoteInstance(obj_name);

  //仮想リモートインスタンスをオリジナルのクラス WSClist に対応する
  //仮想リモートクラス WSCRlist にキャスト。
  WSCRlist* rlist = (WSCRlist*)rinstance->cast("WSCRlist");
  if (rlist == NULL){
    //WSCRlist クラスではない。
    return;
  }

  //WSClist クラスのメソッドを WSCRlist 仮想リモートインスタンスクラスを
  //通して呼び出す。
  rlist->addItem("item..");


Document Release 3.00

For Use with Wide Studio Release 3.00, Summper 2002


Wide Stuido Home | Up to

Copyright(C) T. Hirabayashi, 1999-2002 Last modified: June 10, 2002