Example #1
0
        public InputOutputMessageQueue(string path, InputOutputMessageQueue <T> .InputOutputMessageQueueTypes queuetype, bool purge)
        {
#if __USE_MSMQ
            this.InputOutputMessageQueueType = queuetype;
            this.MessageQueue = null;
            try
            {
                this.MessageQueue = new System.Messaging.MessageQueue(path);
            }
            catch (Exception ex)
            {
                this.MessageQueue = null;
            }
            //			if (System.Messaging.MessageQueue.Exists(path))
            //creates an instance MessageQueue, which points
            //to the already existing MyQueue
            //				this.MessageQueue = new System.Messaging.MessageQueue(path);
            //			else
            //creates a new private queue called MyQueue
            if ((this.MessageQueue == null || !this.MessageQueue.CanWrite) && this.InputOutputMessageQueueType == InputOutputMessageQueue <T> .InputOutputMessageQueueTypes.Server)
            {
                this.MessageQueue = System.Messaging.MessageQueue.Create(path);
            }

            if (this.MessageQueue != null)
            {
                this.MessageQueue.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(T) });
            }

            if (queuetype == InputOutputMessageQueue <T> .InputOutputMessageQueueTypes.Server && purge)
            {
                this.MessageQueue.Purge();
            }
#endif
        }
Example #2
0
 public InputOutputThread(ManualResetEvent interruptprocessingevent, InputOutputMessageQueue <T> inputqueue, InputOutputMessageQueue <U> outputqueue, int threadid)
 {
     this.ThreadExitEvent          = new ManualResetEvent(false);
     this.InputQueue               = inputqueue;
     this.OutputQueue              = outputqueue;
     this.InterruptProcessingEvent = interruptprocessingevent;
     this.ThreadId = threadid;
 }
Example #3
0
 public InputOutputThread(ManualResetEvent interruptprocessingevent, InputOutputMessageQueue <T> inputqueue)
     : this(interruptprocessingevent, inputqueue, null, 0)
 {
 }