Net::Jabber::XDB - Jabber XDB Library
Net::Jabber::XDB is a companion to the Net::Jabber module. It provides the user a simple interface to set and retrieve all parts of a Jabber XDB.
Net::Jabber::XDB differs from the other Net::Jabber::* modules in that the XMLNS of the data is split out into more submodules under XDB. For specifics on each module please view the documentation for each Net::Jabber::Data::* module. To see the list of avilable namspaces and modules see Net::Jabber::Data. To initialize the XDB with a Jabber <xdb/> you must pass it the XML::Parser Tree array. For example: my $xdb = new Net::Jabber::XDB(@tree); There has been a change from the old way of handling the callbacks. You no longer have to do the above, a Net::Jabber::XDB object is passed to the callback function for the xdb: use Net::Jabber; sub xdb { my ($XDB) = @_; . . . } You now have access to all of the retrieval functions available. To create a new xdb to send to the server: use Net::Jabber; $XDB = new Net::Jabber::XDB(); $XDBType = $XDB->NewData( type ); $XDBType->SetXXXXX("yyyyy"); Now you can call the creation functions for the XDB, and for the <data/> on the new Data object itself. See below for the <xdb/> functions, and in each data module for those functions. For more information about the array format being passed to the CallBack please read the Net::Jabber::Client documentation.
$to = $XDB->GetTo(); $toJID = $XDB->GetTo("jid"); $from = $XDB->GetFrom(); $fromJID = $XDB->GetFrom("jid"); $type = $XDB->GetType(); $data = $XDB->GetData(); $dataTree = $XDB->GetDataTree(); $str = $XDB->GetXML(); @xdb d = $XDB->GetTree();
$XDB->SetXDB(tYpE=>"get", tO=>"bob@jabber.org"); $XDB->SetTo("bob@jabber.org"); $XDB->SetFrom("me\@jabber.org"); $XDB->SetType("set"); $XDBObject = $XDB->NewData("jabber:iq:auth"); $XDBObject = $XDB->NewData("jabber:iq:roster"); $xdbReply = $XDB->Reply(); $xdbReply = $XDB->Reply("client"); $xdbReply = $XDB->Reply("transport");
$test = $XDB->DefinedTo(); $test = $XDB->DefinedFrom(); $test = $XDB->DefinedType();
GetTo() - returns either a string with the Jabber Identifier, GetTo("jid") or a Net::Jabber::JID object for the person who is going to receive the <xdb/>. To get the JID object set the string to "jid", otherwise leave blank for the text string. GetFrom() - returns either a string with the Jabber Identifier, GetFrom("jid") or a Net::Jabber::JID object for the person who sent the <xdb/>. To get the JID object set the string to "jid", otherwise leave blank for the text string. GetType() - returns a string with the type <xdb/> this is. GetData() - returns a Net::Jabber::Data object that contains the data in the <data/> of the <xdb/>. GetDataTree() - returns an XML::Parser::Tree object that contains the data in the <data/> of the <xdb/>. GetXML() - returns the XML string that represents the <xdb/>. This is used by the Send() function in Client.pm to send this object as a Jabber XDB. GetTree() - returns an array that contains the <xdb/> tag in XML::Parser Tree format.
SetXDB(to=>string|JID, - set multiple fields in the <xdb/> at one from=>string|JID, time. This is a cumulative and over id=>string, writing action. If you set the "to" type=>string, attribute twice, the second setting is errorcode=>string, what is used. If you set the status, and error=>string) then set the priority then both will be in the <xdb/> tag. For valid settings read the specific Set functions below. SetTo(string) - sets the to attribute. You can either pass a string SetTo(JID) or a JID object. They must be a valid Jabber Identifiers or the server will return an error message. (ie. jabber:bob@jabber.org, etc...) SetFrom(string) - sets the from attribute. You can either pass a string SetFrom(JID) or a JID object. They must be a valid Jabber Identifiers or the server will return an error message. (ie. jabber:bob@jabber.org, etc...) SetType(string) - sets the type attribute. Valid settings are: get request information set set information result results of a get NewData(string) - creates a new Net::Jabber::Data object with the namespace in the string. In order for this function to work with a custom namespace, you must define and register that namespace with the XDB module. For more information please read the documentation for Net::Jabber::Data. NOTE: Jabber does not support custom XDBs at the time of this writing. This was just including in case they do at some point. Reply(type=>string) - creates a new XDB object and populates the to/from fields. The type will be set in the <xdb/>.
DefinedTo() - returns 1 if the to attribute is defined in the <xdb/>, 0 otherwise. DefinedFrom() - returns 1 if the from attribute is defined in the <xdb/>, 0 otherwise. DefinedType() - returns 1 if the type attribute is defined in the <xdb/>, 0 otherwise.
By Ryan Eatmon in May of 2000 for http://jabber.org..
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Net::Jabber, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::Jabber
CPAN shell
perl -MCPAN -e shell install Net::Jabber
For more information on module installation, please visit the detailed CPAN module installation guide.