Merge branch 'master' into careminster

Conflicts:
	OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
	OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
	OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
	OpenSim/Region/Framework/Scenes/ScenePresence.cs
	OpenSim/Region/Framework/Scenes/SimStatsReporter.cs
avinationmerge
Melanie 2013-05-16 21:59:14 +01:00
commit 42c82b564e
31 changed files with 13706 additions and 13684 deletions

View File

@ -186,7 +186,6 @@ namespace OpenSim.Groups
public UUID CreateGroup(UUID RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment,
bool allowPublish, bool maturePublish, UUID founderID, out string reason)
{
m_log.DebugFormat("[Groups]: Creating group {0}", name);
reason = string.Empty;
if (m_UserManagement.IsLocalGridUser(RequestingAgentID))
return m_LocalGroupsConnector.CreateGroup(RequestingAgentID, name, charter, showInList, insigniaID,

View File

@ -170,11 +170,16 @@ namespace OpenSim.Groups
}
grec = m_GroupsService.GetGroupRecord(RequestingAgentID, grec.GroupID);
if (grec == null)
NullResult(result, "Internal Error");
if (grec.GroupID != UUID.Zero)
{
grec = m_GroupsService.GetGroupRecord(RequestingAgentID, grec.GroupID);
if (grec == null)
NullResult(result, "Internal Error");
else
result["RESULT"] = GroupsDataUtils.GroupRecord(grec);
}
else
result["RESULT"] = GroupsDataUtils.GroupRecord(grec);
NullResult(result, reason);
}
string xmlString = ServerUtils.BuildXmlResponse(result);

View File

@ -130,6 +130,13 @@ namespace OpenSim.Groups
{
reason = string.Empty;
// Check if the group already exists
if (m_Database.RetrieveGroup(name) != null)
{
reason = "A group with that name already exists";
return UUID.Zero;
}
// Create the group
GroupData data = new GroupData();
data.GroupID = UUID.Random();

View File

@ -429,7 +429,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (!assetServerURL.EndsWith("/") && !assetServerURL.EndsWith("="))
assetServerURL = assetServerURL + "/";
m_log.DebugFormat("[J2KIMAGE]: texture {0} not found in local asset storage. Trying user's storage.", assetServerURL + id);
// m_log.DebugFormat("[J2KIMAGE]: texture {0} not found in local asset storage. Trying user's storage.", assetServerURL + id);
AssetService.Get(assetServerURL + id, InventoryAccessModule, AssetReceived);
return;
}

View File

@ -1416,7 +1416,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// We only want to send initial data to new clients, not ones which are being converted from child to root.
if (client != null)
client.SceneAgent.SendInitialDataToMe();
{
AgentCircuitData aCircuit = m_scene.AuthenticateHandler.GetAgentCircuitData(uccp.CircuitCode.Code);
bool tp = (aCircuit.teleportFlags > 0);
if (!tp)
client.SceneAgent.SendInitialDataToMe();
}
// Now we know we can handle more data
Thread.Sleep(200);

View File

@ -942,6 +942,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
EnableChildAgents(sp);
// Finally, kill the agent we just created at the destination.
// XXX: Possibly this should be done asynchronously.
Scene.SimulationService.CloseAgent(finalDestination, sp.UUID);
}

View File

@ -322,7 +322,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
// "[LOCAL SIMULATION CONNECTOR]: Found region {0} {1} to send AgentUpdate",
// s.RegionInfo.RegionName, destination.RegionHandle);
Util.FireAndForget(delegate { m_scenes[destination.RegionID].IncomingCloseAgent(id, false); });
m_scenes[destination.RegionID].IncomingCloseAgent(id, false);
return true;
}
//m_log.Debug("[LOCAL COMMS]: region not found in SendCloseAgent");

View File

@ -417,13 +417,13 @@ namespace OpenSim.Region.Framework.Scenes
// is not allowed to change the export flag.
bool denyExportChange = false;
m_log.InfoFormat("[XXX]: B: {0} O: {1} E: {2}", itemUpd.BasePermissions, itemUpd.CurrentPermissions, itemUpd.EveryOnePermissions);
// m_log.DebugFormat("[XXX]: B: {0} O: {1} E: {2}", itemUpd.BasePermissions, itemUpd.CurrentPermissions, itemUpd.EveryOnePermissions);
// If the user is not the creator or doesn't have "E" in both "B" and "O", deny setting export
if ((item.BasePermissions & (uint)(PermissionMask.All | PermissionMask.Export)) != (uint)(PermissionMask.All | PermissionMask.Export) || (item.CurrentPermissions & (uint)PermissionMask.Export) == 0 || item.CreatorIdAsUuid != item.Owner)
denyExportChange = true;
m_log.InfoFormat("[XXX]: Deny Export Update {0}", denyExportChange);
// m_log.DebugFormat("[XXX]: Deny Export Update {0}", denyExportChange);
// If it is already set, force it set and also force full perm
// else prevent setting it. It can and should never be set unless
@ -447,7 +447,7 @@ namespace OpenSim.Region.Framework.Scenes
// If the new state is exportable, force full perm
if ((itemUpd.EveryOnePermissions & (uint)PermissionMask.Export) != 0)
{
m_log.InfoFormat("[XXX]: Force full perm");
// m_log.DebugFormat("[XXX]: Force full perm");
itemUpd.NextPermissions = (uint)(PermissionMask.All);
}
}

View File

@ -3593,15 +3593,12 @@ namespace OpenSim.Region.Framework.Scenes
if (closeChildAgents && CapsModule != null)
CapsModule.RemoveCaps(agentID, avatar.ControllingClient.CircuitCode);
// // REFACTORING PROBLEM -- well not really a problem, but just to point out that whatever
// // this method is doing is HORRIBLE!!!
// Commented pending deletion since this method no longer appears to do anything at all
// avatar.Scene.NeedSceneCacheClear(avatar.UUID);
if (closeChildAgents && !isChildAgent)
{
List<ulong> regions = avatar.KnownRegionHandles;
regions.Remove(RegionInfo.RegionHandle);
// This ends up being done asynchronously so that a logout isn't held up where there are many present but unresponsive neighbours.
m_sceneGridService.SendCloseChildAgentConnections(agentID, regions);
}

View File

@ -1550,6 +1550,7 @@ namespace OpenSim.Region.Framework.Scenes
// Create child agents in neighbouring regions
if (openChildAgents && !IsChildAgent)
{
SendInitialDataToMe();
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
if (m_agentTransfer != null)
@ -3347,10 +3348,8 @@ namespace OpenSim.Region.Framework.Scenes
if (byebyeRegions.Count > 0)
{
m_log.Debug("[SCENE PRESENCE]: Closing " + byebyeRegions.Count + " child agents");
Util.FireAndForget(delegate
{
m_scene.SceneGridService.SendCloseChildAgentConnections(ControllingClient.AgentId, byebyeRegions);
});
m_scene.SceneGridService.SendCloseChildAgentConnections(ControllingClient.AgentId, byebyeRegions);
}
foreach (ulong handle in byebyeRegions)

View File

@ -290,6 +290,9 @@ namespace OpenSim.Region.Framework.Scenes
private void statsHeartBeat(object sender, EventArgs e)
{
if (!m_scene.Active)
return;
SimStatsPacket.StatBlock[] sb = new SimStatsPacket.StatBlock[23];
SimStatsPacket.RegionBlock rb = new SimStatsPacket.RegionBlock();

View File

@ -1,4 +1,4 @@
/*
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
@ -419,7 +419,7 @@ public sealed class BSCharacter : BSPhysObject
DetailLog("{0},BSCharacter.setTargetVelocity,call,vel={1}", LocalID, value);
m_targetVelocity = value;
OMV.Vector3 targetVel = value;
if (_setAlwaysRun)
if (_setAlwaysRun && !_flying)
targetVel *= new OMV.Vector3(BSParam.AvatarAlwaysRunFactor, BSParam.AvatarAlwaysRunFactor, 0f);
if (m_moveActor != null)
@ -481,7 +481,10 @@ public sealed class BSCharacter : BSPhysObject
_orientation = value;
PhysScene.TaintedObject("BSCharacter.setOrientation", delegate()
{
ForceOrientation = _orientation;
// Bullet assumes we know what we are doing when forcing orientation
// so it lets us go against all the rules and just compensates for them later.
// This keeps us from flipping the capsule over which the veiwer does not understand.
ForceOrientation = new OMV.Quaternion(0, 0, _orientation.Z,0);
});
}
}
@ -649,12 +652,12 @@ public sealed class BSCharacter : BSPhysObject
OMV.Vector3 newScale;
// Bullet's capsule total height is the "passed height + radius * 2";
// The base capsule is 1 diameter and 2 height (passed radius=0.5, passed height = 1)
// The base capsule is 1 unit in diameter and 2 units in height (passed radius=0.5, passed height = 1)
// The number we pass in for 'scaling' is the multiplier to get that base
// shape to be the size desired.
// So, when creating the scale for the avatar height, we take the passed height
// (size.Z) and remove the caps.
// Another oddity of the Bullet capsule implementation is that it presumes the Y
// An oddity of the Bullet capsule implementation is that it presumes the Y
// dimension is the radius of the capsule. Even though some of the code allows
// for a asymmetrical capsule, other parts of the code presume it is cylindrical.
@ -662,8 +665,27 @@ public sealed class BSCharacter : BSPhysObject
newScale.X = size.X / 2f;
newScale.Y = size.Y / 2f;
float heightAdjust = BSParam.AvatarHeightMidFudge;
if (BSParam.AvatarHeightLowFudge != 0f || BSParam.AvatarHeightHighFudge != 0f)
{
// An avatar is between 1.61 and 2.12 meters. Midpoint is 1.87m.
// The "times 4" relies on the fact that the difference from the midpoint to the extremes is exactly 0.25
float midHeightOffset = size.Z - 1.87f;
if (midHeightOffset < 0f)
{
// Small avatar. Add the adjustment based on the distance from midheight
heightAdjust += -1f * midHeightOffset * 4f * BSParam.AvatarHeightLowFudge;
}
else
{
// Large avatar. Add the adjustment based on the distance from midheight
heightAdjust += midHeightOffset * 4f * BSParam.AvatarHeightHighFudge;
}
}
// The total scale height is the central cylindar plus the caps on the two ends.
newScale.Z = (size.Z + (Math.Min(size.X, size.Y) * 2)) / 2f;
newScale.Z = (size.Z + (Math.Min(size.X, size.Y) * 2) + heightAdjust) / 2f;
// m_log.DebugFormat("{0} ComputeAvatarScale: size={1},adj={2},scale={3}", LogHeader, size, heightAdjust, newScale);
// If smaller than the endcaps, just fake like we're almost that small
if (newScale.Z < 0)
newScale.Z = 0.1f;

View File

@ -90,7 +90,7 @@ public static class BSParam
public static bool ShouldUseBulletHACD { get; set; }
public static bool ShouldUseSingleConvexHullForPrims { get; set; }
public static float TerrainImplementation { get; private set; }
public static float TerrainImplementation { get; set; }
public static int TerrainMeshMagnification { get; private set; }
public static float TerrainFriction { get; private set; }
public static float TerrainHitFraction { get; private set; }
@ -125,6 +125,9 @@ public static class BSParam
public static float AvatarCapsuleWidth { get; private set; }
public static float AvatarCapsuleDepth { get; private set; }
public static float AvatarCapsuleHeight { get; private set; }
public static float AvatarHeightLowFudge { get; private set; }
public static float AvatarHeightMidFudge { get; private set; }
public static float AvatarHeightHighFudge { get; private set; }
public static float AvatarContactProcessingThreshold { get; private set; }
public static float AvatarBelowGroundUpCorrectionMeters { get; private set; }
public static float AvatarStepHeight { get; private set; }
@ -539,6 +542,12 @@ public static class BSParam
0.45f ),
new ParameterDefn<float>("AvatarCapsuleHeight", "Default height of space around avatar",
1.5f ),
new ParameterDefn<float>("AvatarHeightLowFudge", "A fudge factor to make small avatars stand on the ground",
-0.2f ),
new ParameterDefn<float>("AvatarHeightMidFudge", "A fudge distance to adjust average sized avatars to be standing on ground",
0.1f ),
new ParameterDefn<float>("AvatarHeightHighFudge", "A fudge factor to make tall avatars stand on the ground",
0.1f ),
new ParameterDefn<float>("AvatarContactProcessingThreshold", "Distance from capsule to check for collisions",
0.1f ),
new ParameterDefn<float>("AvatarBelowGroundUpCorrectionMeters", "Meters to move avatar up if it seems to be below ground",

View File

@ -318,8 +318,12 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters
ret = new BSAPIXNA(engineName, this);
// Disable some features that are not implemented in BulletXNA
m_log.InfoFormat("{0} Disabling some physics features not implemented by BulletXNA", LogHeader);
m_log.InfoFormat("{0} Disabling ShouldUseBulletHACD", LogHeader);
BSParam.ShouldUseBulletHACD = false;
m_log.InfoFormat("{0} Disabling ShouldUseSingleConvexHullForPrims", LogHeader);
BSParam.ShouldUseSingleConvexHullForPrims = false;
m_log.InfoFormat("{0} Setting terrain implimentation to Heightmap", LogHeader);
BSParam.TerrainImplementation = (float)BSTerrainPhys.TerrainImplementation.Heightmap;
break;
}

View File

@ -283,8 +283,13 @@ public class BSShapeNative : BSShape
public override BSShape GetReference(BSScene pPhysicsScene, BSPhysObject pPrim)
{
// Native shapes are not shared so we return a new shape.
return new BSShapeNative(CreatePhysicalNativeShape(pPhysicsScene, pPrim,
physShapeInfo.shapeType, (FixedShapeKey)physShapeInfo.shapeKey) );
BSShape ret = null;
lock (physShapeInfo)
{
ret = new BSShapeNative(CreatePhysicalNativeShape(pPhysicsScene, pPrim,
physShapeInfo.shapeType, (FixedShapeKey)physShapeInfo.shapeKey));
}
return ret;
}
// Make this reference to the physical shape go away since native shapes are not shared.

View File

@ -358,6 +358,10 @@ namespace OpenSim.Region.Physics.Meshing
physicsParms = (OSDMap)map["physics_shape"]; // old asset format
else if (map.ContainsKey("physics_mesh"))
physicsParms = (OSDMap)map["physics_mesh"]; // new asset format
else if (map.ContainsKey("medium_lod"))
physicsParms = (OSDMap)map["medium_lod"]; // if no physics mesh, try to fall back to medium LOD display mesh
else if (map.ContainsKey("high_lod"))
physicsParms = (OSDMap)map["high_lod"]; // if all else fails, use highest LOD display mesh and hope it works :)
if (physicsParms == null)
{

View File

@ -546,21 +546,33 @@ namespace OpenSim.Region.ScriptEngine.Shared
set {m_data = value; }
}
// Function to obtain LSL type from an index. This is needed
// because LSL lists allow for multiple types, and safely
// iterating in them requires a type check.
/// <summary>
/// Obtain LSL type from an index.
/// </summary>
/// <remarks>
/// This is needed because LSL lists allow for multiple types, and safely
/// iterating in them requires a type check.
/// </remarks>
/// <returns></returns>
/// <param name='itemIndex'></param>
public Type GetLSLListItemType(int itemIndex)
{
return m_data[itemIndex].GetType();
}
// Member functions to obtain item as specific types.
// For cases where implicit conversions would apply if items
// were not in a list (e.g. integer to float, but not float
// to integer) functions check for alternate types so as to
// down-cast from Object to the correct type.
// Note: no checks for item index being valid are performed
/// <summary>
/// Obtain float from an index.
/// </summary>
/// <remarks>
/// For cases where implicit conversions would apply if items
/// were not in a list (e.g. integer to float, but not float
/// to integer) functions check for alternate types so as to
/// down-cast from Object to the correct type.
/// Note: no checks for item index being valid are performed
/// </remarks>
/// <returns></returns>
/// <param name='itemIndex'></param>
public LSL_Types.LSLFloat GetLSLFloatItem(int itemIndex)
{
if (m_data[itemIndex] is LSL_Types.LSLInteger)
@ -591,26 +603,14 @@ namespace OpenSim.Region.ScriptEngine.Shared
public LSL_Types.LSLString GetLSLStringItem(int itemIndex)
{
if (m_data[itemIndex] is LSL_Types.key)
{
return (LSL_Types.key)m_data[itemIndex];
}
else if (m_data[itemIndex] is String)
{
return new LSL_Types.LSLString((string)m_data[itemIndex]);
}
else if (m_data[itemIndex] is LSL_Types.LSLFloat)
{
return new LSL_Types.LSLString((LSLFloat)m_data[itemIndex]);
}
else if (m_data[itemIndex] is LSL_Types.LSLInteger)
{
return new LSL_Types.LSLString((LSLInteger)m_data[itemIndex]);
}
else
{
return (LSL_Types.LSLString)m_data[itemIndex];
}
if (m_data[itemIndex] is LSL_Types.key)
{
return (LSL_Types.key)m_data[itemIndex];
}
else
{
return new LSL_Types.LSLString(m_data[itemIndex].ToString());
}
}
public LSL_Types.LSLInteger GetLSLIntegerItem(int itemIndex)

View File

@ -286,7 +286,7 @@ namespace OpenSim.Server.Base
e.InnerException == null ? e.Message : e.InnerException.Message,
e.StackTrace);
}
m_log.ErrorFormat("[SERVER UTILS]: Error loading plugin {0}: {1}", dllName, e.Message);
m_log.ErrorFormat("[SERVER UTILS]: Error loading plugin {0}: {1} args.Length {2}", dllName, e.Message, args.Length);
return null;
}

View File

@ -76,10 +76,14 @@ namespace OpenSim.Server.Handlers.Hypergrid
server.AddStreamHandler(new GatekeeperAgentHandler(m_GatekeeperService, m_Proxy));
}
public GatekeeperServiceInConnector(IConfigSource config, IHttpServer server)
: this(config, server, null)
public GatekeeperServiceInConnector(IConfigSource config, IHttpServer server, string configName)
: this(config, server, (ISimulationService)null)
{
}
public GatekeeperServiceInConnector(IConfigSource config, IHttpServer server)
: this(config, server, String.Empty)
{
}
}
}

View File

@ -54,10 +54,15 @@ namespace OpenSim.Server.Handlers.Hypergrid
private IInstantMessage m_IMService;
public InstantMessageServerConnector(IConfigSource config, IHttpServer server) :
this(config, server, null)
this(config, server, (IInstantMessageSimConnector)null)
{
}
public InstantMessageServerConnector(IConfigSource config, IHttpServer server, string configName) :
this(config, server)
{
}
public InstantMessageServerConnector(IConfigSource config, IHttpServer server, IInstantMessageSimConnector simConnector) :
base(config, server, String.Empty)
{

View File

@ -62,10 +62,15 @@ namespace OpenSim.Server.Handlers.Hypergrid
private bool m_VerifyCallers = false;
public UserAgentServerConnector(IConfigSource config, IHttpServer server) :
this(config, server, null)
this(config, server, (IFriendsSimConnector)null)
{
}
public UserAgentServerConnector(IConfigSource config, IHttpServer server, string configName) :
this(config, server)
{
}
public UserAgentServerConnector(IConfigSource config, IHttpServer server, IFriendsSimConnector friendsConnector) :
base(config, server, String.Empty)
{

View File

@ -60,8 +60,8 @@ namespace OpenSim.Server.Handlers.Login
InitializeHandlers(server);
}
public LLLoginServiceInConnector(IConfigSource config, IHttpServer server) :
base(config, server, String.Empty)
public LLLoginServiceInConnector(IConfigSource config, IHttpServer server, string configName) :
base(config, server, configName)
{
string loginService = ReadLocalServiceFromConfig(config);
@ -72,6 +72,11 @@ namespace OpenSim.Server.Handlers.Login
InitializeHandlers(server);
}
public LLLoginServiceInConnector(IConfigSource config, IHttpServer server) :
this(config, server, String.Empty)
{
}
private string ReadLocalServiceFromConfig(IConfigSource config)
{
IConfig serverConfig = config.Configs["LoginService"];

View File

@ -241,7 +241,7 @@ namespace OpenSim.Server.Handlers.Simulation
if (action.Equals("release"))
ReleaseAgent(regionID, id);
else
m_SimulationService.CloseAgent(destination, id);
Util.FireAndForget(delegate { m_SimulationService.CloseAgent(destination, id); });
responsedata["int_response_code"] = HttpStatusCode.OK;
responsedata["str_response_string"] = "OpenSim agent " + id.ToString();

View File

@ -1,57 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>OpenMetaverse.Http</name>
</assembly>
<members>
<member name="F:OpenMetaverse.Http.EventQueueServer.CONNECTION_TIMEOUT">
<summary>The number of milliseconds to wait before the connection times out
and an empty response is sent to the client. This value should be higher
than BATCH_WAIT_INTERVAL for the timeout to function properly</summary>
</member>
<member name="F:OpenMetaverse.Http.EventQueueServer.BATCH_WAIT_INTERVAL">
<summary>This interval defines the amount of time to wait, in milliseconds,
for new events to show up on the queue before sending a response to the
client and completing the HTTP request. The interval also specifies the
maximum time that can pass before the queue shuts down after Stop() or the
class destructor is called</summary>
</member>
<member name="F:OpenMetaverse.Http.EventQueueServer.MAX_EVENTS_PER_RESPONSE">
<summary>Since multiple events can be batched together and sent in the same
response, this prevents the event queue thread from infinitely dequeueing
events and never sending a response if there is a constant stream of new
events</summary>
</member>
<member name="T:OpenMetaverse.Http.Logger">
<summary>
Singleton logging class for the entire library
</summary>
</member>
<member name="F:OpenMetaverse.Http.Logger.Log">
<summary>log4net logging engine</summary>
</member>
<member name="F:OpenMetaverse.Http.log4netLogWriter.Instance">
<summary>
Singleton instance of this class
</summary>
</member>
<member name="T:OpenMetaverse.Http.CapsRequestCallback">
<summary>
Delegate for handling incoming HTTP requests through a capability
</summary>
<param name="context">Client context</param>
<param name="request">HTTP request</param>
<param name="response">HTTP response</param>
<param name="state">User-defined state object</param>
</member>
<member name="F:OpenMetaverse.Http.EventQueueClient.REQUEST_TIMEOUT">
<summary>=</summary>
</member>
<member name="F:OpenMetaverse.Http.EventQueueClient._errorCount">
<summary>Number of times we've received an unknown CAPS exception in series.</summary>
</member>
<member name="F:OpenMetaverse.Http.EventQueueClient._random">
<summary>For exponential backoff on error.</summary>
</member>
</members>
</doc>

View File

@ -4,6 +4,123 @@
<name>OpenMetaverse.StructuredData</name>
</assembly>
<members>
<member name="T:OpenMetaverse.StructuredData.OSDType">
<summary>
</summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Unknown">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Boolean">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Integer">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Real">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.String">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.UUID">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Date">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.URI">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Binary">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Map">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Array">
<summary></summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDException">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSD">
<summary>
</summary>
</member>
<member name="M:OpenMetaverse.StructuredData.OSD.SerializeMembers(System.Object)">
<summary>
Uses reflection to create an SDMap from all of the SD
serializable types in an object
</summary>
<param name="obj">Class or struct containing serializable types</param>
<returns>An SDMap holding the serialized values from the
container object</returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSD.DeserializeMembers(System.Object@,OpenMetaverse.StructuredData.OSDMap)">
<summary>
Uses reflection to deserialize member variables in an object from
an SDMap
</summary>
<param name="obj">Reference to an object to fill with deserialized
values</param>
<param name="serialized">Serialized values to put in the target
object</param>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDBoolean">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDInteger">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDReal">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDString">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDUUID">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDDate">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDUri">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDBinary">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDMap">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDArray">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDParser">
<summary>
@ -228,122 +345,5 @@
<param name="c"></param>
<returns></returns>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDType">
<summary>
</summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Unknown">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Boolean">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Integer">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Real">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.String">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.UUID">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Date">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.URI">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Binary">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Map">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Array">
<summary></summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDException">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSD">
<summary>
</summary>
</member>
<member name="M:OpenMetaverse.StructuredData.OSD.SerializeMembers(System.Object)">
<summary>
Uses reflection to create an SDMap from all of the SD
serializable types in an object
</summary>
<param name="obj">Class or struct containing serializable types</param>
<returns>An SDMap holding the serialized values from the
container object</returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSD.DeserializeMembers(System.Object@,OpenMetaverse.StructuredData.OSDMap)">
<summary>
Uses reflection to deserialize member variables in an object from
an SDMap
</summary>
<param name="obj">Reference to an object to fill with deserialized
values</param>
<param name="serialized">Serialized values to put in the target
object</param>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDBoolean">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDInteger">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDReal">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDString">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDUUID">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDDate">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDUri">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDBinary">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDMap">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDArray">
<summary>
</summary>
</member>
</members>
</doc>

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.