| | 2 | |
|---|
| | 3 | remove wsdl/namedElements.rb |
|---|
| | 4 | |
|---|
| | 5 | == Header handler API |
|---|
| | 6 | |
|---|
| | 7 | === for client |
|---|
| | 8 | |
|---|
| | 9 | drv = ... |
|---|
| | 10 | |
|---|
| | 11 | drv.with_header(headers) do |d| |
|---|
| | 12 | returned_obj = d.my_method(foo, bar) |
|---|
| | 13 | p d.returned_headers |
|---|
| | 14 | returned_obj = d.my_method(foo, bar) |
|---|
| | 15 | returned_obj = d.my_method(foo, bar) |
|---|
| | 16 | returned_obj = d.my_method(foo, bar) |
|---|
| | 17 | ... |
|---|
| | 18 | end |
|---|
| | 19 | |
|---|
| | 20 | |
|---|
| | 21 | header_handler ? |
|---|
| | 22 | |
|---|
| | 23 | |
|---|
| | 24 | class MyHeaderHandler < HeaderHandler |
|---|
| | 25 | MyHeaderName = XSD::QName.new("foo", "bar") |
|---|
| | 26 | |
|---|
| | 27 | def initialize(userid, passwd) |
|---|
| | 28 | super(MyHeaderName) |
|---|
| | 29 | @session_id = nil |
|---|
| | 30 | @userid = userid |
|---|
| | 31 | @passwd = passwd |
|---|
| | 32 | end |
|---|
| | 33 | |
|---|
| | 34 | def on_outbound |
|---|
| | 35 | if @session_id |
|---|
| | 36 | { :session_id => @session_id } |
|---|
| | 37 | elsif false |
|---|
| | 38 | SOAPElement.new(MyHeaderName) |
|---|
| | 39 | else |
|---|
| | 40 | { :userid => @userid, :passwd => @passwd } |
|---|
| | 41 | end |
|---|
| | 42 | end |
|---|
| | 43 | |
|---|
| | 44 | alias on_request on_outbound |
|---|
| | 45 | |
|---|
| | 46 | def on_inbound(my_header) |
|---|
| | 47 | @session_id = my_header[:session_id] |
|---|
| | 48 | end |
|---|
| | 49 | |
|---|
| | 50 | alias on_response on_inbound |
|---|
| | 51 | |
|---|
| | 52 | end |
|---|
| | 53 | |
|---|
| | 54 | drv.header_handler << MyHeaderHandler.new |
|---|
| | 55 | |
|---|
| | 56 | drv.my_method(foo, bar) |
|---|
| | 57 | drv.my_method(foo, bar) |
|---|
| | 58 | drv.my_method(foo, bar) |
|---|
| | 59 | drv.my_method(foo, bar) |
|---|
| | 60 | drv.my_method(foo, bar) |
|---|
| | 61 | |
|---|
| | 62 | |
|---|
| | 63 | drv.with_header.my_method(headers, foo, bar) |
|---|
| | 64 | |
|---|
| | 65 | drv.my_method_with_header(headers, foo, bar) |
|---|
| | 66 | |
|---|
| | 67 | |
|---|
| | 68 | === for server |
|---|
| | 69 | |
|---|
| | 70 | class MyService |
|---|
| | 71 | def foo |
|---|
| | 72 | end |
|---|
| | 73 | end |
|---|
| | 74 | |
|---|
| | 75 | @router.header_handler = hh ? |
|---|
| | 76 | |
|---|
| | 77 | |
|---|
| | 78 | |
|---|