From 5610361769797102c3067359b60e49262c28cdae Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Thu, 27 Jul 2023 10:27:52 +0600 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D0=B0=D1=80=D1=81=D0=B5=D1=80=20=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D0=B2=D0=BD=D1=8B=D1=85=20=D0=B4=D0=B8=D1=81=D0=BA?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/model/my_device.c | 75 ++++++++++++++++--------------------- source/model/my_device.h | 14 +++---- source/model/philos_utils.c | 26 ------------- source/model/philos_utils.h | 1 - 4 files changed, 40 insertions(+), 76 deletions(-) diff --git a/source/model/my_device.c b/source/model/my_device.c index 2fe7f20..96153ab 100644 --- a/source/model/my_device.c +++ b/source/model/my_device.c @@ -1,74 +1,65 @@ #include "my_device.h" -device_config obj_device_config; +vector vec_disk; -device_config *get_device_cfg() +vector *get_device_vec() { - return &obj_device_config; + return &vec_disk; } void device_disk_parsed() { - // findmnt -lo source,target,fstype,label -t ext4 - char *cmd = "lsblk --fs --raw --output PATH,FSTYPE --exclude 7,11,253"; + char *cmd = "findmnt -lo source,target,fstype,label -t ext4"; + vector_init(&vec_disk); int size = 0; char **responce = yon_config_load(cmd, &size); - obj_device_config.size_disk = 0; char *split_simvol = " "; for (int index = 1; index < size; index++) { char *disk = yon_char_divide_search(responce[index], "\n", -1); - if (yon_char_find_count(disk, " ") != 0) + if (yon_char_find_count(disk, " ") != 0 && !strstr(disk, "zram") && !strstr(disk, "[")) { int size_str = 0; - char* str_info = yon_char_parse(disk, size_str, ' '); - char** name_disk = yon_char_divide_search(disk, " ", -1); + char** name_disk = yon_char_parse(disk, &size_str, " "); int flag = 0; + device_config* obj_device_config = malloc(sizeof(device_config)); for (int index_1 = 0; index_1 < size_str; index_1++) { - if (!strstr(name_disk[index_1], " ")) { - flag+=1; + if (strlen(name_disk[index_1])) { if (flag == 0) { - obj_device_config.name_disk = yon_char_new(name_disk[index_1]) - } - if (flag == 1) { - + obj_device_config->name_disk = yon_char_new(name_disk[index_1]); } - if (flag == 2) { - + else if (flag == 1) { + obj_device_config->mounted = yon_char_new(name_disk[index_1]); } - if (flag == 3) { - + else if (flag == 2) { + obj_device_config->file_system = yon_char_new(name_disk[index_1]); } - } + else if (flag == 3) { + obj_device_config->type_dick = yon_char_new(name_disk[index_1]); } - - obj_device_config.name_disk = yon_char_parsed_append(obj_device_config.name_disk, &obj_device_config.size_disk, name_disk); - obj_device_config.size_disk--; - obj_device_config.file_system = yon_char_parsed_append(obj_device_config.file_system, &obj_device_config.size_disk, disk); - obj_device_config.size_disk--; - obj_device_config.mounted = yon_char_parsed_append(obj_device_config.mounted, &obj_device_config.size_disk, ""); - obj_device_config.size_disk--; - obj_device_config.type_dick = yon_char_parsed_append(obj_device_config.type_dick, &obj_device_config.size_disk, ""); - obj_device_config.size_disk--; - disk = yon_char_replace(disk, " ", ""); - if (strlen(disk) != 0) - { - char *description_disk = yon_char_unite(name_disk, - split_simvol, - disk, - NULL); - obj_device_config.description_disk = yon_char_parsed_append(obj_device_config.description_disk, &obj_device_config.size_disk, description_disk); - free(description_disk); + flag+=1; + } } - free(name_disk); + obj_device_config->description_disk = yon_char_unite(obj_device_config->name_disk,split_simvol, + obj_device_config->file_system, + split_simvol, + obj_device_config->mounted, + split_simvol, + obj_device_config->type_dick, NULL); + vec_disk.pfVectorAdd(&vec_disk, obj_device_config); + philos_free_string_array(&name_disk, size_str); } free(disk); } philos_free_string_array(&responce, size); } + void device_fill_disk(GtkWidget *combo_box_text) { - for (int index = 0; index < obj_device_config.size_disk; index++) - { - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box_text), obj_device_config.description_disk[index]); + if (vec_disk.vectorList.total > 0) { + for (int index = 0; index < vec_disk.vectorList.total; index++) + { + device_config* obj_device_config = (device_config*)vec_disk.pfVectorGet(&vec_disk, index); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box_text), yon_char_new(obj_device_config->description_disk)); + } } } diff --git a/source/model/my_device.h b/source/model/my_device.h index c2ef0e6..89219b4 100644 --- a/source/model/my_device.h +++ b/source/model/my_device.h @@ -5,17 +5,17 @@ #include #include #include "philos_utils.h" +#include "model.h" typedef struct { - char** name_disk; - char** file_system; - char** mounted; - char** type_dick; - char** description_disk; - int size_disk; + char* name_disk; + char* file_system; + char* mounted; + char* type_dick; + char* description_disk; } device_config; void device_disk_parsed(); -device_config* get_device_cfg(); +vector *get_device_vec(); void device_fill_disk(GtkWidget* combo_box_text); size_t get_mem_total(); float get_size_pow_memory(size_t size_memory, int size); diff --git a/source/model/philos_utils.c b/source/model/philos_utils.c index 283c9cd..868e8ad 100644 --- a/source/model/philos_utils.c +++ b/source/model/philos_utils.c @@ -751,32 +751,6 @@ void philos_array_char_pars_to(char*** array, char* to) { } } } -void init_device_disk(temp_config* _config) { - for (int index = 0;index< (get_device_cfg()->size_disk*2);index++){ - _config->disk_read = yon_char_parsed_append(_config->disk_read,&_config->size_disk, "-"); - _config->size_disk--; - _config->i_o_limit_write_size = philos_int_append(_config->i_o_limit_write_size, &_config->size_disk, -3); - _config->size_disk--; - _config->i_o_limit_write = philos_int_append(_config->i_o_limit_write, &_config->size_disk, -3); - _config->size_disk--; - _config->i_o_limit_read_size = philos_int_append(_config->i_o_limit_read_size, &_config->size_disk, -3); - _config->size_disk--; - _config->disk_write = yon_char_parsed_append(_config->disk_write,&_config->size_disk, "-"); - _config->size_disk--; - _config->i_o_limit_read = philos_int_append(_config->i_o_limit_read, &_config->size_disk, -3); - } - _config->i_o_limit_write_size = philos_int_append(_config->i_o_limit_write_size, &_config->size_disk, -2); - _config->size_disk--; - _config->disk_write = yon_char_parsed_append(_config->disk_write, &_config->size_disk, NULL); - _config->size_disk--; - _config->disk_read = yon_char_parsed_append(_config->disk_read, &_config->size_disk, NULL); - _config->size_disk--; - _config->i_o_limit_write = philos_int_append(_config->i_o_limit_write, &_config->size_disk, -2); - _config->size_disk--; - _config->i_o_limit_read = philos_int_append(_config->i_o_limit_read, &_config->size_disk, -2); - _config->size_disk--; - _config->i_o_limit_read_size = philos_int_append(_config->i_o_limit_read_size, &_config->size_disk, -2); -} char** philos_char_parsed_append(char** parsed, int *size, char *string) { parsed = yon_char_parsed_append(parsed, size, string); diff --git a/source/model/philos_utils.h b/source/model/philos_utils.h index 09a2f08..034dbf0 100644 --- a/source/model/philos_utils.h +++ b/source/model/philos_utils.h @@ -17,7 +17,6 @@ #include #include -#include "my_device.h" #define catch(x) ExitJmp:if(__HadError) #define throw(x) {__HadError=true;goto ExitJmp;}