DistDir
setting.h
Go to the documentation of this file.
1 /*
2  * @file setting.h
3  *
4  * @copyright Copyright (C) 2024 Enrico Degregori <enrico.degregori@gmail.com>
5  *
6  * @author Enrico Degregori <enrico.degregori@gmail.com>
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions are met:
10 
11  * 1. Redistributions of source code must retain the above copyright notice, this
12  * list of conditions and the following disclaimer.
13 
14  * 2. Redistributions in binary form must reproduce the above copyright notice,
15  * this list of conditions and the following disclaimer in the documentation
16  * and/or other materials provided with the distribution.
17 
18  * 3. Neither the name of the copyright holder nor the names of its
19  * contributors may be used to endorse or promote products derived from
20  * this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 
34 #ifndef SETTING_H
35 #define SETTING_H
36 
42 typedef enum {
43  CPU = 0,
45  GPU_AMD = 2
47 
62 };
63 
71  verbose_false = 1
72 };
73 
80  mergesort = 0,
81  quicksort = 1,
82  timsort = 2
83 };
84 
90 struct t_config {
98  enum distdir_sort sort;
99 };
100 typedef struct t_config t_config;
101 
110 
119 
130 void set_config_exchanger(int exchanger_type);
131 
141 void set_config_verbose(int verbose_type);
142 
153 void set_config_sort(int sort_type);
154 
165 
176 
187 
188 #endif
int get_config_verbose()
get current verbose configuration
int get_config_exchanger()
get current exchanger configuration
void set_config_sort(int sort_type)
Set library sort algorithm.
void distdir_initialize()
Initialize the library.
void set_config_verbose(int verbose_type)
Set library verbosity.
int get_config_sort()
get current sert algorithm configuration
void set_config_exchanger(int exchanger_type)
Set library exchanger type.
void distdir_finalize()
Finalize the library.
distdir_verbose
Enum for verbosity.
Definition: setting.h:69
@ verbose_false
Definition: setting.h:71
@ verbose_true
Definition: setting.h:70
distdir_hardware
Enum for supported hardware.
Definition: setting.h:42
@ CPU
Definition: setting.h:43
@ GPU_NVIDIA
Definition: setting.h:44
@ GPU_AMD
Definition: setting.h:45
distdir_exchanger
Enum for supported exchanger.
Definition: setting.h:53
@ IsendIrecv2NoWait
Definition: setting.h:59
@ IsendIrecv2
Definition: setting.h:55
@ IsendRecv2NoWait
Definition: setting.h:61
@ IsendIrecv1
Definition: setting.h:54
@ IsendRecv2
Definition: setting.h:57
@ IsendRecv1NoWait
Definition: setting.h:60
@ IsendIrecv1NoWait
Definition: setting.h:58
@ IsendRecv1
Definition: setting.h:56
distdir_sort
Enum for supported sorting algorithms.
Definition: setting.h:79
@ mergesort
Definition: setting.h:80
@ timsort
Definition: setting.h:82
@ quicksort
Definition: setting.h:81
The structure contains information about the library configuration.
Definition: setting.h:90
enum distdir_verbose verbose
verbose type
Definition: setting.h:96
enum distdir_exchanger exchanger
exchanger type
Definition: setting.h:94
enum distdir_sort sort
sort type
Definition: setting.h:98
int initialized
define initialization state of the library
Definition: setting.h:92