An IDL interface describes the functions that an object supports in a distributed application. Interface definitions provide all of the information that clients need to access the object across a network.
Consider the example of an interface that describes objects which implement bank accounts in a distributed application.
module Finance {
interface Account {
// The account owner and balance.
readonly attribute string owner;
readonly attribute float balance;
// Operations available on the account.
void makeDeposit(in float amount,
out float newBalance);
void makeWithdrawal(in float amount,
out float newBalance);
};
};
The definition of interface Account includes both attributes
and operations.
These are the main elements of any IDL interface definition.