Implement Dynamic Attributes for SOP and PBS. Implement storage in SQLite

This commit is contained in:
Justin Clark-Casey (justincc)
2010-08-16 20:38:20 +01:00
parent d977bb77cb
commit 1bd0b06ec1
4 changed files with 115 additions and 1 deletions

View File

@@ -1232,6 +1232,8 @@ namespace OpenSim.Data.SQLite
createCol(prims, "VolumeDetect", typeof(Int16));
createCol(prims, "MediaURL", typeof(String));
createCol(prims, "DynAttrs", typeof(String));
// Add in contraints
prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] };
@@ -1280,6 +1282,7 @@ namespace OpenSim.Data.SQLite
createCol(shapes, "Texture", typeof(Byte[]));
createCol(shapes, "ExtraParams", typeof(Byte[]));
createCol(shapes, "Media", typeof(String));
createCol(shapes, "DynAttrs", typeof(String));
shapes.PrimaryKey = new DataColumn[] { shapes.Columns["UUID"] };
@@ -1711,6 +1714,16 @@ namespace OpenSim.Data.SQLite
// m_log.DebugFormat("[SQLITE]: MediaUrl type [{0}]", row["MediaURL"].GetType());
prim.MediaUrl = (string)row["MediaURL"];
}
if (!(row["DynAttrs"] is System.DBNull))
{
//m_log.DebugFormat("[SQLITE]: DynAttrs type [{0}]", row["DynAttrs"].GetType());
prim.DynAttrs = DynAttrsOSDMap.FromXml((string)row["DynAttrs"]);
}
else
{
prim.DynAttrs = new DynAttrsOSDMap();
}
return prim;
}
@@ -2133,6 +2146,7 @@ namespace OpenSim.Data.SQLite
row["VolumeDetect"] = 0;
row["MediaURL"] = prim.MediaUrl;
row["DynAttrs"] = prim.DynAttrs.ToXml();
}
/// <summary>
@@ -2393,6 +2407,11 @@ namespace OpenSim.Data.SQLite
if (!(row["Media"] is System.DBNull))
s.Media = PrimitiveBaseShape.MediaList.FromXml((string)row["Media"]);
if (!(row["DynAttrs"] is System.DBNull))
s.DynAttrs = DynAttrsOSDMap.FromXml((string)row["DynAttrs"]);
else
s.DynAttrs = new DynAttrsOSDMap();
return s;
}
@@ -2439,6 +2458,8 @@ namespace OpenSim.Data.SQLite
if (s.Media != null)
row["Media"] = s.Media.ToXml();
row["DynAttrs"] = s.DynAttrs.ToXml();
}
/// <summary>