コード例 #1
0
        /// <summary>
        /// This method executes the workflow for the session.
        /// </summary>
        public void Execute(
            ulong rowsNumber,
            void **data,
            int **strLenOrNullMap,
            ushort *outputSchemaColumnsNumber)
        {
            Logging.Trace("CSharpSession::Execute");
            _inputDataSet.AddColumns(rowsNumber, data, strLenOrNullMap);
            _userDll.UserExecutor = _userDll.InstantiateUserExecutor();

            if (_userDll.UserExecutor != null)
            {
                _outputDataSet.CSharpDataFrame = _userDll.UserExecutor.Execute(_inputDataSet.CSharpDataFrame, _paramContainer.UserParams);
            }

            if (_outputDataSet.CSharpDataFrame != null)
            {
                _outputDataSet.ColumnsNumber = (ushort)_outputDataSet.CSharpDataFrame.Columns.Count;
                _outputDataSet.ExtractColumns(_outputDataSet.CSharpDataFrame);
                *outputSchemaColumnsNumber = _outputDataSet.ColumnsNumber;
            }
            else
            {
                *outputSchemaColumnsNumber = 0;
            }
        }