示例#1
0
        /// <summary>
        /// Fires the GenuineChannelsGlobalEvent event with specified parameters.
        /// </summary>
        /// <param name="sender">The source object.</param>
        /// <param name="e">Event arguments.</param>
        public static void FireGlobalEvent(object sender, GenuineEventArgs e)
        {
            GenuineChannelsGlobalEventHandler clonedEvent = null;

            lock (_genuineChannelsGlobalEventObject)
            {
                if (_genuineChannelsGlobalEvent == null)
                {
                    return;
                }

                clonedEvent = (GenuineChannelsGlobalEventHandler)_genuineChannelsGlobalEvent.Clone();
            }

            clonedEvent(sender, e);
        }
        /// <summary>
        /// Fires the event.
        /// </summary>
        /// <param name="genuineEventArgsAsObject">Event parameters.</param>
        public void PerformEventSending(object genuineEventArgsAsObject)
        {
            GenuineEventArgs genuineEventArgs             = (GenuineEventArgs)genuineEventArgsAsObject;
            GenuineChannelsGlobalEventHandler clonedEvent = null;

            lock (_genuineChannelsEventLock)
            {
                if (_genuineChannelsEvent == null)
                {
                    return;
                }

                clonedEvent = (GenuineChannelsGlobalEventHandler)_genuineChannelsEvent.Clone();
            }

            clonedEvent(this, genuineEventArgs);
        }
        /// <summary>
        /// Fires the GenuineChannelsGlobalEvent event with the specified parameters.
        /// </summary>
        /// <param name="e">Event arguments.</param>
        public void FireGenuineEvent(GenuineEventArgs e)
        {
            // LOG:
            BinaryLogWriter binaryLogWriter = this.ITransportContext.BinaryLogWriter;

            if (binaryLogWriter != null && binaryLogWriter[LogCategory.ChannelEvent] > 0)
            {
                binaryLogWriter.WriteEvent(LogCategory.ChannelEvent, "BasicChannelWithSecurity.FireGenuineEvent",
                                           LogMessageType.ChannelEvent, e.SourceException, null, e.HostInformation, null,
                                           GenuineUtility.CurrentThreadId, Thread.CurrentThread.Name,
                                           null, null, -1, (int)e.EventType, 0, 0, null, null, null, null,
                                           "The channel event is raised.");
            }

            if (e.EventType == GenuineEventType.GTcpConnectionAccepted || e.EventType == GenuineEventType.GHttpConnectionAccepted)
            {
                this.PerformEventSending(e);
            }
            else
            {
                GenuineThreadPool.QueueUserWorkItem(new WaitCallback(this.PerformEventSending), e, false);
            }
        }
 /// <summary>
 /// Genuine Event handler.
 /// </summary>
 /// <param name="genuineEventArgs">The event arguments.</param>
 public void OnGenuineEvent(GenuineEventArgs genuineEventArgs)
 {
     this.FireGenuineEvent(genuineEventArgs);
 }