[!T] Added reduce

This commit is contained in:
Ano-sys
2025-01-29 17:17:22 +01:00
parent 95bdf0867d
commit e265ffa526
4 changed files with 179 additions and 43 deletions
+33 -20
View File
@@ -1,6 +1,7 @@
#include <zmq.h>
#include <ctype.h>
#include <pthread.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
@@ -110,7 +111,7 @@ void* workerFunc(void *args){
const TYPE type = get_request_type(request);
char *content = request + TYPE_LENGTH;
char *ret;
char *ret = NULL;
switch(type){
case MAP:
@@ -142,6 +143,7 @@ void* workerFunc(void *args){
zmq_ctx_destroy(context);
exit(1);
}
free(ret); // NULL free is safe
} //loop
}
@@ -188,22 +190,7 @@ char* get_word(const char *request){
return word;
}
char* map(const char *content, key_value_pair **head, key_value_pair **tail){
char *content_iterator = (char*)content;
void *content_start_address = (void*)content;
size_t content_length = strlen(content);
while(content_iterator != NULL && content_iterator < content_start_address + content_length){
char *word = get_word(content_iterator);
if(word != NULL){
if(strcmp(word, "") != 0){
add_word(word, head, tail);
}
content_iterator += strlen(word) + 1; // skip current read word + one delimiter char
free(word);
}
}
char *key_value_pair_list_to_string(key_value_pair **head){
key_value_pair *kvp_it = *head;
char *ret = NULL;
@@ -232,18 +219,44 @@ char* map(const char *content, key_value_pair **head, key_value_pair **tail){
kvp_it = kvp_it->next;
}
}
return ret;
}
char* map(const char *content, key_value_pair **head, key_value_pair **tail){
char *content_iterator = (char*)content;
void *content_start_address = (void*)content;
size_t content_length = strlen(content);
while(content_iterator != NULL && content_iterator < content_start_address + content_length){
char *word = get_word(content_iterator);
if(word != NULL){
if(strcmp(word, "") != 0){
add_word(word, head, tail);
}
content_iterator += strlen(word) + 1; // skip current read word + one delimiter char
free(word);
}
}
char *ret = key_value_pair_list_to_string(head);
if(!ret){
perror("Could not extract key value pairs");
return NULL;
}
free_key_value_pairs(head, tail);
return ret;
}
char* reduce(char *content){
// free_key_value_pairs();
return NULL;
key_value_pair *head = NULL;
key_value_pair *tail = NULL;
extract_key_value_pairs(content, &head, &tail);
char *ret = key_value_pair_list_to_string(&head);
free_key_value_pairs(&head, &tail);
return ret;
}