# =XMPP4R - XMPP Library for Ruby
# License:: Ruby's license (see the LICENSE file) or GNU GPL, at your option.
# Website::http://home.gna.org/xmpp4r/
module Jabber
module Bytestreams
NS_BYTESTREAMS = 'http://jabber.org/protocol/bytestreams'
##
# Class for accessing elements with
# xmlns='http://jabber.org/protocol/bytestreams'
# in stanzas.
class IqQueryBytestreams < IqQuery
name_xmlns 'query', NS_BYTESTREAMS
##
# Initialize such a
# sid:: [String] Session-ID
# mode:: [Symbol] :tcp or :udp
def initialize(sid=nil, mode=nil)
super()
self.sid = sid
self.mode = mode
end
##
# Session-ID
def sid
attributes['sid']
end
##
# Set Session-ID
def sid=(s)
attributes['sid'] = s
end
##
# Transfer mode
# result:: :tcp or :udp
def mode
case attributes['mode']
when 'udp' then :udp
else :tcp
end
end
##
# Set the transfer mode
# m:: :tcp or :udp
def mode=(m)
case m
when :udp then attributes['mode'] = 'udp'
else attributes['mode'] = 'tcp'
end
end
##
# Get the child
# result:: [StreamHostUsed]
def streamhost_used
first_element('streamhost-used')
end
##
# Get the text of the child
# result:: [JID] or [nil]
def activate
j = first_element_text('activate')
j ? JID.new(j) : nil
end
##
# Set the text of the child
# s:: [JID]
def activate=(s)
replace_element_text('activate', s ? s.to_s : nil)
end
end
##
# element, normally appear
# as children of IqQueryBytestreams
class StreamHost < XMPPElement
name_xmlns 'streamhost', NS_BYTESTREAMS
##
# Initialize a element
# jid:: [JID]
# host:: [String] Hostname or IP address
# port:: [Fixnum] Port number
def initialize(jid=nil, host=nil, port=nil)
super()
self.jid = jid
self.host = host
self.port = port
end
##
# Get the JID of the streamhost
def jid
(a = attributes['jid']) ? JID.new(a) : nil
end
##
# Set the JID of the streamhost
def jid=(j)
attributes['jid'] = (j ? j.to_s : nil)
end
##
# Get the host address of the streamhost
def host
attributes['host']
end
##
# Set the host address of the streamhost
def host=(h)
attributes['host'] = h
end
##
# Get the zeroconf attribute of the streamhost
def zeroconf
attributes['zeroconf']
end
##
# Set the zeroconf attribute of the streamhost
def zeroconf=(s)
attributes['zeroconf'] = s
end
##
# Get the port number of the streamhost
def port
p = attributes['port'].to_i
(p == 0 ? nil : p)
end
##
# Set the port number of the streamhost
def port=(p)
attributes['port'] = p.to_s
end
end
##
# element, normally appears
# as child of IqQueryBytestreams
class StreamHostUsed < XMPPElement
name_xmlns 'streamhost-used', NS_BYTESTREAMS
def initialize(jid=nil)
super()
self.jid = jid
end
def jid
(a = attributes['jid']) ? JID.new(a) : nil
end
def jid=(j)
attributes['jid'] = (j ? j.to_s : nil)
end
end
end
end