Exemple #1
0
rc_t write_statistic_into_tab( KDirectory *dir, statistic * data,
        const KNamelist *schema_list, const char *output_file_path,
        uint64_t * written, bool show_progress )
{
    VDBManager *my_manager;
    rc_t rc;

    if ( written != NULL ) *written = 0;
    rc = VDBManagerMakeUpdate ( &my_manager, dir );
    if ( rc != 0 )
        LogErr( klogInt, rc, "VDBManagerMakeUpdate() failed\n" );
    else
    {
        VSchema * my_schema;
        rc = make_schema( schema_list, my_manager, &my_schema );
        if ( rc == 0 )
        {
            VTable * my_table;
            rc = VDBManagerCreateTable( my_manager, &my_table, my_schema, 
                                        "NCBI:align:tbl:qstat",
                                        kcmInit | kcmParents,
                                        output_file_path );
            if ( rc != 0 )
                LogErr( klogInt, rc, "VDBManagerCreateTable() failed\n" );
            else
            {
                rc = write_statistic_cmn( my_table, data, written, show_progress );
                VTableRelease( my_table );
            }
            VSchemaRelease( my_schema );
        }
        VDBManagerRelease( my_manager );
    }
    return rc;
}
Exemple #2
0
schema_p new_schema ( const char *name )
{
  tbl_p tbl = (tbl_p) malloc (sizeof (tbl_desc_struct));
  tbl->sch = make_schema ( name );
  tbl->sch->tbl = tbl;
  tbl->num_records = 0;
  tbl->current_pg = NULL;
  tbl->next = db_tables;
  db_tables = tbl;
  return tbl->sch;
}
Exemple #3
0
SyncMetadataManager::SyncMetadataManager(std::string path,
                                         bool should_encrypt,
                                         util::Optional<std::vector<char>> encryption_key)
{
    constexpr uint64_t SCHEMA_VERSION = 1;
    std::lock_guard<std::mutex> lock(m_metadata_lock);

    Realm::Config config;
    config.path = std::move(path);
    config.schema = make_schema();
    config.schema_version = SCHEMA_VERSION;
    config.schema_mode = SchemaMode::Automatic;
#if REALM_PLATFORM_APPLE
    if (should_encrypt && !encryption_key) {
        encryption_key = keychain::metadata_realm_encryption_key();
    }
#endif
    if (should_encrypt) {
        if (!encryption_key) {
            throw std::invalid_argument("Metadata Realm encryption was specified, but no encryption key was provided.");
        }
        config.encryption_key = std::move(*encryption_key);
    }

    // Open the Realm.
    SharedRealm realm = Realm::get_shared_realm(config);

    // Get data about the (hardcoded) schemas.
    DescriptorRef descriptor = ObjectStore::table_for_object_type(realm->read_group(),
                                                                  c_sync_userMetadata)->get_descriptor();
    m_user_schema = {
        descriptor->get_column_index(c_sync_identity),
        descriptor->get_column_index(c_sync_marked_for_removal),
        descriptor->get_column_index(c_sync_user_token),
        descriptor->get_column_index(c_sync_auth_server_url),
        descriptor->get_column_index(c_sync_user_is_admin),
    };

    descriptor = ObjectStore::table_for_object_type(realm->read_group(), c_sync_fileActionMetadata)->get_descriptor();
    m_file_action_schema = {
        descriptor->get_column_index(c_sync_original_name),
        descriptor->get_column_index(c_sync_new_name),
        descriptor->get_column_index(c_sync_action),
        descriptor->get_column_index(c_sync_url),
        descriptor->get_column_index(c_sync_identity)
    };

    m_metadata_config = std::move(config);
}
Exemple #4
0
rc_t write_statistic_into_db( KDirectory *dir, statistic * data,
         const KNamelist *schema_list, const char *src_path,
        uint64_t * written, bool show_progress )
{
    VDBManager *my_manager;
    rc_t rc;

    if ( written != NULL ) *written = 0;
    rc = VDBManagerMakeUpdate ( &my_manager, dir );
    if ( rc != 0 )
        LogErr( klogInt, rc, "VDBManagerMakeUpdate() failed\n" );
    else
    {
        VSchema * my_schema;
        rc = make_schema( schema_list, my_manager, &my_schema );
        if ( rc == 0 )
        {
            VDatabase *my_database;
            rc = VDBManagerOpenDBUpdate( my_manager, &my_database, 
                                         my_schema, src_path );
            if ( rc != 0 )
                LogErr( klogInt, rc, "VDBManagerOpenDBUpdate() failed\n" );
            else
            {
                VTable * my_table;
                rc = VDatabaseCreateTable( my_database, &my_table,
                                           "QUAL_STAT",
                                           kcmOpen | kcmParents,
                                           "QUAL_STAT" );
                if ( rc !=0 )
                    LogErr( klogInt, rc, "VDatabaseCreateTable() failed\n" );
                else
                {
                    rc = write_statistic_cmn( my_table, data, written, show_progress );
                    VTableRelease( my_table );
                }
                VDatabaseRelease( my_database );
            }
            VSchemaRelease( my_schema );
        }
        VDBManagerRelease( my_manager );
    }
    return rc;
}