Znav | ||||
---|---|---|---|---|
|
Interfaces can be marshaled by value. For an interface marshaled by value (as opposed to a class instance derived from that interface), only the type ID of the most-derived interface is encoded. Here are the Slice definitions once more:
Wiki Markup |
---|
{zcode:slice} interface Base { /* ... */ }; interface Derived extends Base { /* ... */ }; interface Example { void doSomething(Base b); }; {zcode} |
If the client passes a class instance to doSomething
that does not have a Slice definition (but derives from Derived
), the on-the-wire representation of the interface is as follows:
Marshaled Value | Size in Bytes | Type | Byte offset |
---|---|---|---|
| 4 |
| 0 |
| 1 | | 4 |
| 10 |
| 5 |
| 4 |
| 15 |
| 1 |
| 19 |
| 14 |
| 20 |
| 4 |
| 34 |
| 1 |
| 38 |
Ztop |
---|
See Also
Zret |
---|
Znav | ||||
---|---|---|---|---|
|