/linkedfs/usr/lib/perl5/vendor_perl/5.8.4/Net/Jabber/Query.pm
Perl | 2263 lines | 1384 code | 624 blank | 255 comment | 13 complexity | 65a8431d6a232b02a488ab081fa9529d MD5 | raw file
Possible License(s): GPL-2.0, MIT, LGPL-3.0
Large files files are truncated, but you can click here to view the full file
- ##############################################################################
- #
- # This library is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Library General Public
- # License as published by the Free Software Foundation; either
- # version 2 of the License, or (at your option) any later version.
- #
- # This library is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- # Library General Public License for more details.
- #
- # You should have received a copy of the GNU Library General Public
- # License along with this library; if not, write to the
- # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- # Boston, MA 02111-1307, USA.
- #
- # Jabber
- # Copyright (C) 1998-1999 The Jabber Team http://jabber.org/
- #
- ##############################################################################
- package Net::Jabber::Query;
- =head1 NAME
- Net::Jabber::Query - Jabber Query Library
- =head1 SYNOPSIS
- Net::Jabber::Query is a companion to the Net::Jabber::IQ module. It
- provides the user a simple interface to set and retrieve all
- parts of a Jabber IQ Query.
- =head1 DESCRIPTION
- Net::Jabber::Query differs from the other modules in that its behavior
- and available functions are based off of the XML namespace that is
- set in it. The current supported namespaces are:
- jabber:iq:agent
- jabber:iq:agents
- jabber:iq:auth
- jabber:iq:autoupdate
- jabber:iq:browse
- jabber:iq:conference
- jabber:iq:filter
- jabber:iq:gateway
- jabber:iq:last
- jabber:iq:oob
- jabber:iq:pass
- jabber:iq:register
- jabber:iq:roster
- jabber:iq:rpc
- jabber:iq:search
- jabber:iq:time
- jabber:iq:version
- http://jabber.org/protocol/bytestreams
- http://jabber.org/protocol/commands
- http://jabber.org/protocol/disco#info
- http://jabber.org/protocol/disco#items
- http://jabber.org/protocol/feature-neg
- http://jabber.org/protocol/muc#admin
- http://jabber.org/protocol/pubsub
- http://jabber.org/protocol/pubsub#event
- http://jabber.org/protocol/pubsub#owner
- http://jabber.org/protocol/si
- http://jabber.org/protocol/si/profile/file-transfer
- http://jabber.org/protocol/si/profile/tree-transfer
- http://www.jabber.org/protocol/soap # Experimental
-
- For more information on what these namespaces are for, visit
- http://www.jabber.org and browse the Jabber Programmers Guide.
- Each of these namespaces provide Net::Jabber::Query with the functions
- to access the data. By using the AUTOLOAD function the functions for
- each namespace is used when that namespace is active.
- To access a Query object you must create an IQ object and use the
- access functions there to get to the Query. To initialize the IQ with
- a Jabber <iq/> you must pass it the XML::Stream hash from the
- Net::Jabber::Client module.
- my $iq = new Net::Jabber::IQ(%hash);
- There has been a change from the old way of handling the callbacks.
- You no longer have to do the above yourself, a Net::Jabber::IQ
- object is passed to the callback function for the message. Also,
- the first argument to the callback functions is the session ID from
- XML::Streams. There are some cases where you might want this
- information, like if you created a Client that connects to two servers
- at once, or for writing a mini server.
- use Net::Jabber qw(Client);
- sub iqCB {
- my ($sid,$IQ) = @_;
- my $query = $IQ->GetQuery();
- .
- .
- .
- }
- You now have access to all of the retrieval functions available for
- that namespace.
- To create a new iq to send to the server:
- use Net::Jabber;
- my $iq = new Net::Jabber::IQ();
- $query = $iq->NewQuery("jabber:iq:register");
- Now you can call the creation functions for the Query as defined in the
- proper namespaces. See below for the general <query/> functions, and
- in each query module for those functions.
- For more information about the array format being passed to the
- CallBack please read the Net::Jabber::Client documentation.
- =head1 METHODS
- =head2 Retrieval functions
- GetXMLNS() - returns a string with the namespace of the query that
- the <iq/> contains.
- $xmlns = $IQ->GetXMLNS();
- GetQuery() - since the behavior of this module depends on the
- namespace, a Query object may contain Query objects.
- This helps to leverage code reuse by making children
- behave in the same manner. More than likely this
- function will never be called.
- @query = GetQuery()
- =head2 Creation functions
- SetXMLNS(string) - sets the xmlns of the <query/> to the string.
- $query->SetXMLNS("jabber:iq:roster");
- In an effort to make maintaining this document easier, I am not going
- to go into full detail on each of these functions. Rather I will
- present the functions in a list with a type in the first column to
- show what they return, or take as arugments. Here is the list of
- types I will use:
- string - just a string
- array - array of strings
- flag - this means that the specified child exists in the
- XML <child/> and acts like a flag. get will return
- 0 or 1.
- JID - either a string or Net::Jabber::JID object.
- objects - creates new objects, or returns an array of
- objects.
- special - this is a special case kind of function. Usually
- just by calling Set() with no arguments it will
- default the value to a special value, like OS or time.
- Sometimes it will modify the value you set, like
- in jabber:iq:version SetVersion() the function
- adds on the Net::Jabber version to the string
- just for advertisement purposes. =)
- master - this desribes a function that behaves like the
- SetMessage() function in Net::Jabber::Message.
- It takes a hash and sets all of the values defined,
- and the Set returns a hash with the values that
- are defined in the object.
- =head1 jabber:iq:agent
- Type Get Set Defined
- ======= ================ ================ ==================
- flag GetAgents() SetAgents() DefinedAgents()
- string GetDescription() SetDescription() DefinedDesrciption()
- JID GetJID() SetJID() DefinedJID()
- string GetName() SetName() DefinedName()
- flag GetGroupChat() SetGroupChat() DefinedGroupChat()
- flag GetRegister() SetRegister() DefinedRegister()
- flag GetSearch() SetSearch() DefinedSearch()
- string GetService() SetService() DefinedService()
- string GetTransport() SetTransport() DefinedTransport()
- string GetURL() SetURL() DefinedURL()
- master GetAgent() SetAgent()
- =head1 jabber:iq:agents
- Type Get Set Defined
- ======= ================ ================ ==================
- objects AddAgent() DefinedAgent()
- master GetAgents()
- =head1 jabber:iq:auth
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetDigest() SetDigest() DefinedDigest()
- string GetHash() SetHash() DefiendHash()
- string GetPassword() SetPassword() DefinedPassword()
- string GetResource() SetResource() DefinedResource()
- string GetSequence() SetSequence() DefinedSequence()
- string GetToken() SetToken() DefinedToken()
- string GetUsername() SetUsername() DefinedUsername()
- master GetAuth() SetAuth()
- =head1 jabber:iq:autoupdate
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetReleases()
- objects AddBeta()
- objects AddDev()
- objects AddRelease()
- =head1 jabber:iq:autoupdate - release objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetDesc() SetDesc() DefinedDesc()
- string GetPriority() SetPriority() DefinedPriority()
- string GetURL() SetURL() DefinedURL()
- string GetVersion() SetVersion() DefinedVersion()
- master GetRelease() SetRelease()
- =head1 jabber:iq:browse
- Type Get Set Defined
- ======= ================ ================ ==================
- JID GetJID() SetJID() DefinedJID()
- string GetName() SetName() DefinedName()
- string GetType() SetType() DefinedType()
- array GetNS() SetNS() DefinedNS()
- master GetBrowse() SetBrowse()
- objects AddItem()
- objects GetItems()
- =head1 jabber:iq:browse - item objects
- Type Get Set Defined
- ======= ================ ================ ==================
- JID GetJID() SetJID() DefinedJID()
- string GetName() SetName() DefinedName()
- string GetType() SetType() DefinedType()
- array GetNS() SetNS() DefinedNS()
- master GetBrowse() SetBrowse()
- objects AddItem()
- objects GetItems()
- =head1 jabber:iq:conference
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetID() SetID() DefinedID()
- string GetName() SetName() DefinedName()
- array GetNick() SetNick() DefinedNick()
- flag GetPrivacy() SetPrivacy() DefinedPrivacy()
- string GetSecret() SetSecret() DefinedSecret()
- master GetConference() SetConference()
- =head1 jabber:iq:filter
- Type Get Set Defined
- ======= ================ ================ ==================
- objects AddRule()
- objects GetRules()
- =head1 jabber:iq:filter - rule objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetBody() SetBody() DefinedBody()
- string GetContinued() SetContinued() DefinedContinued()
- string GetDrop() SetDrop() DefinedDrop()
- string GetEdit() SetEdit() DefinedEdit()
- string GetError() SetError() DefinedError()
- string GetFrom() SetFrom() DefinedFrom()
- string GetOffline() SetOffline() DefinedOffline()
- string GetReply() SetReply() DefinedReply()
- string GetResource() SetResource() DefinedResource()
- string GetShow() SetShow() DefinedShow()
- string GetSize() SetSize() DefinedSize()
- string GetSubject() SetSubject() DefinedSubject()
- string GetTime() SetTime() DefinedTime()
- string GetType() SetType() DefinedType()
- string GetUnavailable() SetUnavailable() DefinedUnavailable()
- master GetConference() SetConference()
- =head1 jabber:iq:gateway
- Type Get Set Defined
- ======= ================ ================ ==================
- JID GetJID() SetJID() DefinedJID()
- string GetDesc() SetDesc() DefinedDesc()
- string GetPrompt() SetPrompt() DefinedPrompt()
- master GetGateway() SetGateway()
- =head1 jabber:iq:last
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetMessage() SetMessage() DefinedMessage()
- string GetSeconds() SetSeconds() DefinedSeconds()
- master GetLast() SetLast()
- =head1 jabber:iq:oob
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetDesc() SetDesc() DefinedDesc()
- string GetURL() SetURL() DefinedURL()
- master GetOob() SetOob()
- =head1 jabber:iq:pass
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetClient() SetClient() DefinedClient()
- string GetClientPort() SetClientPort() DefinedClientPort()
- string GetClose() SetClose() DefinedClose()
- string GetExpire() SetExpire() DefinedExpire()
- string GetOneShot() SetOneShot() DefinedOneShot()
- string GetProxy() SetProxy() DefinedProxy()
- string GetProxyPort() SetProxyPort() DefinedProxyPort()
- string GetServer() SetServer() DefinedServer()
- string GetServerPort() SetServerPort() DefinedServerPort()
- master GetPass() SetPass()
- =head1 jabber:iq:register
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetAddress() SetAddress() DefinedAddress()
- string GetCity() SetCity() DefinedCity()
- string GetDate() SetDate() DefinedDate()
- string GetEmail() SetEmail() DefinedEmail()
- string GetFirst() SetFirst() DefinedFirst()
- string GetInstructions() SetInstructions() DefinedInstructions()
- string GetKey() SetKey() DefinedKey()
- string GetLast() SetLast() DefinedLast()
- string GetMisc() SetMisc() DefinedMisc()
- string GetName() SetName() DefinedName()
- string GetNick() SetNick() DefinedNick()
- string GetPassword() SetPassword() DefinedPassword()
- string GetPhone() SetPhone() DefinedPhone()
- flag GetRegistered() SetRegistered() DefinedRegistered()
- flag GetRemove() SetRemove() DefinedRemove()
- string GetState() SetState() DefinedState()
- string GetText() SetText() DefinedText()
- string GetURL() SetURL() DefinedURL()
- string GetUsername() SetUsername() DefinedUsername()
- string GetZip() SetZip() DefinedZip()
- master GetRegister() SetRegister()
- =head1 jabber:iq:roster
- Type Get Set Defined
- ======= ================ ================ ==================
- objects AddItem()
- objects GetItems()
- =head1 jabber:iq:roster - item objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetAsk() SetAsk() DefinedAsk()
- array GetGroup() SetGroup() DefinedGroup()
- JID GetJID() SetJID() DefinedJID()
- string GetName() SetName() DefinedName()
- string GetSubscription() SetSubscription() DefinedSubscription()
- master GetItem() SetItem()
- =head1 jabber:iq:rpc
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetMethodCall() AddMethodCall() DefinedMethodCall()
- objects GetMethodResponse() AddMethodResponse() DefinedMethodReponse()
- =head1 jabber:iq:rpc - methodCall objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetMethodName() SetMethodName() DefinedMethodName()
- objects GetParams() AddParams() DefinedParams()
- master GetMethodCall() SetMethodCall()
-
- =head1 jabber:iq:rpc - methodResponse objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetParams() AddParams() DefinedParams()
- objects GetFault() AddFault() DefinedFault()
- =head1 jabber:iq:rpc - fault objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetValue() AddValue() DefinedValue()
- =head1 jabber:iq:rpc - params objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects AddParam()
- objects GetParams()
- =head1 jabber:iq:rpc - param objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetValue() AddValue() DefinedValue()
- =head1 jabber:iq:rpc - value objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetBase64() SetBase64() DefinedBase64()
- string GetBoolean() SetBoolean() DefinedBoolean()
- string GetDateTime() SetDateTime() DefinedDateTime()
- string GetDouble() SetDouble() DefinedDouble()
- string GetI4() SetI4() DefinedI4()
- string GetInt() SetInt() DefinedInt()
- string GetString() SetString() DefinedString()
- string GetValue() SetValue() DefinedValue()
- objects GetStruct() AddStruct() DefinedStruct()
- objects GetArray() AddArray() DefinedArray()
- master GetRPCValue() SetRPCValue()
- =head1 jabber:iq:rpc - struct objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects AddMember()
- objects GetMembers()
- =head1 jabber:iq:rpc - member objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetName() SetName() DefinedName()
- objects GetValue() AddValue() DefinedValue()
- master GetMember() SetMember()
-
- =head1 jabber:iq:rpc - array objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects AddData()
- objects GetDatas()
- =head1 jabber:iq:rpc - data objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetValue() AddValue() DefinedValue()
- =head1 jabber:iq:search
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetEmail() SetEmail() DefinedEmail()
- string GetFirst() SetFirst() DefinedFirst()
- string GetFamily() SetFamily() DefinedFamily()
- string GetGiven() SetGiven() DefinedGiven()
- string GetInstructions() SetInstructions() DefinedInstructions()
- string GetKey() SetKey() DefinedKey()
- string GetLast() SetLast() DefinedLast()
- string GetName() SetName() DefinedName()
- string GetNick() SetNick() DefinedNick()
- flag GetTruncated() SetTruncated() DefinedTruncated()
- master GetSearch() SetSearch()
- objects AddItem()
- objects GetItems()
- =head1 jabber:iq:search - item objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetEmail() SetEmail() DefinedEmail()
- string GetFirst() SetFirst() DefinedFirst()
- string GetFamily() SetFamily() DefinedFamily()
- string GetGiven() SetGiven() DefinedGiven()
- JID GetJID() SetJID() DefinedJID()
- string GetKey() SetKey() DefinedKey()
- string GetLast() SetLast() DefinedLast()
- string GetName() SetName() DefinedName()
- string GetNick() SetNick() DefinedNick()
- master GetSearch() SetSearch()
- =head1 jabber:iq:time
- Type Get Set Defined
- ======= ================ ================ ==================
- special GetDisplay() SetDisplay() DefinedDisplay()
- special GetTZ() SetTZ() DefinedTZ()
- special GetUTC() SetUTC() DefinedUTC()
- master GetTime() SetTime()
- =head1 jabber:iq:version
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetName() SetName() DefinedName()
- special GetOS() SetOS() DefinedOS()
- special GetVer() SetVer() DefinedVer()
- master GetVersion() SetVersion()
- =head1 http://www.jabber.org/protocol/bytestreams
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetActivate() SetActivate() DefinedActivate()
- string GetStreamHostUsedJID()
- SetStreamHostUsedJID()
- DefinedStreamHostUsedJID()
- string GetSID() SetSID() DefinedSID()
- objects AddStreamHost()
- objects GetStreamHosts()
- master GetByteStreams() SetByteStreams()
- =head1 http://www.jabber.org/protocol/bytestreams streamhost objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetHost() SetHost() DefinedHost()
- string GetJID() SetJID() DefinedJID()
- string GetPort() SetPort() DefinedPort()
- string GetZeroConf() SetZeroConf() DefinedZeroConf()
- master GetStreamHost() SetStreamHost()
- =head1 http://www.jabber.org/protocol/commands
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetAction() SetAction() DefinedAction()
- string GetNode() SetNode() DefinedNode()
- string GetSessionID() SetSessionID() DefinedSessionID()
- objects AddNote()
- objects GetNotes()
- master GetCommand() SetCommand()
- =head1 http://www.jabber.org/protocol/commands note object
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetMessage() SetMessage() DefinedMessage()
- string GetType() SetType() DefinedType()
- master GetNote() SetNote()
- =head1 http://www.jabber.org/protocol/disco#info
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetNode() SetNode() DefinedNode()
- objects AddFeature()
- objects GetFeatures()
- objects AddIdentity()
- objects GetIdentities()
- master GetDiscoInfo() SetDiscoInfo()
- =head1 http://www.jabber.org/protocol/disco#info feature objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetVar() SetVar() DefinedVar()
- master GetFeature() SetFeature()
- =head1 http://www.jabber.org/protocol/disco#info identity objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetCategory() SetCategory() DefinedCategory()
- string GetName() SetName() DefinedName()
- string GetType() SetType() DefinedType()
- master GetIdentity() SetIdentity()
- =head1 http://www.jabber.org/protocol/disco#items
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetNode() SetNode() DefinedNode()
- objects AddItem()
- objects GetItems()
- master GetDiscoItems() SetDiscoItems()
- =head1 http://www.jabber.org/protocol/disco#items item objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetAction() SetAction() DefinedAction()
- string GetJID() SetJID() DefinedJID()
- string GetName() SetName() DefinedName()
- string GetNode() SetNode() DefinedNode()
- master GetItem() SetItem()
- =head1 http://www.jabber.org/protocol/feature-neg
- Type Get Set Defined
- ======= ================ ================ ==================
- This is just a wrapper for x:data to provide it with context.
- =head1 http://www.jabber.org/protocol/pubsub
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetAffiliations() AddAffiliations()
- objects GetConfigure() AddConfigure()
- objects GetCreate() AddCreate()
- objects GetDelete() AddDelete()
- objects GetEntities() AddEntities()
- objects GetEntity() AddEntity()
- objects GetItems() AddItems()
- objects GetItem() AddItem()
- objects GetOptions() AddOptions()
- objects GetPublish() AddPublish()
- objects GetPurge() AddPurge()
- objects GetRetract() AddRetract()
- objects GetSubscribe() AddSubscribe()
- objects GetUnsubscribe() AddUnsubscribe()
- =head1 http://www.jabber.org/protocol/pubsub affiliations objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetEntity() AddEntity()
- =head1 http://www.jabber.org/protocol/pubsub configure objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetNode() SetNode() DefinedNode()
- master GetConfigure() SetConfigure()
- =head1 http://www.jabber.org/protocol/pubsub create objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetNode() SetNode() DefinedNode()
- master GetCreate() SetCreate()
- =head1 http://www.jabber.org/protocol/pubsub delete objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetNode() SetNode() DefinedNode()
- master GetDelete() SetDelete()
- =head1 http://www.jabber.org/protocol/pubsub entity objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetAffiliation() SetAffiliation() DefinedAffiliation()
- string GetJID() SetJID() DefinedJID()
- string GetNode() SetNode() DefinedNode()
- string GetSubscription() SetSubscription() DefinedSubscription()
- objects GetSubscribeOptions()
- AddSubscribeOptions()
- master GetEntity() SetEntity()
- =head1 http://www.jabber.org/protocol/pubsub items objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetItem() AddItem()
- string GetMaxItems() SetMaxItems() DefinedMaxItems()
- string GetNode() SetNode() DefinedNode()
- master GetItems() SetItems()
- =head1 http://www.jabber.org/protocol/pubsub item objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetID() SetID() DefinedID()
- raw GetPayload() SetPayload() DefinedPayload()
- master GetItem() SetItem()
- =head1 http://www.jabber.org/protocol/pubsub options objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetJID() SetJID() DefinedJID()
- string GetNode() SetNode() DefinedNode()
- master GetOptions() SetOptions()
- =head1 http://www.jabber.org/protocol/pubsub publish objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetItem() AddItem()
- string GetNode() SetNode() DefinedNode()
- master GetRetract() SetRetract()
- =head1 http://www.jabber.org/protocol/pubsub purge objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetNode() SetNode() DefinedNode()
- master GetPurge() SetPurge()
- =head1 http://www.jabber.org/protocol/pubsub retract objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetItem() AddItem()
- string GetNode() SetNode() DefinedNode()
- master GetRetract() SetRetract()
- =head1 http://www.jabber.org/protocol/pubsub subscribe objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetJID() SetJID() DefinedJID()
- string GetNode() SetNode() DefinedNode()
- master GetSubscribe() SetSubscribe()
- =head1 http://www.jabber.org/protocol/pubsub subscribe-options objects
- Type Get Set Defined
- ======= ================ ================ ==================
- flag GetRequired() SetRequired() DefinedRequired()
- master GetSubscribeOptions()
- SetSubscriceOptions()
- =head1 http://www.jabber.org/protocol/pubsub unsubscribe objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetJID() SetJID() DefinedJID()
- string GetNode() SetNode() DefinedNode()
- master GetUnsubscribe() SetUnsubscribe()
- =head1 http://www.jabber.org/protocol/pubsub#event
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetDelete() AddDelete()
- objects GetItems() AddItems()
- =head1 http://www.jabber.org/protocol/pubsub#event delete objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetNode() SetNode() DefinedNode()
- master GetDelete() SetDelete()
- =head1 http://www.jabber.org/protocol/pubsub#event items objects
- Type Get Set Defined
- ======= ================ ================ ==================
- objects GetItem() AddItem()
- string GetNode() SetNode() DefinedNode()
- master GetItems() SetItems()
- =head1 http://www.jabber.org/protocol/pubsub#event item objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetID() SetID() DefinedID()
- raw GetPayload() SetPayload() DefinedPayload()
- master GetItem() SetItem()
- =head1 http://www.jabber.org/protocol/pubsub#owner
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetAction() SetAction() DefinedAction()
- objects GetConfigure() AddConfigure()
- master GetOwner() SetOwner()
-
- =head1 http://www.jabber.org/protocol/pubsub#owner configure objects
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetNode() SetNode() DefinedNode()
- master GetConfigure() SetConfigure()
- =head1 http://www.jabber.org/protocol/si
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetID() SetID() DefinedID()
- string GetMimeType() SetMimeType() DefinedMimeType()
- string GetProfile() SetProfile() DefinedProfile()
- master GetStream() SetStream()
- =head1 http://www.jabber.org/protocol/si/profile/file-transfer
- Type Get Set Defined
- ======= ================ ================ ==================
- string GetDate() SetDate() DefinedDate()
- string GetDesc() SetDesc() DefinedDesc()
- string GetHash() SetHash() DefinedHash()
- string GetName() SetName() DefinedName()
- string GetRange() SetRange() DefinedRange()
- string GetRangeOffset() SetRangeOffset() DefinedRangeOffset()
- string GetRangeLength() SetRangeLength() DefinedRangeLength()
- string GetSize() SetSize() DefinedSize()
- master GetFile() SetFile()
- =head1 http://www.jabber.org/protocol/soap - Experimental
- Type Get Set Defined
- ======= ================ ================ ==================
- raw GetPayload() SetPayload() DefinedPayload()
- master GetSoap() SetSoap()
- =head1 CUSTOM NAMESPACES
- Part of the flexability of this module is that you can define your own
- namespace. For more information on this topic, please read the
- Net::Jabber::Namespaces man page.
- =head1 AUTHOR
- By Ryan Eatmon in May of 2001 for http://jabber.org..
- =head1 COPYRIGHT
- This module is free software; you can redistribute it and/or modify
- it under the same terms as Perl itself.
- =cut
- require 5.003;
- use strict;
- use Carp;
- use vars qw($VERSION %FUNCTIONS %NAMESPACES %TAGS $AUTOLOAD);
- $VERSION = "1.30";
- sub new
- {
- my $proto = shift;
- my $class = ref($proto) || $proto;
- my $self = { };
- $self->{VERSION} = $VERSION;
- bless($self, $proto);
- $self->{DEBUGHEADER} = "Query";
- $self->{DATA} = {};
- $self->{CHILDREN} = {};
- $self->{TAG} = "query";
- if ("@_" ne (""))
- {
- if (ref($_[0]) eq "Net::Jabber::Query")
- {
- return $_[0];
- }
- elsif (ref($_[0]) eq "")
- {
- $self->{TAG} = shift;
- $self->{TREE} = new XML::Stream::Node($self->{TAG});
- }
- else
- {
- $self->{TREE} = shift;
- $self->{TAG} = $self->{TREE}->get_tag();
- $self->ParseXMLNS();
- $self->ParseTree();
- }
- }
- else
- {
- $self->{TREE} = new XML::Stream::Node($self->{TAG});
- }
- return $self;
- }
- ##############################################################################
- #
- # AUTOLOAD - This function calls the main AutoLoad function in Jabber.pm
- #
- ##############################################################################
- sub AUTOLOAD
- {
- my $self = shift;
- &Net::Jabber::AutoLoad($self,$AUTOLOAD,@_);
- }
- $FUNCTIONS{XMLNS}->{XPath}->{Path} = '@xmlns';
- $FUNCTIONS{Query}->{XPath}->{Type} = 'node';
- $FUNCTIONS{Query}->{XPath}->{Path} = '*[@xmlns]';
- $FUNCTIONS{Query}->{XPath}->{Child} = 'Query';
- $FUNCTIONS{Query}->{XPath}->{Calls} = ['Get','Defined'];
- $FUNCTIONS{X}->{XPath}->{Type} = 'node';
- $FUNCTIONS{X}->{XPath}->{Path} = '*[@xmlns]';
- $FUNCTIONS{X}->{XPath}->{Child} = 'X';
- $FUNCTIONS{X}->{XPath}->{Calls} = ['Get','Defined'];
- my $ns;
- #-----------------------------------------------------------------------------
- # jabber:iq:agent
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:agent';
- $NAMESPACES{$ns}->{Agents}->{XPath}->{Type} = 'flag';
- $NAMESPACES{$ns}->{Agents}->{XPath}->{Path} = 'agents';
- $NAMESPACES{$ns}->{Description}->{XPath}->{Path} = 'description/text()';
- $NAMESPACES{$ns}->{JID}->{XPath}->{Type} = 'jid';
- $NAMESPACES{$ns}->{JID}->{XPath}->{Path} = '@jid';
- $NAMESPACES{$ns}->{Name}->{XPath}->{Path} = 'name/text()';
- $NAMESPACES{$ns}->{GroupChat}->{XPath}->{Type} = 'flag';
- $NAMESPACES{$ns}->{GroupChat}->{XPath}->{Path} = 'groupchat';
- $NAMESPACES{$ns}->{Register}->{XPath}->{Type} = 'flag';
- $NAMESPACES{$ns}->{Register}->{XPath}->{Path} = 'register';
- $NAMESPACES{$ns}->{Search}->{XPath}->{Type} = 'flag';
- $NAMESPACES{$ns}->{Search}->{XPath}->{Path} = 'search';
- $NAMESPACES{$ns}->{Service}->{XPath}->{Path} = 'service/text()';
- $NAMESPACES{$ns}->{Transport}->{XPath}->{Path} = 'transport/text()';
- $NAMESPACES{$ns}->{URL}->{XPath}->{Path} = 'url/text()';
- $NAMESPACES{$ns}->{Agent}->{XPath}->{Type} = 'master';
- #-----------------------------------------------------------------------------
- # jabber:iq:agents
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:agents';
- $NAMESPACES{$ns}->{Agent}->{XPath}->{Type} = 'node';
- $NAMESPACES{$ns}->{Agent}->{XPath}->{Path} = 'agent';
- $NAMESPACES{$ns}->{Agent}->{XPath}->{Child} = ['Query','jabber:iq:agent',"__netjabber__:skip_xmlns"];
- $NAMESPACES{$ns}->{Agent}->{XPath}->{Calls} = ['Add'];
- $NAMESPACES{$ns}->{Agents}->{XPath}->{Type} = 'children';
- $NAMESPACES{$ns}->{Agents}->{XPath}->{Path} = 'agent';
- $NAMESPACES{$ns}->{Agents}->{XPath}->{Child} = ['Query','jabber:iq:agent'];
- $NAMESPACES{$ns}->{Agents}->{XPath}->{Calls} = ['Get'];
- #-----------------------------------------------------------------------------
- # jabber:iq:auth
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:auth';
- $NAMESPACES{$ns}->{Digest}->{XPath}->{Path} = 'digest/text()';
- $NAMESPACES{$ns}->{Hash}->{XPath}->{Path} = 'hash/text()';
- $NAMESPACES{$ns}->{Password}->{XPath}->{Path} = 'password/text()';
- $NAMESPACES{$ns}->{Resource}->{XPath}->{Path} = 'resource/text()';
- $NAMESPACES{$ns}->{Sequence}->{XPath}->{Path} = 'sequence/text()';
- $NAMESPACES{$ns}->{Token}->{XPath}->{Path} = 'token/text()';
- $NAMESPACES{$ns}->{Username}->{XPath}->{Path} = 'username/text()';
- $NAMESPACES{$ns}->{Auth}->{XPath}->{Type} = 'master';
- #-----------------------------------------------------------------------------
- # jabber:iq:autoupdate
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:autoupdate';
- $NAMESPACES{$ns}->{Beta}->{XPath}->{Type} = 'node';
- $NAMESPACES{$ns}->{Beta}->{XPath}->{Path} = 'beta';
- $NAMESPACES{$ns}->{Beta}->{XPath}->{Child} = ['Query','__netjabber__:iq:autoupdate:release'];
- $NAMESPACES{$ns}->{Beta}->{XPath}->{Calls} = ['Add'];
- $NAMESPACES{$ns}->{Dev}->{XPath}->{Type} = 'node';
- $NAMESPACES{$ns}->{Dev}->{XPath}->{Path} = 'dev';
- $NAMESPACES{$ns}->{Dev}->{XPath}->{Child} = ['Query','__netjabber__:iq:autoupdate:release'];
- $NAMESPACES{$ns}->{Dev}->{XPath}->{Calls} = ['Add'];
- $NAMESPACES{$ns}->{Release}->{XPath}->{Type} = 'node';
- $NAMESPACES{$ns}->{Release}->{XPath}->{Path} = 'release';
- $NAMESPACES{$ns}->{Release}->{XPath}->{Child} = ['Query','__netjabber__:iq:autoupdate:release'];
- $NAMESPACES{$ns}->{Release}->{XPath}->{Calls} = ['Add'];
- $NAMESPACES{$ns}->{Releases}->{XPath}->{Type} = 'children';
- $NAMESPACES{$ns}->{Releases}->{XPath}->{Path} = '*';
- $NAMESPACES{$ns}->{Releases}->{XPath}->{Child} = ['Query','__netjabber__:iq:autoupdate:release'];
- $NAMESPACES{$ns}->{Releases}->{XPath}->{Calls} = ['Get'];
- #-----------------------------------------------------------------------------
- # __netjabber__:iq:autoupdate:release
- #-----------------------------------------------------------------------------
- $ns = '__netjabber__:iq:autoupdate:release';
- $NAMESPACES{$ns}->{Desc}->{XPath}->{Path} = 'desc/text()';
- $NAMESPACES{$ns}->{Priority}->{XPath}->{Path} = '@priority';
- $NAMESPACES{$ns}->{URL}->{XPath}->{Path} = 'url/text()';
- $NAMESPACES{$ns}->{Version}->{XPath}->{Path} = 'version/text()';
- $NAMESPACES{$ns}->{Release}->{XPath}->{Type} = 'master';
- #-----------------------------------------------------------------------------
- # jabber:iq:browse
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:browse';
- $NAMESPACES{$ns}->{Category}->{XPath}->{Path} = '@category';
- $NAMESPACES{$ns}->{JID}->{XPath}->{Type} = 'jid';
- $NAMESPACES{$ns}->{JID}->{XPath}->{Path} = '@jid';
- $NAMESPACES{$ns}->{Name}->{XPath}->{Path} = '@name';
- $NAMESPACES{$ns}->{Type}->{XPath}->{Path} = '@type';
- $NAMESPACES{$ns}->{NS}->{XPath}->{Type} = 'array';
- $NAMESPACES{$ns}->{NS}->{XPath}->{Path} = 'ns/text()';
- $NAMESPACES{$ns}->{Browse}->{XPath}->{Type} = 'master';
- $NAMESPACES{$ns}->{Item}->{XPath}->{Type} = 'node';
- $NAMESPACES{$ns}->{Item}->{XPath}->{Path} = '*[name() != "ns"]';
- $NAMESPACES{$ns}->{Item}->{XPath}->{Child} = ['Query','__netjabber__:iq:browse','__netjabber__:specifyname','item'];
- $NAMESPACES{$ns}->{Item}->{XPath}->{Calls} = ['Add'];
- $NAMESPACES{$ns}->{Items}->{XPath}->{Type} = 'children';
- $NAMESPACES{$ns}->{Items}->{XPath}->{Path} = '*[name() != "ns"]';
- $NAMESPACES{$ns}->{Items}->{XPath}->{Child} = ['Query','__netjabber__:iq:browse'];
- $NAMESPACES{$ns}->{Items}->{XPath}->{Calls} = ['Get'];
- #-----------------------------------------------------------------------------
- # __netjabber__:iq:browse
- #-----------------------------------------------------------------------------
- $ns = '__netjabber__:iq:browse';
- $NAMESPACES{$ns}->{Category}->{XPath}->{Path} = '@category';
- $NAMESPACES{$ns}->{JID}->{XPath}->{Type} = 'jid';
- $NAMESPACES{$ns}->{JID}->{XPath}->{Path} = '@jid';
- $NAMESPACES{$ns}->{Name}->{XPath}->{Path} = '@name';
- $NAMESPACES{$ns}->{Type}->{XPath}->{Path} = '@type';
- $NAMESPACES{$ns}->{NS}->{XPath}->{Type} = 'array';
- $NAMESPACES{$ns}->{NS}->{XPath}->{Path} = 'ns/text()';
- $NAMESPACES{$ns}->{Browse}->{XPath}->{Type} = 'master';
- $NAMESPACES{$ns}->{Item}->{XPath}->{Type} = 'node';
- $NAMESPACES{$ns}->{Item}->{XPath}->{Path} = '*[name() != "ns"]';
- $NAMESPACES{$ns}->{Item}->{XPath}->{Child} = ['Query','__netjabber__:iq:browse','__netjabber__:specifyname','item'];
- $NAMESPACES{$ns}->{Item}->{XPath}->{Calls} = ['Add'];
- $NAMESPACES{$ns}->{Items}->{XPath}->{Type} = 'children';
- $NAMESPACES{$ns}->{Items}->{XPath}->{Path} = '*[name() != "ns"]';
- $NAMESPACES{$ns}->{Items}->{XPath}->{Child} = ['Query','__netjabber__:iq:browse'];
- $NAMESPACES{$ns}->{Items}->{XPath}->{Calls} = ['Get'];
- #-----------------------------------------------------------------------------
- # jabber:iq:conference
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:conference';
- $NAMESPACES{$ns}->{ID}->{XPath}->{Path} = 'id/text()';
- $NAMESPACES{$ns}->{Name}->{XPath}->{Path} = 'name/text()';
- $NAMESPACES{$ns}->{Nick}->{XPath}->{Path} = 'nick/text()';
- $NAMESPACES{$ns}->{Privacy}->{XPath}->{Type} = 'flag';
- $NAMESPACES{$ns}->{Privacy}->{XPath}->{Path} = 'privacy';
- $NAMESPACES{$ns}->{Secret}->{XPath}->{Path} = 'secret/text()';
- $NAMESPACES{$ns}->{Conference}->{XPath}->{Type} = 'master';
- #-----------------------------------------------------------------------------
- # jabber:iq:filter
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:filter';
- $NAMESPACES{$ns}->{Rule}->{XPath}->{Type} = 'node';
- $NAMESPACES{$ns}->{Rule}->{XPath}->{Path} = 'rule';
- $NAMESPACES{$ns}->{Rule}->{XPath}->{Child} = ['Query','__netjabber__:iq:filter:rule'];
- $NAMESPACES{$ns}->{Rule}->{XPath}->{Calls} = ['Add'];
- $NAMESPACES{$ns}->{Rules}->{XPath}->{Type} = 'children';
- $NAMESPACES{$ns}->{Rules}->{XPath}->{Path} = 'rule';
- $NAMESPACES{$ns}->{Rules}->{XPath}->{Child} = ['Query','__netjabber__:iq:filter:rule'];
- $NAMESPACES{$ns}->{Rules}->{XPath}->{Calls} = ['Get'];
- #-----------------------------------------------------------------------------
- # __netjabber__:iq:filter:rule
- #-----------------------------------------------------------------------------
- $ns = '__netjabber__:iq:filter:rule';
- $NAMESPACES{$ns}->{Body}->{XPath}->{Path} = 'body/text()';
- $NAMESPACES{$ns}->{Continued}->{XPath}->{Path} = 'continued/text()';
- $NAMESPACES{$ns}->{Drop}->{XPath}->{Path} = 'drop/text()';
- $NAMESPACES{$ns}->{Edit}->{XPath}->{Path} = 'edit/text()';
- $NAMESPACES{$ns}->{Error}->{XPath}->{Path} = 'error/text()';
- $NAMESPACES{$ns}->{From}->{XPath}->{Path} = 'from/text()';
- $NAMESPACES{$ns}->{Offline}->{XPath}->{Path} = 'offline/text()';
- $NAMESPACES{$ns}->{Reply}->{XPath}->{Path} = 'reply/text()';
- $NAMESPACES{$ns}->{Resource}->{XPath}->{Path} = 'resource/text()';
- $NAMESPACES{$ns}->{Show}->{XPath}->{Path} = 'show/text()';
- $NAMESPACES{$ns}->{Size}->{XPath}->{Path} = 'size/text()';
- $NAMESPACES{$ns}->{Subject}->{XPath}->{Path} = 'subject/text()';
- $NAMESPACES{$ns}->{Time}->{XPath}->{Path} = 'time/text()';
- $NAMESPACES{$ns}->{Type}->{XPath}->{Path} = 'type/text()';
- $NAMESPACES{$ns}->{Unavailable}->{XPath}->{Path} = 'unavailable/text()';
- $NAMESPACES{$ns}->{Rule}->{XPath}->{Type} = 'master';
- #-----------------------------------------------------------------------------
- # jabber:iq:gateway
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:gateway';
- $NAMESPACES{$ns}->{JID}->{XPath}->{Type} = 'jid';
- $NAMESPACES{$ns}->{JID}->{XPath}->{Path} = 'jid/text()';
- $NAMESPACES{$ns}->{Desc}->{XPath}->{Path} = 'desc/text()';
- $NAMESPACES{$ns}->{Prompt}->{XPath}->{Path} = 'prompt/text()';
- $NAMESPACES{$ns}->{Gateway}->{XPath}->{Type} = 'master';
- #-----------------------------------------------------------------------------
- # jabber:iq:last
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:last';
- $NAMESPACES{$ns}->{Message}->{XPath}->{Path} = 'text()';
- $NAMESPACES{$ns}->{Seconds}->{XPath}->{Path} = '@seconds';
- $NAMESPACES{$ns}->{Last}->{XPath}->{Type} = 'master';
- #-----------------------------------------------------------------------------
- # jabber:iq:oob
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:oob';
- $NAMESPACES{$ns}->{Desc}->{XPath}->{Path} = 'desc/text()';
- $NAMESPACES{$ns}->{URL}->{XPath}->{Path} = 'url/text()';
- $NAMESPACES{$ns}->{Oob}->{XPath}->{Type} = 'master';
- #-----------------------------------------------------------------------------
- # jabber:iq:pass
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:pass';
- $NAMESPACES{$ns}->{Client}->{XPath}->{Path} = 'client/text()';
- $NAMESPACES{$ns}->{ClientPort}->{XPath}->{Path} = 'client/@port';
- $NAMESPACES{$ns}->{Close}->{XPath}->{Type} = 'flag';
- $NAMESPACES{$ns}->{Close}->{XPath}->{Path} = 'close';
- $NAMESPACES{$ns}->{Expire}->{XPath}->{Path} = 'expire/text()';
- $NAMESPACES{$ns}->{OneShot}->{XPath}->{Type} = 'flag';
- $NAMESPACES{$ns}->{OneShot}->{XPath}->{Path} = 'oneshot';
- $NAMESPACES{$ns}->{Proxy}->{XPath}->{Path} = 'proxy/text()';
- $NAMESPACES{$ns}->{ProxyPort}->{XPath}->{Path} = 'proxy/@port';
- $NAMESPACES{$ns}->{Server}->{XPath}->{Path} = 'server/text()';
- $NAMESPACES{$ns}->{ServerPort}->{XPath}->{Path} = 'server/@port';
- $NAMESPACES{$ns}->{Pass}->{XPath}->{Type} = 'master';
- #-----------------------------------------------------------------------------
- # jabber:iq:register
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:register';
- $NAMESPACES{$ns}->{Address}->{XPath}->{Path} = 'address/text()';
- $NAMESPACES{$ns}->{City}->{XPath}->{Path} = 'city/text()';
- $NAMESPACES{$ns}->{Date}->{XPath}->{Path} = 'date/text()';
- $NAMESPACES{$ns}->{Email}->{XPath}->{Path} = 'email/text()';
- $NAMESPACES{$ns}->{First}->{XPath}->{Path} = 'first/text()';
- $NAMESPACES{$ns}->{Instructions}->{XPath}->{Path} = 'instructions/text()';
- $NAMESPACES{$ns}->{Key}->{XPath}->{Path} = 'key/text()';
- $NAMESPACES{$ns}->{Last}->{XPath}->{Path} = 'last/text()';
- $NAMESPACES{$ns}->{Misc}->{XPath}->{Path} = 'misc/text()';
- $NAMESPACES{$ns}->{Name}->{XPath}->{Path} = 'name/text()';
- $NAMESPACES{$ns}->{Nick}->{XPath}->{Path} = 'nick/text()';
- $NAMESPACES{$ns}->{Password}->{XPath}->{Path} = 'password/text()';
- $NAMESPACES{$ns}->{Phone}->{XPath}->{Path} = 'phone/text()';
- $NAMESPACES{$ns}->{Registered}->{XPath}->{Type} = 'flag';
- $NAMESPACES{$ns}->{Registered}->{XPath}->{Path} = 'registered';
- $NAMESPACES{$ns}->{Remove}->{XPath}->{Type} = 'flag';
- $NAMESPACES{$ns}->{Remove}->{XPath}->{Path} = 'remove';
- $NAMESPACES{$ns}->{State}->{XPath}->{Path} = 'state/text()';
- $NAMESPACES{$ns}->{Text}->{XPath}->{Path} = 'text/text()';
- $NAMESPACES{$ns}->{URL}->{XPath}->{Path} = 'url/text()';
- $NAMESPACES{$ns}->{Username}->{XPath}->{Path} = 'username/text()';
- $NAMESPACES{$ns}->{Zip}->{XPath}->{Path} = 'zip/text()';
- $NAMESPACES{$ns}->{Register}->{XPath}->{Type} = 'master';
- #-----------------------------------------------------------------------------
- # jabber:iq:roster
- #-----------------------------------------------------------------------------
- $ns = 'jabber:iq:roster';
- $NAMESPACES{$ns}->{Item}->{XPath}->{Type} = 'node';
- $NAMESPACES{$ns}->{Item}->{XPath}->{Path} = 'item';
- $NAMESPACES{$ns}->{Item}->{XPath}->{Child} = ['Query','__netjabber__:iq:roster:item'];
- $NAMESPACES{$ns}->{Item}->{XPath}->{Calls} = ['Add'];
- $NAMESPACES{$ns}->{Items}->{XPath}->{Type} = 'children';
- $NAMESPACES{$ns}->{Items}->{XPath}->{Path} = 'item';
- $NAMESPACES{$ns}->{Items}->{XPath}->{Child} = ['Query','__netjabber__:iq:roster:item'];
- $NAMESPACES{$ns}->{Items}->{XPath}->{Calls} = ['Get'];…
Large files files are truncated, but you can click here to view the full file