Difference between revisions of "Agent Calls"
(→Wrapper generation) |
(→Wrapper generation) |
||
Line 30: | Line 30: | ||
== Wrapper generation == | == Wrapper generation == | ||
− | Lets look first at frozen workbench code. | + | Lets look first at frozen workbench code. Class C is used throughout the following examples. |
− | + | ||
<code>[eiffel,N] | <code>[eiffel,N] | ||
class | class | ||
Line 42: | Line 41: | ||
end | end | ||
end | end | ||
+ | </code> | ||
− | + | For everly '''agent creation''' a c-function is generated. This wrapper function does two things: | |
+ | *Reorder the closed and open arguments | ||
+ | *Call the '''callee''' of the |
Revision as of 14:45, 21 August 2006
Work in progress!
Terminology
In the following text the place where an agent is created (with the agent keyword or the tilde operator) is called the agent creation. The feature to which the agent points is the callee and the place (or places) where the agent is called is denoted agent call.
class TERMINOLOGY feature f1 local p: PROCEDURE [ANY, TUPLE] do p := agent target -- agent creation end f2 (p: PROCEDURE [ANY, TUPLE]) do p.call ([]) -- agent call end target -- callee do end end
Wrapper generation
Lets look first at frozen workbench code. Class C is used throughout the following examples.
class C feature f (p1, p2: INTEGER; p3: STRING): STRING do ... end end
For everly agent creation a c-function is generated. This wrapper function does two things:
- Reorder the closed and open arguments
- Call the callee of the