Пример #1
0
void NScriptEngine::emit_debug_command(debug_command command, int fragment, int line){
  if (connected){
    const common::URI script_engine_path("//Tools/Python/ScriptEngine", common::URI::Scheme::CPATH);
    SignalOptions options;
    options.add("command", static_cast<int>(command));
    if (command == TOGGLE_BREAK_POINT){
      options.add("fragment", fragment);
      options.add("line", line);
    }
    SignalFrame frame = options.create_frame("change_debug_state", uri(), script_engine_path);
    NetworkQueue::global()->send( frame, NetworkQueue::IMMEDIATE );
  }
}
Пример #2
0
void NScriptEngine::execute_line( const QString & line , int fragment_number, QVector<int> break_points){
  if (connected){
    const common::URI script_engine_path("//Tools/Python/ScriptEngine", common::URI::Scheme::CPATH);
    SignalOptions options;
    QString repl=QString(line);
    repl.replace(QString("\t"),QString(";"));
    repl.replace(QString("\n"),QString("?"));
    options.add("script", repl.toStdString());
    options.add("fragment",fragment_number);
    options.add("breakpoints",break_points.toStdVector());
    SignalFrame frame = options.create_frame("execute_script", uri(), script_engine_path);
    NetworkQueue::global()->send( frame, NetworkQueue::IMMEDIATE );
  }
}
Пример #3
0
void PDESolver::raise_iteration_done()
{
  SignalOptions opts;
  const Uint iter = properties().value<Uint>("iteration");
  opts.add( "iteration", iter );
  SignalFrame frame = opts.create_frame("iteration_done", uri(), URI());
  common::Core::instance().event_handler().raise_event( "iteration_done", frame);
}
Пример #4
0
void NScriptEngine::request_documentation(QString &doc){
  if (connected){
    const common::URI script_engine_path("//Tools/Python/ScriptEngine", common::URI::Scheme::CPATH);
    SignalOptions options;
    options.add("expression", doc.toStdString());
    SignalFrame frame = options.create_frame("get_documentation", uri(), script_engine_path);
    NetworkQueue::global()->send( frame, NetworkQueue::IMMEDIATE );
  }
}
Пример #5
0
  void trigger_signal_print_message ( Component& receiver )
  {
    SignalFrame signal_frame;

    SignalOptions options;

    options.add( "Counter", 10 );

    signal_frame = options.create_frame("Target", "/", "/");

    receiver.call_signal( "print_message", signal_frame );
  }
Пример #6
0
void NetworkQueue::execute_script ( const QString & filename )
{
  if( m_script_file->isOpen() )
    throw IllegalCall( FromHere(), "Another script is already in execution." );

  m_script_file->setFileName( filename );

  if( !m_script_file->exists() )
    throw FileSystemError( FromHere(), "The file [" + filename.toStdString() +
                           "] does not exist." );

  BasicCommands::dispatcher = this;
  BasicCommands::tree_root = ThreadManager::instance().tree().root();
  BasicCommands::current_component = ThreadManager::instance().tree().root();

  if( !m_script_file->open( QIODevice::ReadOnly ) )
    NLog::global()->add_error( m_script_file->errorString() );
  else
  {
    NLog::global()->add_message("Running script: " + filename);
    m_script_stream->setDevice( m_script_file );
    if(!filename.endsWith(".py")) // non-python, assume CFscript
    {
      send_next_command();
    }
    else // python
    {
      const URI script_engine_path("//Tools/Python/ScriptEngine", common::URI::Scheme::CPATH);
      
      SignalOptions options;
      options.add("script", m_script_stream->readAll().toStdString());
      SignalFrame frame = options.create_frame("execute_script", script_engine_path, script_engine_path);
      
      dispatch_signal("execute_script", script_engine_path, frame);
    }
  }
}