Example #1
0
		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);
            }
		}
Example #2
0
		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() + "]");
		}
Example #3
0
		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;
		}
Example #4
0
 protected abstract void ContainerCallbackTransport(ContainerEventType eType, shared.Effect cEffect);
Example #5
0
 protected abstract void CallbackTransport(EffectEventType eType, shared.Effect cEffect);
Example #6
0
 public void ContainerCallback(ContainerEventType eType, shared.Effect cEffect)
 {
     ContainerCallbackTransport(eType, cEffect);
 }
Example #7
0
 public void Callback(EffectEventType eType, shared.Effect cEffect)
 {
     CallbackTransport(eType, cEffect);
 }