public unsafe void ProcessCEDirector(byte *buffer, byte[] message) { CEDirectorData data = *(CEDirectorData *)&buffer[0]; ceSemaphore.WaitAsync(); try { if (data.status != 0 && !ces.ContainsKey(data.ceKey)) { AddCE(data); return; } else { // Don't update if key is about to be removed if (!ces[data.ceKey].Equals(data) && data.status != 0) { UpdateCE(data.ceKey, data); return; } // Needs removing if (data.status == 0) { RemoveCE(data); return; } } } finally { ceSemaphore.Release(); } }
private void RemoveCE(CEDirectorData data) { if (ces.ContainsKey(data.ceKey)) { client_.DoCEEvent(new JSEvents.CEEvent("remove", JObject.FromObject(data))); ces.Remove(data.ceKey); } }
private void RemoveCE(CEDirectorData data) { if (ces.ContainsKey(data.ceKey)) { OnCEChanged(null, new CEChangedArgs("remove", data)); ces.Remove(data.ceKey); } }
private void UpdateCE(byte ceKey, CEDirectorData data) { ces[data.ceKey] = data; client_.DoCEEvent(new JSEvents.CEEvent("update", JObject.FromObject(data))); }
private void AddCE(CEDirectorData data) { ces.Add(data.ceKey, data); client_.DoCEEvent(new JSEvents.CEEvent("add", JObject.FromObject(data))); }
public CEChangedArgs(string eventType, CEDirectorData data) : base() { this.eventType = eventType; this.data = data; }
private void UpdateCE(byte ceKey, CEDirectorData data) { ces[data.ceKey] = data; OnCEChanged(null, new CEChangedArgs("update", data)); }
private void AddCE(CEDirectorData data) { ces.Add(data.ceKey, data); OnCEChanged(null, new CEChangedArgs("add", data)); }