Next: Components, Previous: Types and Expressions, Up: Dezyne Language Reference [Contents][Index]
Interfaces describe the interaction between two components: the events (or messages) that can and cannot be communicated, i.e., the interaction protocol.
interface ::= "interface" identifier "{" types-and-events behavior "}" type-and-events ::= (type | event)* behavior ::= "behavior" "{" behavior-statement* "}"
Each event has a direction specified by the in
or out
keywords. An event labeled with in
(in
-event) is received
by the implementation providing the interface. Conversely, an event
labeled with out
(out
-event) is emitted by the
implementation providing the interface. Note that from the point of
view of an implementation requiring an interface the interpretation of
in
and out
is inverted.
The interface protocol is specified in the behavior
section.
$include <string>;$ interface ihello { enum result {FALSE,TRUE,ERROR}; extern string $std::string$; in result hello (string greeting); out void world (); behavior { … } }