Hmmmm

I seem to be making progress but I do not understand why:)  Perhaps someone can explain what is going on.  In the IQ callback, I can get the first item in the roster by referencing it as follows with the Net::Jabber 1.0028 pm release. 

my @query = $iq->GetQuery();
print ("name = ", $query[0]->GetItems->GetName(), "\n");
print ("JID = ", $query[0]->GetItems->GetJID(), "\n"); 
print ("Subscription = ", $query[0]->GetItems->GetSubscription(), "\n");
print ("Group = ", $query[0]->GetItems->GetGroup(), "\n");

How do I get the second item?  Using $query[1] does not do not as the array appears to have only one element although there are 10 items in the roster.. 

What does the GetItem object do?  It is typed as a Master but I am not sure I understand what that means..

Any help is greatly appreciated as I get (slowly) through this learning curve.

Regards
 

 rebbaj rebbaj <[EMAIL PROTECTED]> wrote:

Thanks Curtis,

I have not seen any referenced to the RosterParse in Jabber::Net 1.0028.  It only seems to show up in the 1.0024 documentation.  Is there a way to do this using 1.0028?

 Curtis Hawthorne <[EMAIL PROTECTED]> wrote:

Rebbaj,

I think what you want is the RosterParse method in
Net::Jabber. It returns a hash with all the information
you need. For instance:

sub InIQ {
my $sid = shift;
my $iq = shift;

my %rosterupdate = $iq->RosterParse($iq);

foreach (keys %rosterupdate) {
print "Name: ", $_->{name}, "\n";
print "Subscription: ", $_->{subscription}, "\n";
print "Ask: ", $_->{ask}, "\n";
print "Groups: ", $_->{groups}, "\n";
}
}

From there you could turn it into an array if you wanted,
but I would think a hash would be easier to work with.

Curtis H.

--- rebbaj rebbaj <[EMAIL PROTECTED]>wrote:
>
> After some more testing, I got the impression that the
> following callback logic would work. Getting the s
> does not seem to work. Has anybody ever made this work
> before?? > sub InIQ
> {
> my $sid = shift;
> my $iq = shift;
> my $id = $iq->GetID();
> print "id = $id\n"; # works
> my $type = $iq->GetType();
> print "type = $type\n"; #works
> my $xmlns = $iq->GetQueryXMLNS();
> print "xmlns = $xmlns\n"; #works
> foreach my $query ($iq->GetQuery->GetItems) {
> print ("JID = $query->GetItem()->GetJID\n"); # prints a
> hash
> print ("Name = $query->GetItem()->GetName\n"); #
> prints a hash
> print ("Subscription =
> $query->GetItem()->GetSubscription\n"); # prints a hash
> print ("Group = $query->GetItem()->GetGroup[0]\n"); #
> prints a hash
> }
> }


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
_______________________________________________
jdev mailing list[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev



With Yahoo! Mail you can get a bigger mailbox -- choose a size that fits your needs



With Yahoo! Mail you can get a bigger mailbox -- choose a size that fits your needs

Reply via email to