virtual public void Dispose() { try { lock (_oSyncRoot) if (null != _cEffect) { int nHC = _cEffect.GetHashCode(); _cCallbacks.Dispose(); cTemplate = null; oTag = null; OnStopped(_cEffect); try { _cEffect.EventRaised -= _cCallbacks.Callback; _cEffect.Dispose(); } catch (Exception ex) { (new Logger()).WriteDebug2(ex.Message); } _cEffect = null; (new Logger()).WriteDebug4("atom dispose [hc:" + nHC + "]");//TODO LANG } } catch (Exception ex) { (new Logger()).WriteError(ex); } }
protected void Create(Type cTypeShared) { Helper.InitializeTCPChannel(); _cEffect = (shared.Effect)Activator.CreateInstance(cTypeShared, null, new object[] {Preferences.cUrlAttribute}); if (null == _cEffect) throw new Exception("невозможно создать удаленный эффект"); //TODO LANG (new Logger()).WriteDebug3("effect:create: [type:" + cTypeShared.ToString() + "][hc:" + _cEffect.GetHashCode() + "][hcl:" + GetHashCode() + "]"); _cCallbacks = new Callbacks(this); _cEffect.EventRaised += _cCallbacks.Callback; if (this is Container && _cEffect is shared.Container) ((shared.Container) _cEffect).ContainerEventRaised += _cCallbacks.ContainerCallback; (new Logger()).WriteDebug3("effect:create:return [type:" + cTypeShared.ToString() + "][hc:" + _cEffect.GetHashCode() + "]"); }
public Atom() { cShow = new SHOW(); cShow.nDelay = 0; cShow.bShow = true; cHide = new HIDE(); cHide.nDelay = 0; cHide.enType = HIDE.TYPE.stop; oTag = ""; // logging _cEffect = null; _bDone = false; cTemplate = null; }
protected abstract void ContainerCallbackTransport(ContainerEventType eType, shared.Effect cEffect);
protected abstract void CallbackTransport(EffectEventType eType, shared.Effect cEffect);
public void ContainerCallback(ContainerEventType eType, shared.Effect cEffect) { ContainerCallbackTransport(eType, cEffect); }
public void Callback(EffectEventType eType, shared.Effect cEffect) { CallbackTransport(eType, cEffect); }