private Variant ToPrimitives(List<DirtyInfo> info)
{
var vm = GlobalPool<VariantMap>.GetObject();
var result = Variant.Get(vm);
vm.IsArray = true;
vm.ArrayLength = info.Count;
for (var i = 0; i < vm.ArrayLength; i++)
{
var primitive = Variant.GetMap(new VariantMapHelper { { Defines.RM_SHAREDOBJECTPRIMITIVE_TYPE, info[i].Type } });
switch (info[i].Type)
{
case Defines.SOT_SC_UPDATE_DATA_ACK:
case Defines.SOT_SC_DELETE_DATA:
primitive[Defines.RM_SHAREDOBJECTPRIMITIVE_PAYLOAD] = Variant.GetList(info[i].PropertyName);
break;
case Defines.SOT_SC_UPDATE_DATA:
primitive[Defines.RM_SHAREDOBJECTPRIMITIVE_PAYLOAD] = Variant.GetMap(new VariantMapHelper
{
{info[i].PropertyName, Payload[info[i].PropertyName].Clone()}
});
break;
case Defines.SOT_SC_INITIAL_DATA:
case Defines.SOT_SC_CLEAR_DATA:
break;
default:
Logger.ASSERT("Unable to handle primitive type:{0}", info[i].Type);
break;
}
vm[VariantMap.GetIndexString(i)] = primitive;
}
return result;
}
public void Track()