Example #1
0
        public PipelineSection(string machineName, uint orderNumber, PipelineType pipelineType, string pipelineId, RolePlan rolePlan)
        {
            OrderNumber        = orderNumber;
            RoleType           = rolePlan.RoleType;
            Name               = rolePlan.Name;
            OutputSectionNames = rolePlan.OutputSectionNames ?? new List <string>();

            HiringPipeName = new HiringPipeName(machineName, pipelineId, Name);
            using (var hiringPipe = new Pipe(HiringPipeName))
            {
                hiringPipe.Create();

                for (uint slotNumber = 0; slotNumber < rolePlan.Slots; slotNumber++)
                {
                    RoleSlotToken roleSlot = new RoleSlotToken(slotNumber);
                    var           envelope = new PipeMessageEnvelope()
                    {
                        Body  = roleSlot,
                        Label = "RoleSlot " + slotNumber,
                    };

                    hiringPipe.Send(envelope);
                }
            }

            if (orderNumber > 0) // HACK - first role is not supposed to have data pipe
            {
                DataPipeName = new DataPipeName(machineName, pipelineType, pipelineId, Name);
                using (var dataPipe = new Pipe(DataPipeName))
                {
                    dataPipe.Create();
                }
            }
        }
Example #2
0
        public void Build(PipelineBuildOrder pipelineBuildOrder)
        {
            string machineName = Environment.MachineName;

            PipelineType = pipelineBuildOrder.PipelineType;
            PipelineId   = pipelineBuildOrder.PipelineId.ToString(CultureInfo.InvariantCulture);

            ReportPipeName = new ReportPipeName(machineName, PipelineType, PipelineId);
            using (ReportPipe = new Pipe(ReportPipeName))
            {
                ReportPipe.Create();
            }

            uint orderNumber = 0;

            foreach (var rolePlan in pipelineBuildOrder.RolePlans)
            {
                PipelineSection pipelineSection = new PipelineSection(machineName, orderNumber, PipelineType, PipelineId, rolePlan);
                PipelineSections.Add(pipelineSection);

                if (rolePlan.Name == "Log")
                {
                    LogDataPipeName = new DataPipeName(machineName, PipelineType, PipelineId, "Log" /* section name*/);
                }

                orderNumber++;
            }

            PipelineStatus.PipelineState = PipelineState.Built;
        }
            public OutputSection(string name, DataPipeName dataPipeName)
            {
                Name         = name;
                DataPipeName = dataPipeName;

                if (null != DataPipeName)
                {
                    DataPipe = new Pipe(DataPipeName);
                    DataPipe.Open();
                }
            }
        private void SetupLogPipe(DataPipeName logDataPipeName)
        {
            if (null == logDataPipeName)
            {
                LogPipe = null;
                return;
            }
            LogPipe = new Pipe(logDataPipeName);
            LogPipe.Open();

            LogPipe.Before = WorkerStatistics.PauseNetTime;
            LogPipe.After  = WorkerStatistics.ResumeNetTime;
        }
Example #5
0
 public WorkRequest(
     string sectionName,
     DataPipeName sourceDataPipeName,
     HiringPipeName hiringPipeName,
     DataPipeName logDataPipeName,
     ReportPipeName reportPipeName,
     RoleType roleType,
     PipelineType pipelineType,
     string pipelineId,
     string bootParameters)
 {
     SectionName       = sectionName;
     InputDataPipeName = sourceDataPipeName;
     HiringPipeName    = hiringPipeName;
     LogDataPipeName   = logDataPipeName;
     ReportPipeName    = reportPipeName;
     PipelineType      = pipelineType;
     PipelineId        = pipelineId;
     RoleType          = roleType;
     BootParameters    = bootParameters;
 }
Example #6
0
 public OutputSection(string name, DataPipeName dataPipeName)
 {
     Name         = name;
     DataPipeName = dataPipeName;
 }
            public OutputSection(string name, DataPipeName dataPipeName)
            {
                Name = name;
                DataPipeName = dataPipeName;

                if (null != DataPipeName)
                {
                    DataPipe = new Pipe(DataPipeName);
                    DataPipe.Open();
                }
            }
        private void SetupLogPipe(DataPipeName logDataPipeName)
        {
            if (null == logDataPipeName)
            {
                LogPipe = null;
                return;
            }
            LogPipe = new Pipe(logDataPipeName);
            LogPipe.Open();

            LogPipe.Before = WorkerStatistics.PauseNetTime;
            LogPipe.After = WorkerStatistics.ResumeNetTime;
        }