Exemple #1
0
Bucket *Bucket_new(size_t size, const char *key, const void *value, size_t value_size){
    Bucket *bucket = malloc(size);
    check_mem(bucket);

    bucket->init = Bucket_init;
    bucket->destroy = Bucket_destroy;
    bucket->print = Bucket_print;

    bucket->get = Bucket_get;
    bucket->set = Bucket_set;

    if(bucket->init(bucket, key, value, value_size) == EXIT_FAILURE) {
        throw("bucket init failed");
    } else {
        // all done, we made an object of any type
        return bucket;
    }

error:
    if(bucket) { bucket->destroy(bucket); };
    return NULL;
};