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

Public Member Functions

virtual void Initialise (IConfigSource source)
 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...
 
virtual void PostInitialise ()
 
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 Close ()
 This is the inverse to Initialise. After a Close(), this instance won't be usable anymore. More...
 
virtual 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 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 CreateNewInventoryItem (IClientAPI remoteClient, UUID transactionID, UUID folderID, uint callbackID, string description, string name, sbyte invType, sbyte assetType, byte wearableType, uint nextOwnerMask, int creationDate)
 Create a new inventory item. Called when the client creates a new item directly within their inventory (e.g. by selecting a context inventory menu option). More...
 
virtual UUID CapsUpdateInventoryItemAsset (IClientAPI remoteClient, UUID itemID, byte[] data)
 Capability originating call to update the asset of an item in an agent's inventory More...
 
virtual bool UpdateInventoryItemAsset (UUID ownerID, InventoryItemBase item, AssetBase asset)
 
virtual List< InventoryItemBaseCopyToInventory (DeRezAction action, UUID folderID, List< SceneObjectGroup > objectGroups, IClientAPI remoteClient, bool asAttachment)
 Copy objects to a user's inventory. More...
 
virtual SceneObjectGroup RezObject (IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment)
 Rez an object into the scene from the user's inventory More...
 
virtual SceneObjectGroup RezObject (IClientAPI remoteClient, InventoryItemBase item, UUID assetID, Vector3 RayEnd, Vector3 RayStart, UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment)
 Rez an object into the scene from the user's inventory More...
 
virtual void TransferInventoryAssets (InventoryItemBase item, UUID sender, UUID receiver)
 
virtual bool CanGetAgentInventoryItem (IClientAPI remoteClient, UUID itemID, UUID requestID)
 Does the client have sufficient permissions to retrieve the inventory item? More...
 
virtual bool IsForeignUser (UUID userID, out string assetServerURL)
 

Protected Member Functions

virtual void InitialiseCommon (IConfigSource source)
 Common module config for both this and descendant classes. More...
 
virtual void OnNewClient (IClientAPI client)
 
virtual string GenerateLandmark (ScenePresence presence, out string prefix, out string suffix)
 
InventoryItemBase CopyBundleToInventory (DeRezAction action, UUID folderID, List< SceneObjectGroup > objlist, IClientAPI remoteClient, bool asAttachment)
 Copy a bundle of objects to inventory. If there is only one object, then this will create an object item. If there are multiple objects then these will be saved as a single coalesced item. More...
 
virtual void ExportAsset (UUID agentID, UUID assetID)
 
InventoryItemBase AddPermissions (InventoryItemBase item, SceneObjectGroup so, List< SceneObjectGroup > objsForEffectivePermissions, IClientAPI remoteClient)
 Add relevant permissions for an object to the item. More...
 
InventoryItemBase CreateItemForObject (DeRezAction action, IClientAPI remoteClient, SceneObjectGroup so, UUID folderID)
 Create an item using details for the given scene object. More...
 
void AddUserData (SceneObjectGroup sog)
 
virtual InventoryItemBase GetItem (UUID agentID, UUID itemID)
 

Protected Attributes

bool m_Enabled = false
 
Scene m_Scene
 
IUserManagement m_UserManagement
 

Properties

IUserManagement UserManagementModule [get]
 
bool CoalesceMultipleObjectsToInventory [get, set]
 
Type ReplaceableInterface [get]
 
virtual string Name [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 55 of file InventoryAccessModule.cs.

Member Function Documentation

InventoryItemBase OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.AddPermissions ( InventoryItemBase  item,
SceneObjectGroup  so,
List< SceneObjectGroup objsForEffectivePermissions,
IClientAPI  remoteClient 
)
inlineprotected

Add relevant permissions for an object to the item.

Parameters
item
so
objsForEffectivePermissions
remoteClient
Returns

Definition at line 578 of file InventoryAccessModule.cs.

virtual void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.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.Framework.InventoryAccess.HGInventoryAccessModule.

Definition at line 122 of file InventoryAccessModule.cs.

void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.AddUserData ( SceneObjectGroup  sog)
inlineprotected

Definition at line 1191 of file InventoryAccessModule.cs.

virtual bool OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.CanGetAgentInventoryItem ( IClientAPI  remoteClient,
UUID  itemID,
UUID  requestID 
)
inlinevirtual

Does the client have sufficient permissions to retrieve the inventory item?

Parameters
remoteClient
itemID
requestID
Returns

Implements OpenSim.Region.Framework.Interfaces.IInventoryAccessModule.

Definition at line 1202 of file InventoryAccessModule.cs.

virtual UUID OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.CapsUpdateInventoryItemAsset ( IClientAPI  remoteClient,
UUID  itemID,
byte[]  data 
)
inlinevirtual

Capability originating call to update the asset of an item in an agent's inventory

Parameters
remoteClient
itemID
data
Returns

Implements OpenSim.Region.Framework.Interfaces.IInventoryAccessModule.

Reimplemented in OpenSim.Region.CoreModules.Framework.InventoryAccess.HGInventoryAccessModule.

Definition at line 251 of file InventoryAccessModule.cs.

Here is the call graph for this function:

virtual void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.Close ( )
inlinevirtual

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 138 of file InventoryAccessModule.cs.

InventoryItemBase OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.CopyBundleToInventory ( DeRezAction  action,
UUID  folderID,
List< SceneObjectGroup objlist,
IClientAPI  remoteClient,
bool  asAttachment 
)
inlineprotected

Copy a bundle of objects to inventory. If there is only one object, then this will create an object item. If there are multiple objects then these will be saved as a single coalesced item.

Parameters
action
folderID
objlist
remoteClient
asAttachmentShould be true if the bundle is being copied as an attachment. This prevents attempted serialization of any script state which would abort any operating scripts.
Returns
The inventory item created by the copy

Definition at line 398 of file InventoryAccessModule.cs.

virtual List<InventoryItemBase> OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.CopyToInventory ( DeRezAction  action,
UUID  folderID,
List< SceneObjectGroup objectGroups,
IClientAPI  remoteClient,
bool  asAttachment 
)
inlinevirtual

Copy objects to a user's inventory.

Is it left to the caller to delete them from the scene if required.

Parameters
action
folderID
objectGroups
remoteClient
asAttachmentShould be true if the object(s) are begin taken as attachments. False otherwise.
Returns
A list of the items created. If there was more than one object and objects are not being coaleseced in inventory, then the order of items is in the same order as the input objects.

Implements OpenSim.Region.Framework.Interfaces.IInventoryAccessModule.

Definition at line 343 of file InventoryAccessModule.cs.

InventoryItemBase OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.CreateItemForObject ( DeRezAction  action,
IClientAPI  remoteClient,
SceneObjectGroup  so,
UUID  folderID 
)
inlineprotected

Create an item using details for the given scene object.

Parameters
action
remoteClient
so
folderID
Returns

Definition at line 654 of file InventoryAccessModule.cs.

void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.CreateNewInventoryItem ( IClientAPI  remoteClient,
UUID  transactionID,
UUID  folderID,
uint  callbackID,
string  description,
string  name,
sbyte  invType,
sbyte  assetType,
byte  wearableType,
uint  nextOwnerMask,
int  creationDate 
)
inline

Create a new inventory item. Called when the client creates a new item directly within their inventory (e.g. by selecting a context inventory menu option).

Parameters
remoteClient
transactionID
folderID
callbackID
description
name
invType
type
wearableType
nextOwnerMask

Definition at line 176 of file InventoryAccessModule.cs.

Here is the call graph for this function:

virtual void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.ExportAsset ( UUID  agentID,
UUID  assetID 
)
inlineprotectedvirtual
virtual string OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.GenerateLandmark ( ScenePresence  presence,
out string  prefix,
out string  suffix 
)
inlineprotectedvirtual
virtual InventoryItemBase OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.GetItem ( UUID  agentID,
UUID  itemID 
)
inlineprotectedvirtual
virtual void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.Initialise ( IConfigSource  source)
inlinevirtual

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.

Reimplemented in OpenSim.Region.CoreModules.Framework.InventoryAccess.HGInventoryAccessModule.

Definition at line 86 of file InventoryAccessModule.cs.

virtual void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.InitialiseCommon ( IConfigSource  source)
inlineprotectedvirtual

Common module config for both this and descendant classes.

Parameters
source

Definition at line 107 of file InventoryAccessModule.cs.

virtual bool OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.IsForeignUser ( UUID  userID,
out string  assetServerURL 
)
inlinevirtual
virtual void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.OnNewClient ( IClientAPI  client)
inlineprotectedvirtual

Reimplemented in OpenSim.Region.CoreModules.Framework.InventoryAccess.HGInventoryAccessModule.

Definition at line 133 of file InventoryAccessModule.cs.

Here is the call graph for this function:

virtual void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.PostInitialise ( )
inlinevirtual

Definition at line 118 of file InventoryAccessModule.cs.

virtual void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.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.

Definition at line 152 of file InventoryAccessModule.cs.

virtual void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.RemoveRegion ( Scene  scene)
inlinevirtual

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 145 of file InventoryAccessModule.cs.

virtual SceneObjectGroup OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.RezObject ( IClientAPI  remoteClient,
UUID  itemID,
Vector3  RayEnd,
Vector3  RayStart,
UUID  RayTargetID,
byte  BypassRayCast,
bool  RayEndIsIntersection,
bool  RezSelected,
bool  RemoveItem,
UUID  fromTaskID,
bool  attachment 
)
inlinevirtual

Rez an object into the scene from the user's inventory

FIXME: It would be really nice if inventory access modules didn't also actually do the work of rezzing things to the scene. The caller should be doing that, I think.

Parameters
remoteClient
itemID
RayEnd
RayStart
RayTargetID
BypassRayCast
RayEndIsIntersection
RezSelected
RemoveItem
fromTaskID
attachment
Returns
The SceneObjectGroup rezzed or null if rez was unsuccessful.

Implements OpenSim.Region.Framework.Interfaces.IInventoryAccessModule.

Reimplemented in OpenSim.Region.CoreModules.Framework.InventoryAccess.HGInventoryAccessModule.

Definition at line 817 of file InventoryAccessModule.cs.

Here is the call graph for this function:

virtual SceneObjectGroup OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.RezObject ( IClientAPI  remoteClient,
InventoryItemBase  item,
UUID  assetID,
Vector3  RayEnd,
Vector3  RayStart,
UUID  RayTargetID,
byte  BypassRayCast,
bool  RayEndIsIntersection,
bool  RezSelected,
bool  RemoveItem,
UUID  fromTaskID,
bool  attachment 
)
inlinevirtual

Rez an object into the scene from the user's inventory

FIXME: It would be really nice if inventory access modules didn't also actually do the work of rezzing things to the scene. The caller should be doing that, I think.

Parameters
remoteClient
itemThe item from which the object asset came. Can be null, in which case pre and post rez item adjustment and checks are not performed.
assetIDThe asset id for the object to rez.
RayEnd
RayStart
RayTargetID
BypassRayCast
RayEndIsIntersection
RezSelected
RemoveItem
fromTaskID
attachment
Returns
The SceneObjectGroup rezzed or null if rez was unsuccessful.

Implements OpenSim.Region.Framework.Interfaces.IInventoryAccessModule.

Definition at line 839 of file InventoryAccessModule.cs.

virtual void OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.TransferInventoryAssets ( InventoryItemBase  item,
UUID  sender,
UUID  receiver 
)
inlinevirtual
virtual bool OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.UpdateInventoryItemAsset ( UUID  ownerID,
InventoryItemBase  item,
AssetBase  asset 
)
inlinevirtual

Member Data Documentation

bool OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.m_Enabled = false
protected

Definition at line 59 of file InventoryAccessModule.cs.

Scene OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.m_Scene
protected

Definition at line 60 of file InventoryAccessModule.cs.

IUserManagement OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.m_UserManagement
protected

Definition at line 61 of file InventoryAccessModule.cs.

Property Documentation

bool OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.CoalesceMultipleObjectsToInventory
getset

Definition at line 72 of file InventoryAccessModule.cs.

virtual string OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.Name
get

Definition at line 82 of file InventoryAccessModule.cs.

Type OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.ReplaceableInterface
get

Definition at line 77 of file InventoryAccessModule.cs.

IUserManagement OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule.UserManagementModule
getprotected

Definition at line 63 of file InventoryAccessModule.cs.


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