コード例 #1
0
void CheckAndMakeDirectory(char *dir, int clear )
{
  struct stat sbuf;
  int ret = stat(dir,&sbuf);
  if (ret >=  0 ) {
    if (!(sbuf.st_mode & S_IFDIR)){
      fprintf(stderr,"Init:: %s not a directory\n", dir);
      Exit::DoExit(1);
    }
    if (clear){
      ClearDir(dir);
    }
  } else {
    /* make new directory */
    int code = mkdir(dir,0777);
    if (code < 0 ){
      printf("Init::can't make directory %s\n",dir);
      perror("");
      Exit::DoExit(1);
    }
  }
}
コード例 #2
0
ファイル: wpsrun.cpp プロジェクト: maxselym/Magistral
void WPSRun::ClearDir(const QString sDir)
{
    QDir dir(sDir);
    QFileInfoList list = dir.entryInfoList();
    for (int iList=0;iList<list.count();iList++)
    {
        QFileInfo info = list[iList];
        QString sFilePath = info.filePath();
        if (info.isDir())
        {
            // recursive
            if (info.fileName()!=".." && info.fileName()!=".")
            {
                ClearDir(sFilePath);
            }
        }
        else
        {
            // Do something with the file here
             QFile f(info.absoluteFilePath());
             f.remove();
        }
    }
}
コード例 #3
0
	virtual void SetUp()
	{
		ClearDir();
		::mkdir(dir_.c_str(), 0755);
		mem_ = mem_pool_init( 1 << 20); // MB

		// init config
		ConfigFile &conf = *ConfigFile::GlobalInstance();
		conf.SetValue(CONF_LDB_SESSION, CONF_LDB_TABLES, "t");

		// use user specified time
		conf.SetValue(CONF_LDB_SESSION, "t.row_key", "k");
		conf.SetValue(CONF_LDB_SESSION, "t.time_key", "t");
		conf.SetValue(CONF_LDB_SESSION, "t.time_key_scale", "0");
		conf.SetValue(CONF_LDB_SESSION, "t.time_key_len", "4");

		conf.SetValue(CONF_LDB_SESSION, "t.cumulative_step", "10,100,200");
		conf.SetValue(CONF_LDB_SESSION, "t.aggregate_desc", "count(*),max(value),min(value),sum(value)");

		conf.SetValue(CONF_LDB_SESSION, "max_open_files", "512");

		engine_ = NEW(mem_, LdbEngine)(dir_.c_str(), conf);
		ASSERT_EQ(0, engine_->Init());
	}
コード例 #4
0
	virtual void TearDown()
	{
		DELETE(engine_);
		mem_pool_destroy(mem_);
		ClearDir();
	}
コード例 #5
0
ファイル: wpsrun.cpp プロジェクト: maxselym/Magistral
bool WPSRun::initialize()
{
    if(work_folder == "")
    {
        qDebug()<<"work_folder == """;
        return false;
    }

    ClearDir(work_folder);

    if(!p_namelist_tool->writeasciiWrf(work_folder))
    {
        qDebug()<<"Ошибка при создании namelist.wps";
        return false;
    }
    if(!p_namelist_tool->writeasciiWps(work_folder))
    {
        qDebug()<<"Ошибка при создании namelist.input";
        return false;
    }
    if(!p_namelist_tool->writeasciiOBSPROC(work_folder))
    {
        qDebug()<<"Ошибка при создании namelist.obsproc";
        return false;
    }
    if(!p_namelist_tool->writeasciiARWPost(work_folder))
    {
        qDebug()<<"Ошибка при создании namelist.ARWPost";
        return false;
    }
    ///////// WPS
    QFile::link(wps_root+"geogrid/src/geogrid.exe", work_folder+"geogrid.exe");
    QFile::link(wps_root+"geogrid/GEOGRID.TBL.ARW", work_folder+"GEOGRID.TBL");
    QFile::link(wps_root+"metgrid/src/metgrid.exe", work_folder+"metgrid.exe");
    QFile::link(wps_root+"metgrid/METGRID.TBL.ARW", work_folder+"METGRID.TBL");
    QFile::link(wps_root+"ungrib/src/ungrib.exe", work_folder+"ungrib.exe");
    QFile::link(wps_root+"ungrib/Variable_Tables/Vtable.GFS", work_folder+"Vtable");
    //////////END WPS
    ///////// WRF
    QDir dir(wrf_root+"run");
    dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
    QFileInfoList list = dir.entryInfoList();
    for (int i = 0; i < list.size(); ++i) {
        QFileInfo fileInfo = list.at(i);
        QFile::link(fileInfo.filePath(),work_folder+fileInfo.fileName());
    }
    QFile::link(wrf_root+"main/ndown.exe", work_folder+"ndown.exe");
    QFile::link(wrf_root+"main/nup.exe", work_folder+"nup.exe");
    QFile::link(wrf_root+"main/real.exe", work_folder+"real.exe");
    QFile::link(wrf_root+"main/tc.exe", work_folder+"tc.exe");
    QFile::link(wrf_root+"main/wrf.exe", work_folder+"wrf.exe");
    //////////END WRF
    QFile::link(wrf_root+"/MaxTools/mpd.hosts", work_folder+"mpd.hosts");

    QFile::link(wrf_root+"/MaxTools/myhosts", work_folder+"myhosts");

    // Link NCL files to draw images
    QFile::link(wrf_root+"/MaxTools/NCLrun.sh", work_folder+"NCLrun.sh");
    QFile::link(wrf_root+"/MaxTools/NCLscript.ncl", work_folder+"NCLscript.ncl");

    QFile::link(arwpost_root+"src/ARWpost.exe", work_folder+"ARWpost.exe");

    GribLink(grib_files,work_folder);

    //////////WRFDA
    QFile::link(wrfda_root+"/var/da/da_wrfvar.exe", work_folder+"da_wrfvar.exe"); //Ассимиляция
    QFile::link(wrfda_root+"/var/run/be.dat.cv3", work_folder+"be.dat"); //link background error statistics as be.dat


    QFile::link(wrfda_root+"/var/da/da_update_bc.exe", work_folder+"da_update_bc.exe"); //Обновление граничных условий
    QFile::link(wrf_root+"/MaxTools/parame.in", work_folder+"parame.in"); // namelist для da_update_bc.exe

    QFile::link(wrfda_root+"/var/obsproc/src/obsproc.exe", work_folder+"obsproc.exe"); //Препроцессинг метеоинформации в LITTLE_R
    QFile::link(wrfda_root+"/var/obsproc/obserr.txt", work_folder+"obserr.txt"); //Препроцессинг метеоинформации в LITTLE_R
    QString filename = work_folder + "ob.little_r";
    Little_r_fm12* little_r_fm12 = new Little_r_fm12(this); /**< указатель на Класс для записи в Little_r приземных наблюдений*/
    little_r_fm12->OpenFile(filename); //Открываем файл для записи

    QDateTime date = p_namelist_tool->GetDateTimeStart();

    for(int index=26001;index<26008;index++)
    {
        little_r_fm12->writeRZD_DB_data(index,date); //Пишем станцию
    }
    little_r_fm12->CloseFile(); // Закрываем файл

    //////////END WRFDA
    return true;
}