An Invocation is an object holding a target object, a selector, and arguments to the selector. Thus, an Invocation holds everything needed to send a message. An Invocation can be fired at its target (with the fire method), or fired after retargeting (using the fireAt method).
An Invocation is incomplete when not all arguments needed to send the message have been specified. An incomplete Invocation can be fired in two different ways. First, by invoking fireWith and supplying values for the remaining arguments. Second, by invoking on the Invocation a method completing it. For example, if an Invocation x of the method void with int a do int b only has a value for the argument a, then invoking [x do 23] will (temporarily) complete the Invocation and send the full message (with do) to its target.
inherits
State supers: State
methods
instance (id) for selector sel to: All target = nil with dynamic arguments; |
Create a, potentially incomplete, invocation.
instance (id) for selector sel to: All target = nil : Indexed arguments = nil; |
Create a, potentially incomplete, invocation.
instance (id) of selector sel to: All target = nil with dynamic arguments; |
Create a complete invocation. This raises a program-condition if the resulting invocation is incomplete.
instance (id) of selector sel to: All target = nil : Indexed arguments = nil; |
Create a complete invocation. This raises a program-condition if the resulting invocation is incomplete.
instance (id) of selector sel to: All target = nil using pointer ap; |
Create an invocation. It shall be complete. This method is primarily intended to be used by Proxy in its forwarding from forwardSelector arguments.
Arguments are to be retrieved from the va_list pointed to by ap, i.e. va_arg (*ap, ...).
variables
The result of the most recent invocation, or nil if we haven't fired yet, or have fired with a void return type (of the fire method).
The underlying invocation structure.
methods
protected id init pointer i; |
Designated initializer.
boolean
isComplete;
|
Return TRUE iff the receiving invocation is complete, i.e. is has all the arguments needed and can be fired directly with fire or fireAt.
selector
selector;
|
Return this invocation's selector.
Any target; |
Return this invocation's target.
protected InvocationResult forwardSelector selector sel arguments pointer ap; |
Forward the selector sel with the arguments pointed to by the va_list pointed to by ap. Return the result of the invocation.
Only the incoming arguments from *ap will be retrieved, so that subsequent va_arg invocations on *ap can retrieve the outgoing argument pointers.
This method is invoked by the runtime library in an attempt to forward a message not directly implemented by the receiver. This method is used since it is faster than a forwardInvocation.
boolean
invocationp;
|
Return YES.
InvocationResult fire; |
Perform the invocation. If invoked repeatedly, the invocation will be performed repeatedly.
void
fire;
|
Similarly, but avoid the creation of an InvocationResult. The result of the receiving invocation is set to nil.
InvocationResult fireAt All target; |
Perform the invocation after setting the receiver of this invocation to target.
void fireAt All target; |
Similarly, but avoid the creation of an InvocationResult. The result of the receiving invocation is set to nil.
InvocationResult fireWith dynamic arguments; |
Perform the invocation resulting from completing this invocation with the arguments. Return the result. The receiving invocation will remain incomplete.
void fireWith dynamic arguments; |
Similarly, but avoid the creation of an InvocationResult. The result of the receiving invocation is set to nil.
Any objectAfterFire; |
Shortcut to fire and return the first element of the result as an object.
Any objectOfResult; |
Shortcut to retrieve the first element of the result as an object. This fires if needed.
InvocationResult result; |
If the invocation has been fired at least once, return the (most recent) result. Otherwise, fire and return the result.
TypeDescription resultTypeDescription; |
Return the type description of the result from this invocation.
void encodeUsingCoder Encoder coder; |
Undocumented.
void initWithCoder Decoder coder; |
Undocumented.
protected void encodeToCoder Encoder coder; |
Private method to do the hard work of encoding all information carried by this invocation.
protected void decodeFromCoder Decoder coder; |
Private method to do the hard work of decoding all information from the coder into the invocation.
void
dealloc;
|
Deallocate the structure underlying the invocation.
void
gc_mark_elements;
|
Mark the objects in this invocation's arguments.