CORBA-MICO
view release on metacpan or search on metacpan
Account.idl view on Meta::CPAN
const long BGLN = 250;
module Bank {
const long DAILY_MAX = 1000;
typedef sequence<octet> octetString;
typedef char Face[6][10];
typedef fixed<16,2> Amount;
interface AcctCounter {
long next();
void destroy();
};
interface Account {
exception InsufficientFunds { Amount overdraft; };
typedef sequence<short> numbers;
enum Color {
taupe, burgundy, chartreuse
};
struct Preferences {
Color favorite_color;
numbers lottery_numbers;
string nickname;
};
enum PrefType {
pt_color, pt_lotnum, pt_nickname
};
union Preference switch (PrefType) {
case pt_color: Color favorite_color;
case pt_lotnum: numbers lottery_numbers;
case pt_nickname: string nickname;
};
attribute Preferences prefs;
attribute Face appearance;
void set_pref ( in Preference p );
Preference get_pref ( in PrefType t );
any get_pref_any ( in PrefType t );
void deposit( in Amount a );
void withdraw( in Amount a ) raises (InsufficientFunds);
long long add ( in long long a, in long long b );
Amount balance();
AcctCounter counter();
void server_exit ();
void set_new_get_old( inout octetString smth );
// DynamicAny test
enum da_enum {
da_enum_1, da_enum_2, da_enum_3
};
struct da_struct {
long lval;
string sval;
Amount fval;
da_enum enval;
};
any get_da_struct();
};
};
( run in 1.928 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )