コード例 #1
0
        private DataCell GetOutputData(DataCellHeader data_cell_header)
        {
            var output_data = _dataCellRepository.Get(new[] { data_cell_header }).FirstOrDefault();

            if (output_data == null)
            {
                output_data = new DataCell()
                {
                    Header   = data_cell_header,
                    HasValue = null,
                    Data     = null
                };
                _dataCellRepository.Add(new[] { output_data });
            }

            return(output_data);
        }
コード例 #2
0
        private DataCell GetDataCell(DataCellHeader data_cell_header)
        {
            var data_cell = _dataCellRepository.Get(new[] { data_cell_header }).FirstOrDefault();

            if (data_cell == null)
            {
                return(new DataCell()
                {
                    Header = data_cell_header,
                    HasValue = null,
                    Data = null
                });

                //_dataCellRepository.Subscribe(data_cell_header, OnDataReady);
                // TODO: нужно отправлять запросы за другие узлы для получения данных.
            }
            else
            {
                return(data_cell);
            }
        }
コード例 #3
0
ファイル: ComputingCore.cs プロジェクト: dha01/DF2
        public Task <DataCell> Exec(FunctionHeader function_header, params object[] param)
        {
            string root = "User1.Process" + index++;

            var output_data_header = new DataCellHeader()
            {
                CallStack = $"{root}.result".Split('.').ToArray(),
            };

            var input_data = CommandBuilder.BuildInputData(param, $"{root}".Split('.').ToList());

            var command_headers = new List <CommandHeader>()
            {
                new CommandHeader()
                {
                    CallStack            = $"{root}".Split('.').ToArray(),
                    FunctionHeader       = function_header,              //CommandBuilder.BuildHeader("Main", $"SimpleMethods.Control.Simple".Split('.').ToList()),//(FunctionHeader)BuildedControlFunction.Header,//CommandBuilder.BuildHeader("Main", $"SimpleMethods.Control.Simple".Split('.').ToList()), //SimpleMethods.Control.Simple.MainHeader,
                    InputDataHeaders     = input_data.Select(x => (DataCellHeader)x.Header).ToList(),
                    OutputDataHeader     = output_data_header,
                    TriggeredCommands    = new List <InvokeHeader>(),
                    ConditionDataHeaders = new List <DataCellHeader>()
                }
            };


            AddDataCell(input_data);
            AddCommandHeaders(command_headers);

            var result = GetDataCell(new[] { output_data_header }).First();

            return(Task.Factory.StartNew(() =>
            {
                while (!result.HasValue.HasValue)
                {
                }
                return result;
            }));
        }
コード例 #4
0
ファイル: CommandService.cs プロジェクト: dha01/DF2
 /// <summary>
 /// Запрос данных у другого узла.
 /// </summary>
 /// <param name="data_cell_header"></param>
 /// <param name="ip_address"></param>
 /// <returns></returns>
 private DataCell GetDataCellRequest(DataCellHeader data_cell_header, IPAddress ip_address)
 {
     throw new NotImplementedException("Запрос данных у других узлов ещё не реализован.");
 }