diff options
author | Antony Kellermann | 2018-06-25 10:52:50 -0400 |
---|---|---|
committer | Antony Kellermann | 2018-06-25 10:52:50 -0400 |
commit | 71b4f6194f0e776c0139d0f531f430da8383dd68 (patch) | |
tree | 7af13a0aae9ceac6b5a8c250992da252061d5c0c | |
parent | 4b02268aaf2081bf37e4c48a908d73b729019809 (diff) | |
download | aur-71b4f6194f0e776c0139d0f531f430da8383dd68.tar.gz |
Changed Info_Array to use Info for totals
-rw-r--r-- | api.c | 28 | ||||
-rw-r--r-- | api.h | 31 |
2 files changed, 29 insertions, 30 deletions
@@ -35,16 +35,31 @@ Info_Array* api_info_array_init(void) { Info_Array* pInfo_Array = malloc(sizeof(Info_Array)); pointer_alloc_check(pInfo_Array); *pInfo_Array = (Info_Array) { - .array = NULL, .length = 0, .total_spent = EMPTY, .current_value = 0, .ftotal_spent[0] = '\0', - .fcurrent_value[0] = '\0', .profit_total = EMPTY, .profit_total_percent = EMPTY, .profit_last_close = EMPTY, - .profit_last_close_percent = EMPTY, .profit_7d = EMPTY, .profit_7d_percent = EMPTY, .profit_30d = EMPTY, - .profit_30d_percent = EMPTY, .fprofit_total[0] = '\0', .fprofit_total_percent[0] = '\0', - .fprofit_last_close[0] = '\0', .fprofit_last_close_percent[0] = '\0', .fprofit_7d[0] = '\0', - .fprofit_7d_percent[0] = '\0', .fprofit_30d[0] = '\0', .fprofit_30d_percent[0] = '\0' + .array = NULL, .length = 0, .totals = NULL }; return pInfo_Array; } +void info_array_calculate_totals(Info_Array* pInfo_Array) { + strcpy(pInfo_Array->totals->symbol, "TOTALS"); + for (size_t i = 0; i < pInfo_Array->length; i++) { + pInfo_Array->totals->total_spent += pInfo_Array->array[i]->total_spent; + pInfo_Array->totals->current_value += pInfo_Array->array[i]->current_value; + pInfo_Array->totals->profit_total += pInfo_Array->array[i]->profit_total; + pInfo_Array->totals->profit_last_close += pInfo_Array->array[i]->profit_last_close; + pInfo_Array->totals->profit_7d += pInfo_Array->array[i]->profit_7d; + pInfo_Array->totals->profit_30d += pInfo_Array->array[i]->profit_30d; + } + pInfo_Array->totals->profit_total_percent = (100 * (pInfo_Array->totals->current_value - + pInfo_Array->totals->total_spent)) / pInfo_Array->totals->total_spent; + pInfo_Array->totals->profit_last_close_percent = 100 * + pInfo_Array->totals->profit_last_close / pInfo_Array->totals->total_spent; + pInfo_Array->totals->profit_7d_percent = 100 * pInfo_Array->totals->profit_7d / + pInfo_Array->totals->total_spent; + pInfo_Array->totals->profit_30d_percent = 100 * pInfo_Array->totals->profit_30d / + pInfo_Array->totals->total_spent; +} + size_t api_string_writefunc(void* ptr, size_t size, size_t nmemb, String* pString) { size_t new_len = pString->len + size * nmemb; pString->data = realloc(pString->data, new_len + 1); @@ -610,6 +625,7 @@ void api_info_array_destroy(Info_Array** phInfo_Array) { for (size_t i = 0; i < pInfo_Array->length; i++) api_info_destroy(&pInfo_Array->array[i]); free(pInfo_Array->array); + api_info_destroy(&pInfo_Array->totals); free(*phInfo_Array); *phInfo_Array = NULL; }
\ No newline at end of file @@ -126,30 +126,7 @@ struct info { struct info_array { Info** array; size_t length; - - double total_spent; // Total USD spent - double current_value; // Total USD value - - char ftotal_spent[CELL_MAX_LENGTH]; // Total USD spent - char fcurrent_value[CELL_MAX_LENGTH]; // Total USD value - - double profit_total; // Total profit - double profit_total_percent; // Total profit % - double profit_last_close; // Profit since last close - double profit_last_close_percent; // Profit since last close % - double profit_7d; // Profit since seven days ago - double profit_7d_percent; // Profit since seven days ago % - double profit_30d; // Profit since thirty days ago - double profit_30d_percent; // Profit since thirty days ago % - - char fprofit_total[CELL_MAX_LENGTH]; // Total profit - char fprofit_total_percent[CELL_MAX_LENGTH]; // Total profit % - char fprofit_last_close[CELL_MAX_LENGTH]; // Profit since last close - char fprofit_last_close_percent[CELL_MAX_LENGTH]; // Profit since last close % - char fprofit_7d[CELL_MAX_LENGTH]; // Profit since seven days ago - char fprofit_7d_percent[CELL_MAX_LENGTH]; // Profit since seven days ago % - char fprofit_30d[CELL_MAX_LENGTH]; // Profit since thirty days ago - char fprofit_30d_percent[CELL_MAX_LENGTH]; // Profit since thirty days ago % + Info* totals; }; /** @@ -172,6 +149,12 @@ Info* api_info_init(void); Info_Array* api_info_array_init(void); /** + * Adds up values of Info array and sets values in totals. + * @param pInfo_Array + */ +void info_array_calculate_totals(Info_Array* pInfo_Array); + +/** * writefunction for cURL HTTP GET/POST * stolen from a nice man on stackoverflow */ |