Exemple #1
0
void * enkf_main_init_case_from_existing_JOB( void * self , const stringlist_type * args) {
  enkf_main_type * enkf_main = enkf_main_safe_cast( self );

  const char * source_case = stringlist_iget( args , 0 );
  enkf_fs_type * source_fs = enkf_main_mount_alt_fs( enkf_main , source_case , true );
  {
    enkf_fs_type * target_fs;

    if (stringlist_get_size(args) > 1) {
      const char * current_case = enkf_main_get_current_fs(enkf_main);
      const char * target_case = stringlist_iget( args , 1 );
      if (0 != strcmp(current_case, target_case)) {
        target_fs = enkf_main_mount_alt_fs( enkf_main , target_case , true );
      } else
        target_fs = enkf_fs_get_ref( enkf_main_get_fs(enkf_main) );  // Using get_ref so that we can unconditionally call decref() further down.
    } else
      target_fs = enkf_fs_get_ref( enkf_main_get_fs(enkf_main) );    // Using get_ref so that we can unconditionally call decref() further down.

    enkf_main_init_case_from_existing(enkf_main, source_fs, 0, ANALYZED, target_fs);
    enkf_fs_decref(target_fs);
  }
  enkf_fs_decref(source_fs);

  return NULL;
}
Exemple #2
0
enkf_fs_type * enkf_fs_mount( const char * mount_point , bool read_only) {
  FILE * stream = fs_driver_open_fstab( mount_point , false );
  
  if (stream != NULL) {
    enkf_fs_type * fs = NULL;
    fs_driver_assert_magic( stream );
    fs_driver_assert_version( stream , mount_point );
    {
      fs_driver_impl driver_id = util_fread_int( stream );
    
      switch( driver_id ) {
      case( BLOCK_FS_DRIVER_ID ):
        fs = enkf_fs_mount_block_fs( stream , mount_point , read_only );
        break;
      case( PLAIN_DRIVER_ID ):
        fs = enkf_fs_mount_plain( stream , mount_point , read_only );
        break;
      default:
        util_abort("%s: unrecognized driver_id:%d \n",__func__ , driver_id );
      }
    }
    fclose( stream );
    enkf_fs_init_path_fmt( fs );
    enkf_fs_fread_time_map( fs );
    enkf_fs_fread_cases_config( fs );
    enkf_fs_fread_state_map( fs );
    enkf_fs_fread_misfit( fs );
    
    enkf_fs_get_ref( fs );
    return fs;
  }
  return NULL;
}
Exemple #3
0
enkf_fs_type * enkf_main_get_fs_ref(const enkf_main_type * enkf_main) {
    return enkf_fs_get_ref( enkf_main->dbase );
}