Добавил удаление устройств ввода вывода

pull/4/head
Igor Belitskiy 2 years ago
parent 22a5defbcd
commit f8ffc74518

@ -733,23 +733,36 @@ int tree_view_edit() {
main_config.hard_raw_limit[index] = edit_get_hard(); main_config.hard_raw_limit[index] = edit_get_hard();
main_config.swap[index] = edit_get_limit_swap(); main_config.swap[index] = edit_get_limit_swap();
main_config.cpu_limit[index] = edit_get_limit_cpu(); main_config.cpu_limit[index] = edit_get_limit_cpu();
//main_config.i_o_limit_read[index] = edit_get_read_device();
//main_config.i_o_limit_write[index] = edit_get_write_device();
// philos_free_string_array(&main_config.i_o_limit_read[index], index);
// philos_free_int_array(&main_config.i_o_limit_read_size[index], index);
// philos_free_string_array(&main_config.i_o_limit_write[index], index);
// philos_free_int_array(&main_config.i_o_limit_write_size[index], index);
// philos_free_string_array(&main_config.disk[index], index);
yon_char_parsed_copy(&main_config.i_o_limit_read[index], edit_get_read_device());
philos_array_int_copy(&main_config.i_o_limit_read_size[index], edit_get_read_device_size_pow());
yon_char_parsed_copy(&main_config.disk[index], edit_get_select_device());
yon_char_parsed_copy(&main_config.i_o_limit_write[index], edit_get_write_device());
philos_array_int_copy(&main_config.i_o_limit_write_size[index], edit_get_write_device_size_pow());
yon_char_parsed_copy(&main_config.disk[index], edit_get_select_device());
main_config.soft_raw_limit_size[index] = edit_get_soft_size(); main_config.soft_raw_limit_size[index] = edit_get_soft_size();
main_config.hard_raw_limit_size[index] = edit_get_hard_size(); main_config.hard_raw_limit_size[index] = edit_get_hard_size();
main_config.swap_size[index] = edit_get_limit_swap_size(); main_config.swap_size[index] = edit_get_limit_swap_size();
main_config.cpu_limit_size[index] = edit_get_limit_cpu_size(); main_config.cpu_limit_size[index] = edit_get_limit_cpu_size();
//main_config.i_o_limit_read_size[index] = edit_get_read_device_size();
//main_config.i_o_limit_write_size[index] = edit_get_write_device_size(); char* str_io_read = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_read, main_config.i_o_limit_read_size, index);
char* str_io_write = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index], gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index],
1,main_config.quota_volume[index], 1,main_config.quota_volume[index],
2,main_config.soft_raw_limit[index], 2,main_config.soft_raw_limit[index],
3,main_config.hard_raw_limit[index], 3,main_config.hard_raw_limit[index],
4,main_config.swap[index], 4,main_config.swap[index],
5,main_config.cpu_limit[index] 5,main_config.cpu_limit[index],
/*6,main_config.i_o_limit_read[index], 6,str_io_read,
7,main_config.i_o_limit_write[index],-1*/); 7,str_io_write,-1);
return 1; return 1;
} }
else { else {
@ -892,11 +905,17 @@ void tree_view_del_line() {
main_config.size_tree_view++; main_config.size_tree_view++;
main_config.cpu_limit = yon_char_parsed_shrink(main_config.cpu_limit, &main_config.size_tree_view,index); main_config.cpu_limit = yon_char_parsed_shrink(main_config.cpu_limit, &main_config.size_tree_view,index);
main_config.size_tree_view++; main_config.size_tree_view++;
//main_config.i_o_limit_read = yon_char_parsed_shrink(main_config.i_o_limit_read, &main_config.size_tree_view,index); main_config.i_o_limit_read = yon_char_parsed_shrink_n3(main_config.i_o_limit_read, &main_config.size_tree_view,index);
//main_config.size_tree_view++; main_config.size_tree_view++;
//main_config.i_o_limit_write = yon_char_parsed_shrink(main_config.i_o_limit_write, &main_config.size_tree_view,index); main_config.i_o_limit_write = yon_char_parsed_shrink_n3(main_config.i_o_limit_write, &main_config.size_tree_view,index);
//main_config.size_tree_view++; main_config.size_tree_view++;
main_config.i_o_limit_write = yon_char_parsed_shrink_n3(main_config.disk, &main_config.size_tree_view,index);
main_config.size_tree_view++;
main_config.i_o_limit_read_size = remove_element_int_array_n3(main_config.i_o_limit_read_size, &main_config.size_tree_view,index);
main_config.size_tree_view++;
main_config.i_o_limit_write_size = remove_element_int_array_n3(main_config.i_o_limit_write_size, &main_config.size_tree_view,index);
main_config.size_tree_view++;
main_config.type_quota_size = remove_element_int_array(main_config.type_quota_size, &main_config.size_tree_view,index); main_config.type_quota_size = remove_element_int_array(main_config.type_quota_size, &main_config.size_tree_view,index);
main_config.size_tree_view++; main_config.size_tree_view++;
main_config.quota_volume_size = remove_element_int_array(main_config.quota_volume_size, &main_config.size_tree_view,index); main_config.quota_volume_size = remove_element_int_array(main_config.quota_volume_size, &main_config.size_tree_view,index);
@ -908,10 +927,7 @@ void tree_view_del_line() {
main_config.swap_size = remove_element_int_array(main_config.swap_size, &main_config.size_tree_view,index); main_config.swap_size = remove_element_int_array(main_config.swap_size, &main_config.size_tree_view,index);
main_config.size_tree_view++; main_config.size_tree_view++;
main_config.cpu_limit_size = remove_element_int_array(main_config.cpu_limit_size, &main_config.size_tree_view,index); main_config.cpu_limit_size = remove_element_int_array(main_config.cpu_limit_size, &main_config.size_tree_view,index);
//main_config.size_tree_view++;
//main_config.i_o_limit_read_size = remove_element_int_array(main_config.i_o_limit_read_size, &main_config.size_tree_view,index);
//main_config.size_tree_view++;
//main_config.i_o_limit_write_size = remove_element_int_array(main_config.i_o_limit_write_size, &main_config.size_tree_view,index);
main_fill_tree_view_after_remove(); main_fill_tree_view_after_remove();
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), model); gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), model);
free(str_iter); free(str_iter);
@ -992,14 +1008,6 @@ char* save_format_value(int index) {
} }
value = add_io_str_format_ubconfig(value, "IOReadBandwidthMax", main_config.i_o_limit_read, main_config.disk, index); value = add_io_str_format_ubconfig(value, "IOReadBandwidthMax", main_config.i_o_limit_read, main_config.disk, index);
value = add_io_str_format_ubconfig(value, "IOWriteBandwidthMax", main_config.i_o_limit_write, main_config.disk, index); value = add_io_str_format_ubconfig(value, "IOWriteBandwidthMax", main_config.i_o_limit_write, main_config.disk, index);
//if (strstr(main_config.i_o_limit_read[index], "-") == NULL) {
//value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("IOReadBandwidthMax", main_config.i_o_limit_read[index],main_config.i_o_limit_read_size[index]), NULL);
// split_simvol[0] = ',';
// split_simvol[1] = '\0';
//}
//if (strstr(main_config.i_o_limit_write[index], "-") == NULL) {
//value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("IOWriteBandwidthMax", main_config.i_o_limit_write[index],main_config.i_o_limit_write_size[index]), NULL);
//}
return value; return value;
} }
char* add_io_str_format_ubconfig(char* cmd_io, char* key, char*** i_o_limit, char*** disk, int index) { char* add_io_str_format_ubconfig(char* cmd_io, char* key, char*** i_o_limit, char*** disk, int index) {
@ -1113,14 +1121,16 @@ void main_fill_tree_view_after_remove() {
for (int index= 0; index < main_config.size_tree_view; index++) { for (int index= 0; index < main_config.size_tree_view; index++) {
GtkTreeIter iter; GtkTreeIter iter;
gtk_list_store_append(main_config.list,&iter); gtk_list_store_append(main_config.list,&iter);
char* str_io_read = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_read, main_config.i_o_limit_read_size, index);
char* str_io_write = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index], gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index],
1,main_config.quota_volume[index], 1,main_config.quota_volume[index],
2,main_config.soft_raw_limit[index], 2,main_config.soft_raw_limit[index],
3,main_config.hard_raw_limit[index], 3,main_config.hard_raw_limit[index],
4,main_config.swap[index], 4,main_config.swap[index],
5,main_config.cpu_limit[index] 5,main_config.cpu_limit[index],
/*6,main_config.i_o_limit_read[index], 6,str_io_read,
7,main_config.i_o_limit_write[index],-1*/); 7,str_io_write,-1);
} }
} }
@ -1236,8 +1246,8 @@ int main(int argc, char *argv[]){
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
GTK_STYLE_PROVIDER(css), GTK_STYLE_PROVIDER(css),
-1); -1);
//load_global_cfg(); load_global_cfg();
//load_system_cfg(); load_system_cfg();
gtk_main(); gtk_main();
} }

@ -756,6 +756,25 @@ char **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete)
return new_char_parsed; return new_char_parsed;
} }
char*** yon_char_parsed_shrink_n3(char ***char_string, int *size, int item_to_delete){
char ***new_char_parsed=NULL;
new_char_parsed=malloc(sizeof(char**)*((*size)-1));
int flag = 0;
for (int i=0;i < (*size);i++){
if (i==item_to_delete) {
flag = 1;
}
if (flag == 0) {
yon_char_parsed_copy(&char_string[i], &new_char_parsed[i]);
}
else if (flag == 1 && i!=item_to_delete) {
yon_char_parsed_copy(&char_string[i], &new_char_parsed[i-1]);
}
}
(*size)=(*size)-1;
return new_char_parsed;
}
/**[EN] /**[EN]
* *
* Checks if [parameters] string array of length [size] * Checks if [parameters] string array of length [size]
@ -1162,6 +1181,25 @@ int* remove_element_int_array(int* array, int* size, int item_to_delete) {
(*size)=(*size)-1; (*size)=(*size)-1;
return new_int_parsed; return new_int_parsed;
} }
int** remove_element_int_array_n3(int** array, int* size, int item_to_delete) {
int **new_int_parsed=NULL;
new_int_parsed=malloc(sizeof(int*)*((*size)-1));
int flag = 0;
for (int i=0;i < (*size);i++){
if (i==item_to_delete) {
flag = 1;
}
if (flag == 0) {
philos_array_int_copy(&array[i],&new_int_parsed[i]);
}
else if (flag == 1 && i!=item_to_delete) {
philos_array_int_copy(&array[i],&new_int_parsed[i-1]);
}
}
(*size)=(*size)-1;
return new_int_parsed;
}
// Gtk functions // Gtk functions
@ -1271,7 +1309,6 @@ int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find){
for (int i=0;strcmp(str,"")!=0;i++){ for (int i=0;strcmp(str,"")!=0;i++){
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box),i); gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box),i);
str=gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(combo_box)); str=gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(combo_box));
puts(str);
if (!str) return -1; if (!str) return -1;
if (strstr(str,text_to_find)) return i; if (strstr(str,text_to_find)) return i;
} }

@ -162,6 +162,8 @@ void philos_array_string_remove_char(char*** array, char* str_remove, int size)
char **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete); char **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete);
char*** yon_char_parsed_shrink_n3(char ***char_string, int *size, int item_to_delete);
int yon_char_parsed_check_exist(char **parameters, int size, char *param); int yon_char_parsed_check_exist(char **parameters, int size, char *param);
int yon_char_find_count(char *source, char *find); int yon_char_find_count(char *source, char *find);
@ -212,6 +214,8 @@ int yon_launch(thread_output *thread);
int* philos_int_append(int* array, int* size, int value); int* philos_int_append(int* array, int* size, int value);
int* remove_element_int_array(int* array, int* size, int item_to_delete); int* remove_element_int_array(int* array, int* size, int item_to_delete);
int** remove_element_int_array_n3(int** array, int* size, int item_to_delete);
// Gtk functions // Gtk functions
#ifdef __GTK_H__ #ifdef __GTK_H__

@ -129,24 +129,6 @@ void edit_init_windows() {
edit_generate_cmd(); edit_generate_cmd();
} }
char* edit_get_select_device() {
char* text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(edit_widgets->cbtEditDevice));
if (text != NULL) {
return text;
}
else {
char* str = (char*)malloc(sizeof(char*)*2);
str[0] = '-';
str[1] = '\0';
return str;
}
}
int edit_get_read_device_size() {
return gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cbtEditRead));
}
int edit_get_write_device_size() {
return gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cbtEditWrite));
}
int edit_get_soft_size() { int edit_get_soft_size() {
return gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cmSevereRestrictionEdit)); return gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cmSevereRestrictionEdit));
} }
@ -160,13 +142,20 @@ int edit_get_limit_swap_size() {
return gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cmbPaddingFLEdit)); return gtk_combo_box_get_active(GTK_COMBO_BOX(edit_widgets->cmbPaddingFLEdit));
} }
char* edit_get_read_device() { char*** edit_get_read_device() {
return philos_get_size_bite(edit_widgets->chbEditRead, edit_widgets->spinEditRead, return &obj_edit_config.i_o_limit_read;
edit_widgets->cbtEditRead); }
int** edit_get_read_device_size_pow() {
return &obj_edit_config.i_o_limit_read_size;
}
char*** edit_get_write_device() {
return &obj_edit_config.i_o_limit_write;
}
int** edit_get_write_device_size_pow() {
return &obj_edit_config.i_o_limit_write_size;
} }
char* edit_get_write_device() { char*** edit_get_select_device() {
return philos_get_size_bite(edit_widgets->chbEditWrite, edit_widgets->spinEditWrite, return &obj_edit_config.disk;
edit_widgets->cbtEditWrite);
} }
char* edit_get_soft() { char* edit_get_soft() {
return philos_get_size_bite(edit_widgets->chkSoftRestrictionEdit, edit_widgets->spiSevereRestrictionEdit, return philos_get_size_bite(edit_widgets->chkSoftRestrictionEdit, edit_widgets->spiSevereRestrictionEdit,

@ -68,9 +68,9 @@ void edit_destroy(GtkWidget *self);
void edit_init_windows(); void edit_init_windows();
void wrapper_edit_init_windows_size_memory(GtkWidget *spin); void wrapper_edit_init_windows_size_memory(GtkWidget *spin);
void edit_set_active_widgets(GtkWidget *check, GtkWidget *spin, GtkWidget *combo, int flag_cpu, char* cmd); void edit_set_active_widgets(GtkWidget *check, GtkWidget *spin, GtkWidget *combo, int flag_cpu, char* cmd);
char* edit_get_select_device(); char*** edit_get_select_device();
char* edit_get_read_device(); char*** edit_get_read_device();
char* edit_get_write_device(); char*** edit_get_write_device();
char* edit_get_soft(); char* edit_get_soft();
char* edit_get_hard(); char* edit_get_hard();
char* edit_get_limit_cpu(); char* edit_get_limit_cpu();
@ -85,9 +85,9 @@ void edit_set_hard(char* str_value, int pow_mem);
void edit_set_limit_cpu(char* str_value, int pow_mem); void edit_set_limit_cpu(char* str_value, int pow_mem);
void edit_set_limit_swap(char* str_value, int pow_mem); void edit_set_limit_swap(char* str_value, int pow_mem);
void edit_temp_set(char* str_value, int pow_mem, GtkWidget* cheek, GtkWidget* spin, GtkWidget* combo_box_text); void edit_temp_set(char* str_value, int pow_mem, GtkWidget* cheek, GtkWidget* spin, GtkWidget* combo_box_text);
int** edit_get_read_device_size_pow();
int** edit_get_write_device_size_pow();
int edit_get_read_device_size();
int edit_get_write_device_size();
int edit_get_soft_size(); int edit_get_soft_size();
int edit_get_hard_size(); int edit_get_hard_size();
int edit_get_limit_cpu_size(); int edit_get_limit_cpu_size();

Loading…
Cancel
Save