add: more basic macro stuff
add: more efficient relay loading (only ids)
This commit is contained in:
parent
f67b7e9e0f
commit
0103b0b2ff
7 changed files with 555 additions and 7 deletions
src
37
src/cache.c
37
src/cache.c
|
@ -2,6 +2,7 @@
|
|||
#include <logger.h>
|
||||
#include <sql/cache.h>
|
||||
#include <models/junction_tag.h>
|
||||
#include <models/junction_relay_schedule.h>
|
||||
|
||||
|
||||
sqlite3 *cache_database;
|
||||
|
@ -134,14 +135,14 @@ cache_invalidate_schedule(int schedule_id)
|
|||
sprintf(key, "schedule_json:%d", schedule_id);
|
||||
cache_invalidate(key);
|
||||
|
||||
relay_t **relays = relay_get_with_schedule(schedule_id);
|
||||
int *relay_ids = junction_relay_schedule_get_relay_ids_with_schedule(schedule_id);
|
||||
|
||||
for(int i = 0; relays[i] != NULL; ++i)
|
||||
for(int i = 0; relay_ids[i] != 0; ++i)
|
||||
{
|
||||
cache_invalidate_relay(relays[i]->id, -1);
|
||||
cache_invalidate_relay(relay_ids[i], -1);
|
||||
}
|
||||
|
||||
relay_free_list(relays);
|
||||
free(relay_ids);
|
||||
}
|
||||
|
||||
|
||||
|
@ -208,6 +209,34 @@ cache_invalidate_controller(int controller_id)
|
|||
cache_invalidate(key);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
cache_put_json_macro(int macro_id, char *macro_json)
|
||||
{
|
||||
char key[32];
|
||||
sprintf(key, "macro_json:%d", macro_id);
|
||||
cache_insert_value(key, macro_json);
|
||||
}
|
||||
|
||||
char*
|
||||
cache_get_json_macro(int macro_id)
|
||||
{
|
||||
char key[32];
|
||||
sprintf(key, "macro_json:%d", macro_id);
|
||||
return cache_get_value(key);
|
||||
}
|
||||
|
||||
void
|
||||
cache_invalidate_macro(int macro_id)
|
||||
{
|
||||
char key[32];
|
||||
sprintf(key, "macro_json:%d", macro_id);
|
||||
cache_invalidate(key);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
cache_invalidate_tagged(int tag_id)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue