CSharpRTMP.Core.Protocols.Rtmp.SO.ToPrimitives C# (CSharp) Method

ToPrimitives() private method

private ToPrimitives ( List info ) : Variant
info List
return Variant
        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()