| Class | Jabber::RPC::Client |
| In: |
lib/xmpp4r/rpc/helper/client.rb
|
| Parent: | Object |
| my_jid | [RW] |
xmppstream
| stream: | [Stream] |
jid where you want to send the rpc requests to
| jid: | [JID] rpcserver@jabberserver/ressource |
# File lib/xmpp4r/rpc/helper/client.rb, line 28
28: def initialize(stream,jid)
29: @jid = JID.new(jid)
30: @my_jid = stream.jid
31: @stream = stream
32: @parser = nil
33: @create = XMLRPC::Create.new
34: end
# File lib/xmpp4r/rpc/helper/client.rb, line 44
44: def call(method, *args)
45: ok, param = call2(method, *args)
46: if ok
47: param
48: else
49: raise param
50: end
51: end
# File lib/xmpp4r/rpc/helper/client.rb, line 53
53: def call2(method, *args)
54: request = @create.methodCall(method, *args)
55: data = do_rpc(request)
56: parser().parseMethodResponse(data)
57: end
# File lib/xmpp4r/rpc/helper/client.rb, line 78
78: def do_rpc(xmlrpc)
79: iq = Iq.new(:set, @jid)
80: iq.from = @my_jid
81: iq.id = IdGenerator::generate_id
82: rpcquery = iq.add(IqQueryRPC.new)
83: rpcquery.typed_add(xmlrpc)
84:
85: result = nil
86: @stream.send_with_id(iq) do |iqreply|
87: if iqreply.query.kind_of?(IqQueryRPC)
88: result = iqreply.query.to_s
89: end
90: end
91:
92: result
93: end
automatically trys to find a method thanx to eric cestari :)
# File lib/xmpp4r/rpc/helper/client.rb, line 39
39: def method_missing(methodname, *args)
40: send("call", methodname,*args)
41: end
adds multi rpcalls to the query
| methods: | [Array] |
# File lib/xmpp4r/rpc/helper/client.rb, line 62
62: def multicall(*methods)
63: ok, params = multicall2(*methods)
64: if ok
65: params
66: else
67: raise params
68: end
69: end