Previous Table of Contents Next


19.9.5 Mapping for Inheritance


   A hierarchy of Automation interfaces is mapped to an identical hierarchy of CORBA View Interfaces.

   For example, given the interface “account? and its derived interface “checkingAccount? defined next,

   // ODL[odl, dual, uuid(...)]interface DIMyModule_account: IDispatch {

   [propput] HRESULT balance)[in] float balance);

   [propget] HRESULT balance([retval,out] float * ret);[propget] HRESULT owner([retval,out] BSTR * ret);HRESULT makeLodgement([in] float amount,

   [out] float * balance);HRESULT makeWithdrawal([in] float amount,

   [out] float * balance);};interface DIMyModule_checkingAccount: DIMyModule_account {

   [propget] HRESULT overdraftLimit ([retval,out] short * ret);HRESULT orderChequeBook([retval,out] short * ret);};

   the corresponding CORBA View Interfaces are:

   // OMG IDL

   interface MyModule_account { attribute float balance; readonly attribute string owner;

long makeLodgement (in float amount, out float
balance);
long makeWithdrawal (in float amount, out float
theBalance);
};

   interface MyModule_checkingAccount: MyModule_account { readonly attributeshort overdraftLimit; short orderChequeBook ();

   };