Next: Down filtering
Up: Filtered method invocation
Previous: Method name translation
The read_args()
method performs the work of reading the
argument data, which was sent as part of method invocation from
client side. This data is then passed on to actual method at
server side provided read_args()
is successful in reading
the data. In the filter object framework, read_args()
method handles additional
responsibility of Up filtering. Here, we present algorithm used to carry out Up filtering.
Scenario: Up filtering
- Read the argument data. If unsuccessful, set read status as
false and return.
- Perform Up filtering setting method
pass status.
- If the invocation status is bad filter client
invocation, set the pass status as false.
- If there are no
filters plugged to current object, set the pass status as true.
- Else iterate through plugged filters in LIFO order till all
filters are traversed or one of the filters cause method to
bounce. For every filter, create a filter request and copy the
current invocation request's arguments and return value to it.
Make the copied arguments inout. Finally, invoke the
intercepted filter client method call using newly created filter
request.
- If none of the plugged filters bounce the method,
set pass status as true else set it as false.
- If pass status is true, set read status to true and return.
- Else set read status to false and call
write_results()
.
Next: Down filtering
Up: Filtered method invocation
Previous: Method name translation
R K Joshi
2003-05-30