Class Jabber::RPC::Client
In: lib/xmpp4r/rpc/helper/client.rb
Parent: Object
Message Presence XMPPStanza Iq XMPPElement ErrorResponse X IqQuery JabberError ComponentAuthenticationFailure ArgumentError InvalidChatState SOCKS5Error ServerError NoNameXmlnsRegistered ServerDisconnected ClientAuthenticationFailure Connection Client Component Connection Client Singleton IdGenerator Comparable JID Enumerable CallbackList Items Publish StandardError REXML::Element Stream XMPPElement Location IqFeature StreamHost IqSiFile IqSiFileRange IqSi StreamHostUsed XRosterItem RosterItem C Body HTML UserItem XMUCUserInvite Configuration Retract IqPubSub Item IqPubSubOwner Event Subscription Unsubscribe Tune XDataField XDataReported XDataTitle XDataInstructions Feature Item Identity IqVcard PubSub::ServiceHelper Helper Helper SOCKS5Bytestreams SOCKS5BytestreamsTarget SOCKS5BytestreamsInitiator SOCKS5BytestreamsServerStreamHost TCPSocket SOCKS5Socket IqQuery IqQueryBytestreams IqQueryRoster IqQueryVersion IqQueryRPC IqQueryMUCOwner IqQueryMUCAdmin IqQueryDiscoItems IqQueryDiscoInfo IqQueryLastActivity IBB IBBTarget IBBInitiator RosterXItem XRoster RosterX X XDelay XMUC XMUCUser XData Responder SimpleResponder Iq IqCommand XMLRPC::ParserWriterChooseMixin Client Server XMLRPC::ParseContentType XMLRPC::BasicServer MUCClient SimpleMUCClient MUC::UserItem XMUCUserItem IqQueryMUCAdminItem XParent SubscriptionConfig NodeConfig OwnerNodeConfig EventItems ServiceHelper OAuthServiceHelper NodeHelper EventItem Base Anonymous DigestMD5 Plain FileSource Base Bot Callback StreamParser Semaphore SOCKS5BytestreamsPeer SOCKS5BytestreamsServer IBBQueueItem Helper Responder Helper Listener MUCBrowser NodeBrowser ListenerMocker Helper Responder Helper Helper Helper lib/xmpp4r/message.rb lib/xmpp4r/connection.rb lib/xmpp4r/xmppstanza.rb lib/xmpp4r/iq.rb lib/xmpp4r/callbacks.rb lib/xmpp4r/idgenerator.rb lib/xmpp4r/stream.rb lib/xmpp4r/client.rb lib/xmpp4r/jid.rb lib/xmpp4r/x.rb lib/xmpp4r/streamparser.rb lib/xmpp4r/semaphore.rb lib/xmpp4r/errors.rb lib/xmpp4r/component.rb lib/xmpp4r/presence.rb lib/xmpp4r/xmppelement.rb lib/xmpp4r/query.rb XParent lib/xmpp4r/location/helper/helper.rb lib/xmpp4r/location/location.rb UserLocation lib/xmpp4r/feature_negotiation/iq/feature.rb FeatureNegotiation lib/xmpp4r/bytestreams/iq/si.rb lib/xmpp4r/bytestreams/helper/ibb/initiator.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/base.rb lib/xmpp4r/bytestreams/iq/bytestreams.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/initiator.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/socks5.rb lib/xmpp4r/bytestreams/helper/ibb/target.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/server.rb lib/xmpp4r/bytestreams/helper/ibb/base.rb Bytestreams lib/xmpp4r/roster/x/roster.rb lib/xmpp4r/roster/helper/roster.rb lib/xmpp4r/roster/iq/roster.rb Roster lib/xmpp4r/version/helper/responder.rb lib/xmpp4r/version/helper/simpleresponder.rb lib/xmpp4r/version/iq/version.rb Version lib/xmpp4r/command/iq/command.rb lib/xmpp4r/command/helper/responder.rb Command lib/xmpp4r/caps/helper/helper.rb lib/xmpp4r/caps/c.rb Caps lib/xmpp4r/reliable.rb Reliable lib/xmpp4r/delay/x/delay.rb Delay lib/xmpp4r/xhtml/html.rb XHTML lib/xmpp4r/rpc/helper/server.rb lib/xmpp4r/rpc/helper/client.rb lib/xmpp4r/rpc/iq/rpc.rb RPC lib/xmpp4r/muc/iq/mucadminitem.rb lib/xmpp4r/muc/x/muc.rb lib/xmpp4r/muc/item.rb lib/xmpp4r/muc/helper/simplemucclient.rb lib/xmpp4r/muc/iq/mucadmin.rb lib/xmpp4r/muc/helper/mucbrowser.rb lib/xmpp4r/muc/x/mucuseritem.rb lib/xmpp4r/muc/x/mucuserinvite.rb lib/xmpp4r/muc/iq/mucowner.rb lib/xmpp4r/muc/helper/mucclient.rb MUC lib/xmpp4r/pubsub/children/item.rb lib/xmpp4r/pubsub/children/configuration.rb lib/xmpp4r/pubsub/children/subscription.rb lib/xmpp4r/pubsub/helper/servicehelper.rb lib/xmpp4r/pubsub/children/unsubscribe.rb lib/xmpp4r/pubsub/children/publish.rb lib/xmpp4r/pubsub/helper/oauth_service_helper.rb lib/xmpp4r/pubsub/children/event.rb lib/xmpp4r/pubsub/iq/pubsub.rb lib/xmpp4r/pubsub/children/retract.rb lib/xmpp4r/pubsub/helper/nodebrowser.rb lib/xmpp4r/pubsub/helper/nodehelper.rb lib/xmpp4r/pubsub/children/items.rb lib/xmpp4r/pubsub/children/subscription_config.rb lib/xmpp4r/pubsub/children/node_config.rb OAuthPubSubStreamHelper PubSub lib/xmpp4r/httpbinding/client.rb HTTPBinding lib/xmpp4r/tune/helper/helper.rb lib/xmpp4r/tune/tune.rb UserTune lib/xmpp4r/sasl.rb SASL lib/xmpp4r/test/listener_mocker.rb Test lib/xmpp4r/dataforms/x/data.rb Dataforms lib/xmpp4r/discovery/helper/helper.rb lib/xmpp4r/discovery/iq/discoinfo.rb lib/xmpp4r/discovery/helper/responder.rb lib/xmpp4r/discovery/iq/discoitems.rb Discovery lib/xmpp4r/bytestreams/helper/filetransfer.rb TransferSource FileTransfer lib/xmpp4r/last/helper/helper.rb lib/xmpp4r/last/iq/last.rb LastActivity lib/xmpp4r/framework/base.rb lib/xmpp4r/framework/bot.rb Framework lib/xmpp4r/vcard/helper/vcard.rb lib/xmpp4r/vcard/iq/vcard.rb Vcard Jabber dot/m_110_0.png

Methods

Included Modules

XMLRPC::ParserWriterChooseMixin XMLRPC::ParseContentType

Attributes

my_jid  [RW] 

Public Class methods

xmppstream

stream:[Stream]

jid where you want to send the rpc requests to

jid:[JID] rpcserver@jabberserver/ressource

[Source]

    # 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

Public Instance methods

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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 :)

[Source]

    # 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]

[Source]

    # 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

generate a multicall

methods:[Array]

[Source]

    # File lib/xmpp4r/rpc/helper/client.rb, line 74
74:       def multicall2(*methods)
75:         gen_multicall(methods)
76:       end

Private Instance methods

[Source]

     # File lib/xmpp4r/rpc/helper/client.rb, line 97
 97:       def gen_multicall(methods=[])
 98:         ok, params = call2("system.multicall",
 99:           methods.collect { |m|
100:             {
101:               'methodName' => m[0],
102:               'params' => m[1..-1]
103:             }
104:           }
105:         )
106: 
107:         if ok
108:           params = params.collect{ |param|
109:             if param.is_a? Array
110:               param[0]
111:             elsif param.is_a? Hash
112:               XMLRPC::FaultException.new(param["faultCode"], param["faultString"])
113:             else
114:               raise "Wrong multicall return value"
115:             end
116:           }
117:         end
118: 
119:         return ok, params
120:       end

[Validate]