Verified Commit ab585f22 authored by Alberto Miranda's avatar Alberto Miranda ♨️
Browse files

Add ADM_dataset_[create|destroy]()

parent 0fa44316
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -80,6 +80,22 @@ typedef char* ADM_node_t;
/* A dataset handle */
typedef struct adm_dataset* ADM_dataset_handle_t;

/**
 * Create a dataset from a user-provided id (e.g. a path for POSIX-like file
 * systems or key for key-value stores).
 *
 * @remark Datasets need to be freed by calling ADM_dataset_destroy().
 *
 * @param[in] id The id for the dataset.
 * @return A valid ADM_dataset_handle_t if successful or NULL in case of
 * failure.
 */
ADM_dataset_handle_t
ADM_dataset_create(const char* id);

ADM_return_t
ADM_dataset_destroy(ADM_dataset_handle_t dataset);

/* A job handle */
typedef struct adm_job* ADM_job_t;

+33 −0
Original line number Diff line number Diff line
@@ -36,6 +36,10 @@ struct adm_job {
    uint64_t j_id;
};

struct adm_dataset {
    const char* d_id;
};

ADM_server_t
ADM_server_create(const char* protocol, const char* address) {

@@ -66,6 +70,35 @@ ADM_server_destroy(ADM_server_t server) {
    return ret;
}

ADM_dataset_handle_t
ADM_dataset_create(const char* id) {

    struct adm_dataset* adm_dataset =
            (struct adm_dataset*) malloc(sizeof(struct adm_dataset));

    if(!adm_dataset) {
        LOGGER_ERROR("Could not allocate ADM_dataset_t")
        return NULL;
    }

    adm_dataset->d_id = id;

    return adm_dataset;
}

ADM_return_t
ADM_dataset_destroy(ADM_dataset_handle_t dataset) {
    ADM_return_t ret = ADM_SUCCESS;

    if(!dataset) {
        LOGGER_ERROR("Invalid ADM_dataset_t")
        return ADM_EINVAL;
    }

    free(dataset);
    return ret;
}

/**
 * Initialize a job handle that can be used by clients to refer to a job.
 *