Пример #1
0
        /// <summary>
        /// Enqueue the observed invocation in the observation queue of the machine
        /// </summary>
        /// <param name="e">event corresponding to the action</param>
        /// <param name="o">IObservationCallback ob</param>
        /// <param name="args">parameters of the action</param>
        public static void __OnEvent(EventInfo e, object o, object[] args)
        {
            IObservationCallback oc = o as IObservationCallback;

            if (oc == null || e == null)
            {
                throw new Exception("__OnEvent");
            }
            Symbol actionSymbol = oc.GetActionSymbol(e);
            Term   obs          = ConstructInvocationTerm(actionSymbol, args);

            oc.Enqueue(obs);
        }