/* * File name: banking.idl */ [ uuid (54B40BC1-6E26-11CC-9E76-08002B245A45), version (1.0) ] /* * Manages bank accounts */ interface banking { const unsigned32 bank_s_ok = 0; const unsigned32 bank_s_not_found = 1001; const unsigned32 bank_s_insuf_funds = 1002; const unsigned32 bank_s_file_open_fail = 1003; const unsigned32 bank_s_bug = 1004; /* * Name to appear on the account. */ typedef [string, ptr] char *account_name; /* * Account transaction types. */ typedef enum { DEPOSIT, WITHDRAWAL, BALANCE } trans_type; uuid_t create_account ( [in] handle_t binding_handle, [in] account_name name, [in] unsigned32 opening_balance, [out] unsigned32 *bank_status ); void delete_account ( [in] handle_t binding_handle, [out] unsigned32 *bank_status ); void transaction ( [in] handle_t binding_handle, [in] trans_type trans_code, [in] unsigned32 amount, [out] unsigned32 *balance, [out] unsigned32 *bank_status ); }