Net::RVP::User - RVP user encapsulation
my $user = $rvp->user('Fred_Smith'); $user->watch() or die 'no such user'; print "Email for ".($user->display())." is ".$user->email()."\n";
Create new user object.
Return the short name e.g. jsmith, bob_jones.
Return the URL representing the user.
Return the display name for the user.
Return the user email address.
Return user state (without the namespace prefix) e.g. 'idle', 'online', 'offline', etc.
Send XML tree for NOTIFY property change event (under r:notification).
Read all available properties for the user.
Returns hashref on success, false on failure. Some possible keys are: user (this object), href (the canonical URL), and properties: d:displayname, r:mobile-state, r:mobile-description, r:email, r:state (note that we normalize the XML so the namespaces will stay the same).
Subscribe to notifications for this user; renew if already subscribed.
Returns subscription timeout if successful, false otherwise.
Stop watching (unsubscribe).
Note that we don't unsubscribe on object destruction (because global destruction order may be wrong), but we do when the RVP object is destroyed.
User name should be the URL name final part e.g. 'jsmith'. If the 'no cache' flag is set, DON'T use the cache (default: use cache).
Properties may be 'd:' (DAV) or 'r:' (RVP) or 'a:' (ACL), e.g. 'd:displayname'.
Returns value, undef on failure.
Set property. Returns true on success, false on failure.
This should only be done on our own node, it should fail with an access error on others.
Get ACL for user.
Returns true on success, false on failure (this method isn't needed so we don't bother to parse out the XML yet, sorry).
Note that although it isn't shown in the Microsoft RVP "specification", ACLs can also be set although this seems to be unnecessary for the most part (although perhaps handy e.g. to disallow someone from receiving presence information about onesself).
Sent when there's activity. Updates the last activity time.
Returns lag time since last activity, undef if no activity.
David Robins <email@example.com>.