示例#1
0
        protected virtual IWritableQueue GetQueueEntryIntercept(IWritableQueue outQueue, Type t)
        {
            Type           ofT = typeof(QueueEntryIntercept <>).MakeGenericType(new Type[] { t });
            IWritableQueue finalWritableQueue = (IWritableQueue)Activator.CreateInstance(ofT, this, outQueue);

            return(finalWritableQueue);
        }
示例#2
0
 public QueueEntryIntercept(TaskNode sender, IWritableQueue queue)
 {
     _innerQueue = queue;
     _innerTask  = sender;
     lock (_writersByQueue)
     {
         if (!_writersByQueue.ContainsKey(queue))
         {
             _writersByQueue[queue] = new List <TaskNode>();
         }
         _writersByQueue[queue].Add(sender);
     }
 }
示例#3
0
 public QueueEntryOrderKeeper(TaskNode owner, IWritableQueue queue)
 {
     _innerQueue = queue;
     _innerTask  = owner;
 }
示例#4
0
 public void ConnectOutStream <T>(IWritableQueue outQueue, int position)
 {
     ConnectOutStream(outQueue, position, typeof(T));
 }
示例#5
0
        internal void ConnectOutStream(IWritableQueue outQueue, int position, Type t)
        {
            IWritableQueue intercept = GetQueueEntryIntercept(outQueue, t);

            this.OutQueues[position] = intercept;
        }
示例#6
0
 public StartPoint(Action <IWritableQueue <Tout> > dlg)
 {
     Method    = dlg;
     OutQueues = new IWritableQueue[1];
 }
示例#7
0
 protected EndPoint()
 {
     OutQueues = new IWritableQueue[0];
 }