Added SyncStateReport function in RegionSyncModule to do some preliminary sync state comparison.
parent
ae258a21e4
commit
e4bdaaaa83
|
@ -590,10 +590,14 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
//for debugging purpose
|
//for debugging purpose
|
||||||
Command cmdSyncDebug = new Command("debug", CommandIntentions.COMMAND_HAZARDOUS, SyncDebug, "Trigger some debugging functions");
|
Command cmdSyncDebug = new Command("debug", CommandIntentions.COMMAND_HAZARDOUS, SyncDebug, "Trigger some debugging functions");
|
||||||
|
|
||||||
|
//for sync state comparison,
|
||||||
|
Command cmdSyncStateReport = new Command("state", CommandIntentions.COMMAND_HAZARDOUS, SyncStateReport, "Trigger synchronization state comparision functions");
|
||||||
|
|
||||||
m_commander.RegisterCommand("start", cmdSyncStart);
|
m_commander.RegisterCommand("start", cmdSyncStart);
|
||||||
m_commander.RegisterCommand("stop", cmdSyncStop);
|
m_commander.RegisterCommand("stop", cmdSyncStop);
|
||||||
m_commander.RegisterCommand("status", cmdSyncStatus);
|
m_commander.RegisterCommand("status", cmdSyncStatus);
|
||||||
m_commander.RegisterCommand("debug", cmdSyncDebug);
|
m_commander.RegisterCommand("debug", cmdSyncDebug);
|
||||||
|
m_commander.RegisterCommand("state", cmdSyncStateReport);
|
||||||
|
|
||||||
lock (m_scene)
|
lock (m_scene)
|
||||||
{
|
{
|
||||||
|
@ -1174,6 +1178,29 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
{
|
{
|
||||||
//TO BE IMPLEMENTED
|
//TO BE IMPLEMENTED
|
||||||
m_log.Warn("[REGION SYNC MODULE]: SyncStatus() TO BE IMPLEMENTED !!!");
|
m_log.Warn("[REGION SYNC MODULE]: SyncStatus() TO BE IMPLEMENTED !!!");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SyncStateReport(Object[] args)
|
||||||
|
{
|
||||||
|
//Preliminary implementation
|
||||||
|
EntityBase[] entities = m_scene.GetEntities();
|
||||||
|
List<SceneObjectGroup> sogList = new List<SceneObjectGroup>();
|
||||||
|
foreach (EntityBase entity in entities)
|
||||||
|
{
|
||||||
|
if (entity is SceneObjectGroup)
|
||||||
|
{
|
||||||
|
sogList.Add((SceneObjectGroup)entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int primCount = 0;
|
||||||
|
foreach (SceneObjectGroup sog in sogList)
|
||||||
|
{
|
||||||
|
primCount += sog.Parts.Length;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_log.WarnFormat("SyncStatus -- Object count: {0}, Prim Count {1} ", sogList.Count, primCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SyncDebug(Object[] args)
|
private void SyncDebug(Object[] args)
|
||||||
|
@ -1613,6 +1640,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
private void HandleAddNewObject(SceneObjectGroup sog)
|
private void HandleAddNewObject(SceneObjectGroup sog)
|
||||||
{
|
{
|
||||||
//RegionSyncModule only add object to SceneGraph. Any actor specific actions will be implemented
|
//RegionSyncModule only add object to SceneGraph. Any actor specific actions will be implemented
|
||||||
|
@ -1624,6 +1652,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
m_log.Debug(LogHeader + ": added obj " + sog.UUID);
|
m_log.Debug(LogHeader + ": added obj " + sog.UUID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
* */
|
||||||
|
|
||||||
private void HandleRemovedObject(SymmetricSyncMessage msg, string senderActorID)
|
private void HandleRemovedObject(SymmetricSyncMessage msg, string senderActorID)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2194,7 +2194,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
|
|
||||||
AddNewSceneObject(group, true, pos, rot, vel);
|
AddNewSceneObject(group, true, pos, rot, vel);
|
||||||
|
|
||||||
|
//SYNC DEBUG
|
||||||
|
m_log.DebugFormat("[SCENE] RezObject {0} with InvItem name {1} at pos {2}", group.UUID.ToString(), item.Name, group.RootPart.GroupPosition.ToString());
|
||||||
|
|
||||||
// We can only call this after adding the scene object, since the scene object references the scene
|
// We can only call this after adding the scene object, since the scene object references the scene
|
||||||
// to find out if scripts should be activated at all.
|
// to find out if scripts should be activated at all.
|
||||||
group.CreateScriptInstances(param, true, DefaultScriptEngine, 3);
|
group.CreateScriptInstances(param, true, DefaultScriptEngine, 3);
|
||||||
|
|
|
@ -3412,8 +3412,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
item = m_host.TaskInventory[invItemID];
|
item = m_host.TaskInventory[invItemID];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (agentID == UUID.Zero || perm == 0) // Releasing permissions
|
//if (agentID == UUID.Zero || perm == 0) // Releasing permissions
|
||||||
{
|
//{
|
||||||
llReleaseControls();
|
llReleaseControls();
|
||||||
|
|
||||||
item.PermsGranter = UUID.Zero;
|
item.PermsGranter = UUID.Zero;
|
||||||
|
@ -3425,7 +3425,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
new DetectParams[0]));
|
new DetectParams[0]));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (item.PermsGranter != agentID || (perm & ScriptBaseClass.PERMISSION_TAKE_CONTROLS) == 0)
|
if (item.PermsGranter != agentID || (perm & ScriptBaseClass.PERMISSION_TAKE_CONTROLS) == 0)
|
||||||
llReleaseControls();
|
llReleaseControls();
|
||||||
|
|
Loading…
Reference in New Issue