next up previous
Next: Down filtering Up: Filtered method invocation Previous: Method name translation

Up filtering

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
  1. Read the argument data. If unsuccessful, set read status as false and return.
  2. Perform Up filtering setting method pass status.
    1. If the invocation status is bad filter client invocation, set the pass status as false.
    2. If there are no filters plugged to current object, set the pass status as true.
    3. 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.
    4. If none of the plugged filters bounce the method, set pass status as true else set it as false.
  3. If pass status is true, set read status to true and return.
  4. Else set read status to false and call write_results().


next up previous
Next: Down filtering Up: Filtered method invocation Previous: Method name translation
R K Joshi 2003-05-30