Yet Another eXchange Tool 0.11.3
Loading...
Searching...
No Matches
xt_xmap_dist_dir_bucket_gen.c
Go to the documentation of this file.
1
14/*
15 * Keywords:
16 * Maintainer: Jörg Behrens <behrens@dkrz.de>
17 * Moritz Hanke <hanke@dkrz.de>
18 * Thomas Jahns <jahns@dkrz.de>
19 * URL: https://dkrz-sw.gitlab-pages.dkrz.de/yaxt/
20 *
21 * Redistribution and use in source and binary forms, with or without
22 * modification, are permitted provided that the following conditions are
23 * met:
24 *
25 * Redistributions of source code must retain the above copyright notice,
26 * this list of conditions and the following disclaimer.
27 *
28 * Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 *
32 * Neither the name of the DKRZ GmbH nor the names of its contributors
33 * may be used to endorse or promote products derived from this software
34 * without specific prior written permission.
35 *
36 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
37 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
38 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
39 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
40 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
41 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
42 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
43 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
44 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
45 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
46 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
47 */
48#ifdef HAVE_CONFIG_H
49#include <config.h>
50#endif
51
52#include <stdlib.h>
53
56#include "core/ppm_xfuncs.h"
57
60{
61 return xcalloc(sizeof (struct Xt_xmdd_bucket_gen_), 1);
62}
63
64void
69
70void
75 Xt_xmdd_bucket_gen_get_intersect_max_num get_intersect_max_num,
77 size_t gen_state_size,
78 void *init_params)
79{
81 gen->init = (Xt_xmdd_bucket_gen_init_state_internal)(void (*)(void))init;
82 gen->destroy = destroy;
83 gen->get_intersect_max_num = get_intersect_max_num;
84 gen->next = next;
85 gen->gen_state_size = gen_state_size;
86 gen->init_params = init_params;
87}
88
89
90
91
92/*
93 * Local Variables:
94 * c-basic-offset: 2
95 * coding: utf-8
96 * indent-tabs-mode: nil
97 * show-trailing-whitespace: t
98 * require-trailing-newline: t
99 * End:
100 */
add versions of standard API functions not returning on error
#define xcalloc(nmemb, size)
Definition ppm_xfuncs.h:68
Xt_xmdd_bucket_gen_init_state_f init_f
Xt_xmdd_bucket_gen_destroy_state destroy
Xt_xmdd_bucket_gen_init_state_internal init
Xt_xmdd_bucket_gen_get_intersect_max_num get_intersect_max_num
int(* Xt_xmdd_bucket_gen_init_state)(void *gen_state, Xt_idxlist src_idxlist, Xt_idxlist dst_idxlist, Xt_config config, const struct Xt_xmdd_bucket_gen_comms *comms, void *init_params)
void(* Xt_xmdd_bucket_gen_destroy_state)(void *gen_state)
int(* Xt_xmdd_bucket_gen_get_intersect_max_num)(void *gen_state, int type)
struct Xt_com_list(* Xt_xmdd_bucket_gen_next)(void *gen_state, int type)
Xt_xmdd_bucket_gen xt_xmdd_bucket_gen_new(void)
void xt_xmdd_bucket_gen_define_interface(Xt_xmdd_bucket_gen gen, Xt_xmdd_bucket_gen_init_state init, Xt_xmdd_bucket_gen_destroy_state destroy, Xt_xmdd_bucket_gen_get_intersect_max_num get_intersect_max_num, Xt_xmdd_bucket_gen_next next, size_t gen_state_size, void *init_params)
void xt_xmdd_bucket_gen_delete(Xt_xmdd_bucket_gen gen)
Default bucket generator for creation of distributed directories.
int(* Xt_xmdd_bucket_gen_init_state_f)(void *gen_state, Xt_idxlist src_idxlist, Xt_idxlist dst_idxlist, Xt_config config, struct Xt_xmdd_bucket_gen_comms_f *comms, void *init_params)
int(* Xt_xmdd_bucket_gen_init_state_internal)(void *gen_state, Xt_idxlist src_idxlist, Xt_idxlist dst_idxlist, Xt_config config, const struct Xt_xmdd_bucket_gen_comms *comms, void *init_params, const struct Xt_xmdd_bucket_gen_ *gen)