Пример #1
0
void Daemon::runMain() {
    std::vector< char * > args( _arguments.size() );
    std::transform(
        _arguments.begin(),
        _arguments.end(),
        args.begin(),
        [] ( const std::unique_ptr< char[] > &ptr ) {
            return ptr.get();
        }
    );

    brick::net::Redirector stdOutput( STDOUT_FILENO, [this] ( char *s, size_t length ) {
        this->redirectOutput( s, length, Output::Standard );
    } );
    brick::net::Redirector stdError( STDERR_FILENO, [this] ( char *s, size_t length ) {
        this->redirectOutput( s, length, Output::Error );
    } );
    try {
        _main( args.size(), &args.front() );
    } catch ( const std::exception &e ) {
        std::cerr << "Uncaught exception: " << e.what() << std::endl;
    } catch ( ... ) {
        std::cerr << "Uncaught unknown exception." << std::endl;
    }
}
Пример #2
0
void ProcessRunner::updateText()
{
  QByteArray data = process->readAllStandardOutput();
  QString stdOutput(data);
  output += stdOutput;
  if(context)
    context->print(toString(stdOutput));
}
Пример #3
0
// save the solution
void MainWidget::saveFile()
{
	QString path = QFileDialog::getSaveFileName(this,
												tr("保存初始文件"),
												".",
												tr("文本文件(*.txt)"));
	if(!path.isEmpty())
	{
		std::string temp = path.toStdString();
		const char *temp2 = temp.c_str();
		freopen(temp2, "w", stdout);
		stdOutput(elapsedTime);
		fflush(stdout);
		fclose(stdout);
	}
}
Пример #4
0
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  Transform tests
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
TEST(simple1,counting)
{
    bolt::amp::counting_iterator<int> iter(0);
    bolt::amp::counting_iterator<int> iter2=iter+1024;
    std::vector<int> input1(1024);
    std::vector<int> input2(1024);
    std::vector<int> stdOutput(1024);
     std::vector<int> boltOutput(1024);
     for(int i=0 ; i< 1024;i++)
     {
         input1[i] = i;
     }
    input2 = input1;
    std::transform( input1.begin(), input1.end(), input2.begin(), stdOutput.begin(), bolt::amp::plus<int>());
    bolt::amp::transform(iter,iter2,input1.begin(),boltOutput.begin(),bolt::amp::plus<int>());
    cmpArrays( stdOutput, boltOutput, 1024 );
}
Пример #5
0
TEST(simple1,Serial_counting)
{
    bolt::amp::counting_iterator<int> iter(0);
    bolt::amp::counting_iterator<int> iter2=iter+1024;
    std::vector<int> input1(1024);
    std::vector<int> input2(1024);
    std::vector<int> stdOutput(1024);
     std::vector<int> boltOutput(1024);
     for(int i=0 ; i< 1024;i++)
     {
         input1[i] = i;
     }
    input2 = input1;

    bolt::amp::control ctl = bolt::amp::control::getDefault( );
    ctl.setForceRunMode(bolt::amp::control::SerialCpu);

    std::transform( input1.begin(), input1.end(), input2.begin(), stdOutput.begin(), bolt::amp::plus<int>());
    bolt::amp::transform(ctl, iter,iter2,input1.begin(),boltOutput.begin(),bolt::amp::plus<int>());
    cmpArrays( stdOutput, boltOutput, 1024 );
}