CSharpRTMP.Core.Protocols.Rtmp.SO.UnSet C# (CSharp) Метод

UnSet() публичный Метод

public UnSet ( string key, BaseProtocol pFrom = null ) : void
key string
pFrom BaseProtocol
Результат void
        public void UnSet(string key, BaseProtocol pFrom = null)
        {
            if (!_versionIncremented)
            {
                Version++;
                _versionIncremented = true;
            }
            Payload[key] = null;
            var deleteDirtyInfo = new DirtyInfo {PropertyName = key, Type = Defines.SOT_SC_DELETE_DATA};
            Synchronization?.Invoke(deleteDirtyInfo);
#if PARALLEL
            _dirtyPropsByProtocol.AsParallel().ForAll(x => x.Value.Add(new DirtyInfo { PropertyName = key, Type = Defines.SOT_SC_DELETE_DATA }));
#else
            if (pFrom is BaseClusterProtocol)
            {
                foreach (var registeredProtocol in _dirtyPropsByProtocol.Where(x => x.Key != pFrom))
                {
                    registeredProtocol.Value.Add(deleteDirtyInfo);
                }
            }else
                foreach (var registeredProtocol in _dirtyPropsByProtocol)
                {
                     registeredProtocol.Value.Add(deleteDirtyInfo);
                }
#endif
        }

Usage Example

Пример #1
0
        private bool ProcessSharedObjectPrimitive(BaseRTMPProtocol pFrom, SO pSO, string name, Variant request,
                                                  int primitiveId)
        {
            var primitive = request[Defines.RM_SHAREDOBJECT, Defines.RM_SHAREDOBJECT_PRIMITIVES][primitiveId];

            switch ((byte)primitive[Defines.RM_SHAREDOBJECTPRIMITIVE_TYPE])
            {
            case Defines.SOT_CS_CONNECT:
                pSO.RegisterProtocol(pFrom);
                return(true);

            case Defines.SOT_CS_DISCONNECT:
                UnRegisterProtocol(pFrom);
                return(true);

            case Defines.SOT_CSC_DELETE_DATA:
                pSO.UnSet(primitive[Defines.RM_SHAREDOBJECTPRIMITIVE_PAYLOAD], pFrom);
                return(true);

            case Defines.SOT_CS_SET_ATTRIBUTE:
                if (pSO == null)
                {
                    Logger.FATAL("SO is null");
                    return(false);
                }
                foreach (KeyValuePair <string, Variant> item in primitive[Defines.RM_SHAREDOBJECTPRIMITIVE_PAYLOAD])
                {
                    pSO.Set(item.Key, item.Value.Clone(), pFrom);
                }
                return(true);

            case Defines.SOT_BW_SEND_MESSAGE:
                pSO?.Send(primitive, pFrom);
                return(true);

            default:
                Logger.FATAL("SO primitive not allowed here");
                return(false);
            }
        }
All Usage Examples Of CSharpRTMP.Core.Protocols.Rtmp.SO::UnSet