OpenSim
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Properties | List of all members
OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule Class Reference
Inheritance diagram for OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule:
Inheritance graph
[legend]
Collaboration diagram for OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule:
Collaboration graph
[legend]

Classes

class  UserFriendData
 

Public Member Functions

void Initialise (IConfigSource config)
 This is called to initialize the region module. For shared modules, this is called exactly once, after creating the single (shared) instance. For non-shared modules, this is called once on each instance, after the instace for the region has been created. More...
 
void PostInitialise ()
 This is called exactly once after all the shared region-modules have been instanciated and IRegionModuleBase.Initialised. More...
 
void Close ()
 This is the inverse to Initialise. After a Close(), this instance won't be usable anymore. More...
 
virtual void AddRegion (Scene scene)
 This is called whenever a Scene is added. For shared modules, this can happen several times. For non-shared modules, this happens exactly once, after Initialise has been called. More...
 
virtual void RegionLoaded (Scene scene)
 This will be called once for every scene loaded. In a shared module this will be multiple times in one instance, while a nonshared module instance will only be called once. This method is called after AddRegion has been called in all modules for that scene, providing an opportunity to request another module's interface, or hook an event from another module. More...
 
void RemoveRegion (Scene scene)
 This is called whenever a Scene is removed. For shared modules, this can happen several times. For non-shared modules, this happens exactly once, if the scene this instance is associated with is removed. More...
 
virtual int GetRightsGrantedByFriend (UUID principalID, UUID friendID)
 Get permissions granted by a friend. More...
 
virtual bool SendFriendsOnlineIfNeeded (IClientAPI client)
 
IClientAPI LocateClientObject (UUID agentID)
 Find the client for a ID More...
 
void AddFriendship (IClientAPI client, UUID friendID)
 Add a friendship between two users. More...
 
void RemoveFriendship (IClientAPI client, UUID exfriendID)
 Remove a friendship between two users. More...
 
void FindFriend (IClientAPI remoteClient, UUID HunterID, UUID PreyID)
 
void GrantRights (IClientAPI remoteClient, UUID friendID, int rights)
 Grant permissions for a friend. More...
 
virtual bool LocalFriendshipOffered (UUID toID, GridInstantMessage im)
 
bool LocalFriendshipApproved (UUID userID, string userName, UUID friendID)
 
bool LocalFriendshipDenied (UUID userID, string userName, UUID friendID)
 
bool LocalFriendshipTerminated (UUID userID, UUID exfriendID)
 
bool LocalGrantRights (UUID userID, UUID friendID, int oldRights, int newRights)
 
bool LocalStatusNotification (UUID userID, UUID friendID, bool online)
 
FriendInfo[] GetFriendsFromCache (UUID userID)
 Get friends from local cache only More...
 
virtual FriendInfo[] GetFriendsFromService (IClientAPI client)
 
bool AreFriendsCached (UUID userID)
 Are friends cached on this simulator for a particular user? More...
 

Protected Member Functions

virtual void InitModule (IConfigSource config)
 
virtual bool CacheFriends (IClientAPI client)
 Cache the friends list or increment the refcount for the existing friends list. More...
 
virtual string FriendshipMessage (string friendID)
 
virtual bool GetAgentInfo (UUID scopeID, string fid, out UUID agentID, out string first, out string last)
 
virtual void GetOnlineFriends (UUID userID, List< string > friendList, List< UUID > online)
 
virtual void StatusNotify (List< FriendInfo > friendList, UUID userID, bool online)
 
virtual void OnInstantMessage (IClientAPI client, GridInstantMessage im)
 
virtual bool ForwardFriendshipOffer (UUID agentID, UUID friendID, GridInstantMessage im)
 
virtual string GetFriendshipRequesterName (UUID agentID)
 
virtual void OnApproveFriendRequest (IClientAPI client, UUID friendID, List< UUID > callingCardFolders)
 
virtual FriendInfo GetFriend (FriendInfo[] friends, UUID friendID)
 
void UpdateLocalCache (UUID userID, UUID friendID, int rights)
 Update local cache only More...
 
void RecacheFriends (IClientAPI client)
 
virtual bool StoreRights (UUID agentID, UUID friendID, int rights)
 
virtual void StoreBackwards (UUID friendID, UUID agentID)
 
virtual void StoreFriendships (UUID agentID, UUID friendID)
 
virtual bool DeleteFriendship (UUID agentID, UUID exfriendID)
 

Protected Attributes

bool m_Enabled = false
 
List< Scenem_Scenes = new List<Scene>()
 
IPresenceService m_PresenceService = null
 
IFriendsService m_FriendsService = null
 
FriendsSimConnector m_FriendsSimConnector
 
Dictionary< UUID, UserFriendDatam_Friends = new Dictionary<UUID, UserFriendData>()
 Cache friends lists for users. More...
 
HashSet< UUID > m_NeedsToNotifyStatus = new HashSet<UUID>()
 Maintain a record of clients that need to notify about their online status. This only needs to be done on login. Subsequent online/offline friend changes are sent by a different mechanism. More...
 
HashSet< UUID > m_NeedsListOfOnlineFriends = new HashSet<UUID>()
 Maintain a record of viewers that need to be sent notifications for friends that are online. This only needs to be done on login. Subsequent online/offline friend changes are sent by a different mechanism. More...
 

Static Protected Attributes

static readonly FriendInfo[] EMPTY_FRIENDS = new FriendInfo[0]
 

Properties

IPresenceService PresenceService [get]
 
IFriendsService FriendsService [get]
 
IGridService GridService [get]
 
IUserAccountService UserAccountService [get]
 
IScene Scene [get]
 
virtual string Name [get]
 
Type ReplaceableInterface [get]
 
- Properties inherited from OpenSim.Region.Framework.Interfaces.IRegionModuleBase
string Name [get]
 
Type ReplaceableInterface [get]
 If this returns non-null, it is the type of an interface that this module intends to register. This will cause the loader to defer loading of this module until all other modules have been loaded. If no other module has registered the interface by then, this module will be activated, else it will remain inactive, letting the other module take over. This should return non-null ONLY in modules that are intended to be easily replaceable, e.g. stub implementations that the developer expects to be replaced by third party provided modules. More...
 

Detailed Description

Definition at line 54 of file FriendsModule.cs.

Member Function Documentation

void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.AddFriendship ( IClientAPI  client,
UUID  friendID 
)
inline

Add a friendship between two users.

Ultimately, it would be more useful to take in a user account here rather than having to have a user present in the scene.

Parameters
client
friendID

Implements OpenSim.Region.Framework.Interfaces.IFriendsModule.

Definition at line 633 of file FriendsModule.cs.

virtual void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.AddRegion ( Scene  scene)
inlinevirtual

This is called whenever a Scene is added. For shared modules, this can happen several times. For non-shared modules, this happens exactly once, after Initialise has been called.

Parameters
sceneA Scene

Implements OpenSim.Region.Framework.Interfaces.IRegionModuleBase.

Reimplemented in OpenSim.Region.CoreModules.Avatar.Friends.HGFriendsModule.

Definition at line 208 of file FriendsModule.cs.

bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.AreFriendsCached ( UUID  userID)
inline

Are friends cached on this simulator for a particular user?

Parameters
userID
Returns

Implements OpenSim.Region.Framework.Interfaces.IFriendsModule.

Definition at line 1033 of file FriendsModule.cs.

virtual bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.CacheFriends ( IClientAPI  client)
inlineprotectedvirtual

Cache the friends list or increment the refcount for the existing friends list.

Parameters
client
Returns
Returns true if the list was fetched, false if it wasn't

Reimplemented in OpenSim.Region.CoreModules.Avatar.Friends.HGFriendsModule.

Definition at line 285 of file FriendsModule.cs.

void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.Close ( )
inline

This is the inverse to Initialise. After a Close(), this instance won't be usable anymore.

Implements OpenSim.Region.Framework.Interfaces.IRegionModuleBase.

Definition at line 204 of file FriendsModule.cs.

virtual bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.DeleteFriendship ( UUID  agentID,
UUID  exfriendID 
)
inlineprotectedvirtual
void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.FindFriend ( IClientAPI  remoteClient,
UUID  HunterID,
UUID  PreyID 
)
inline

Definition at line 730 of file FriendsModule.cs.

Here is the call graph for this function:

virtual bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.ForwardFriendshipOffer ( UUID  agentID,
UUID  friendID,
GridInstantMessage  im 
)
inlineprotectedvirtual
virtual string OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.FriendshipMessage ( string  friendID)
inlineprotectedvirtual
virtual bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.GetAgentInfo ( UUID  scopeID,
string  fid,
out UUID  agentID,
out string  first,
out string  last 
)
inlineprotectedvirtual
virtual FriendInfo OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.GetFriend ( FriendInfo[]  friends,
UUID  friendID 
)
inlineprotectedvirtual
FriendInfo [] OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.GetFriendsFromCache ( UUID  userID)
inline

Get friends from local cache only

Parameters
userID
Returns
An empty array if the user has no friends or friends have not been cached.

Implements OpenSim.Region.Framework.Interfaces.IFriendsModule.

Definition at line 981 of file FriendsModule.cs.

virtual FriendInfo [] OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.GetFriendsFromService ( IClientAPI  client)
inlinevirtual
virtual string OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.GetFriendshipRequesterName ( UUID  agentID)
inlineprotectedvirtual
virtual void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.GetOnlineFriends ( UUID  userID,
List< string >  friendList,
List< UUID >  online 
)
inlineprotectedvirtual
virtual int OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.GetRightsGrantedByFriend ( UUID  userID,
UUID  friendID 
)
inlinevirtual

Get permissions granted by a friend.

Parameters
userIDThe user.
friendIDThe friend that granted.
Returns
The permissions. These come from the FriendRights enum.

Implements OpenSim.Region.Framework.Interfaces.IFriendsModule.

Definition at line 246 of file FriendsModule.cs.

void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.GrantRights ( IClientAPI  remoteClient,
UUID  friendID,
int  perms 
)
inline

Grant permissions for a friend.

This includes giving them the ability to see when the user is online and permission to edit the user's objects. Granting lower permissions than the friend currently has will rescind the extra permissions.

Parameters
remoteClientThe user granting the permissions.
friendIDThe friend.
permsThese come from the FriendRights enum.

Implements OpenSim.Region.Framework.Interfaces.IFriendsModule.

Definition at line 788 of file FriendsModule.cs.

void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.Initialise ( IConfigSource  source)
inline

This is called to initialize the region module. For shared modules, this is called exactly once, after creating the single (shared) instance. For non-shared modules, this is called once on each instance, after the instace for the region has been created.

Parameters
sourceA IConfigSource

Implements OpenSim.Region.Framework.Interfaces.IRegionModuleBase.

Definition at line 157 of file FriendsModule.cs.

virtual void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.InitModule ( IConfigSource  config)
inlineprotectedvirtual
bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.LocalFriendshipApproved ( UUID  userID,
string  userName,
UUID  friendID 
)
inline

Definition at line 873 of file FriendsModule.cs.

bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.LocalFriendshipDenied ( UUID  userID,
string  userName,
UUID  friendID 
)
inline

Definition at line 899 of file FriendsModule.cs.

virtual bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.LocalFriendshipOffered ( UUID  toID,
GridInstantMessage  im 
)
inlinevirtual
bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.LocalFriendshipTerminated ( UUID  userID,
UUID  exfriendID 
)
inline

Definition at line 915 of file FriendsModule.cs.

bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.LocalGrantRights ( UUID  userID,
UUID  friendID,
int  oldRights,
int  newRights 
)
inline

Definition at line 931 of file FriendsModule.cs.

bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.LocalStatusNotification ( UUID  userID,
UUID  friendID,
bool  online 
)
inline

Definition at line 959 of file FriendsModule.cs.

IClientAPI OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.LocateClientObject ( UUID  agentID)
inline

Find the client for a ID

Definition at line 473 of file FriendsModule.cs.

virtual void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.OnApproveFriendRequest ( IClientAPI  client,
UUID  friendID,
List< UUID >  callingCardFolders 
)
inlineprotectedvirtual
virtual void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.OnInstantMessage ( IClientAPI  client,
GridInstantMessage  im 
)
inlineprotectedvirtual
void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.PostInitialise ( )
inline

This is called exactly once after all the shared region-modules have been instanciated and IRegionModuleBase.Initialised.

Implements OpenSim.Region.Framework.Interfaces.ISharedRegionModule.

Definition at line 200 of file FriendsModule.cs.

void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.RecacheFriends ( IClientAPI  client)
inlineprotected

Definition at line 1020 of file FriendsModule.cs.

virtual void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.RegionLoaded ( Scene  scene)
inlinevirtual

This will be called once for every scene loaded. In a shared module this will be multiple times in one instance, while a nonshared module instance will only be called once. This method is called after AddRegion has been called in all modules for that scene, providing an opportunity to request another module's interface, or hook an event from another module.

Parameters
sceneA Scene

Implements OpenSim.Region.Framework.Interfaces.IRegionModuleBase.

Reimplemented in OpenSim.Region.CoreModules.Avatar.Friends.HGFriendsModule.

Definition at line 224 of file FriendsModule.cs.

void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.RemoveFriendship ( IClientAPI  client,
UUID  exFriendID 
)
inline

Remove a friendship between two users.

Ultimately, it would be more useful to take in a user account here rather than having to have a user present in the scene.

Parameters
client
exFriendID

Implements OpenSim.Region.Framework.Interfaces.IFriendsModule.

Definition at line 700 of file FriendsModule.cs.

void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.RemoveRegion ( Scene  scene)
inline

This is called whenever a Scene is removed. For shared modules, this can happen several times. For non-shared modules, this happens exactly once, if the scene this instance is associated with is removed.

Parameters
sceneA Scene

Implements OpenSim.Region.Framework.Interfaces.IRegionModuleBase.

Definition at line 226 of file FriendsModule.cs.

virtual bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.SendFriendsOnlineIfNeeded ( IClientAPI  client)
inlinevirtual
virtual void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.StatusNotify ( List< FriendInfo friendList,
UUID  userID,
bool  online 
)
inlineprotectedvirtual
virtual void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.StoreBackwards ( UUID  friendID,
UUID  agentID 
)
inlineprotectedvirtual
virtual void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.StoreFriendships ( UUID  agentID,
UUID  friendID 
)
inlineprotectedvirtual
virtual bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.StoreRights ( UUID  agentID,
UUID  friendID,
int  rights 
)
inlineprotectedvirtual
void OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.UpdateLocalCache ( UUID  userID,
UUID  friendID,
int  rights 
)
inlineprotected

Update local cache only

Parameters
userID
friendID
rights

Definition at line 1000 of file FriendsModule.cs.

Member Data Documentation

readonly FriendInfo [] OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.EMPTY_FRIENDS = new FriendInfo[0]
staticprotected

Definition at line 78 of file FriendsModule.cs.

bool OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.m_Enabled = false
protected

Definition at line 58 of file FriendsModule.cs.

Dictionary<UUID, UserFriendData> OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.m_Friends = new Dictionary<UUID, UserFriendData>()
protected

Cache friends lists for users.

This is a complex and error-prone thing to do. At the moment, we assume that the efficiency gained in permissions checks outweighs the disadvantages of that complexity.

Definition at line 93 of file FriendsModule.cs.

IFriendsService OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.m_FriendsService = null
protected

Definition at line 83 of file FriendsModule.cs.

FriendsSimConnector OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.m_FriendsSimConnector
protected

Definition at line 84 of file FriendsModule.cs.

HashSet<UUID> OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.m_NeedsListOfOnlineFriends = new HashSet<UUID>()
protected

Maintain a record of viewers that need to be sent notifications for friends that are online. This only needs to be done on login. Subsequent online/offline friend changes are sent by a different mechanism.

Definition at line 105 of file FriendsModule.cs.

HashSet<UUID> OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.m_NeedsToNotifyStatus = new HashSet<UUID>()
protected

Maintain a record of clients that need to notify about their online status. This only needs to be done on login. Subsequent online/offline friend changes are sent by a different mechanism.

Definition at line 99 of file FriendsModule.cs.

IPresenceService OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.m_PresenceService = null
protected

Definition at line 82 of file FriendsModule.cs.

List<Scene> OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.m_Scenes = new List<Scene>()
protected

Definition at line 80 of file FriendsModule.cs.

Property Documentation

IFriendsService OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.FriendsService
get

Definition at line 122 of file FriendsModule.cs.

IGridService OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.GridService
getprotected

Definition at line 136 of file FriendsModule.cs.

virtual string OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.Name
get

Definition at line 235 of file FriendsModule.cs.

IPresenceService OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.PresenceService
getprotected

Definition at line 108 of file FriendsModule.cs.

Type OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.ReplaceableInterface
get

Definition at line 240 of file FriendsModule.cs.

IScene OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.Scene
get

Definition at line 146 of file FriendsModule.cs.

IUserAccountService OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.UserAccountService
get

Definition at line 141 of file FriendsModule.cs.


The documentation for this class was generated from the following file: