VirtualPipeline.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. namespace SHJX.Service.Control.Pipeline.Contents
  2. {
  3. /// <summary>
  4. /// 虚拟管道
  5. /// </summary>
  6. public class VirtualPipeline : IPipeline
  7. {
  8. /// <summary>
  9. /// 首节点
  10. /// </summary>
  11. private INode _firstNode;
  12. /// <summary>
  13. /// 添加节点
  14. /// </summary>
  15. /// <param name="node"></param>
  16. /// <returns></returns>
  17. public IPipeline AddNode(INode node)
  18. {
  19. if (_firstNode == null)
  20. {
  21. _firstNode = node;
  22. }
  23. else
  24. {
  25. INode current = _firstNode;
  26. while (current.NextNode != null)
  27. {
  28. current = current.NextNode;
  29. }
  30. current.NextNode = node;
  31. }
  32. return this;
  33. }
  34. /// <summary>
  35. /// 调用
  36. /// </summary>
  37. /// <param name="value"></param>
  38. public void Invoke(EquipmentTask value)
  39. {
  40. _firstNode?.SetTask(value)?.Invoke()?.Record()?.Next();
  41. }
  42. }
  43. }