3 #ifndef NETDATA_REGISTRY_INTERNALS_H_H
4 #define NETDATA_REGISTRY_INTERNALS_H_H
6 #define REGISTRY_URL_FLAGS_DEFAULT 0x00
7 #define REGISTRY_URL_FLAGS_EXPIRED 0x01
9 #define DICTIONARY_FLAGS DICTIONARY_FLAG_VALUE_LINK_DONT_CLONE | DICTIONARY_FLAG_NAME_LINK_DONT_CLONE | DICTIONARY_FLAG_SINGLE_THREADED
11 // ----------------------------------------------------------------------------
17 // entries counters / statistics
18 unsigned long long persons_count;
19 unsigned long long machines_count;
20 unsigned long long usages_count;
21 unsigned long long urls_count;
22 unsigned long long persons_urls_count;
23 unsigned long long machines_urls_count;
24 unsigned long long log_count;
26 // memory counters / statistics
27 unsigned long long persons_memory;
28 unsigned long long machines_memory;
29 unsigned long long urls_memory;
30 unsigned long long persons_urls_memory;
31 unsigned long long machines_urls_memory;
34 unsigned long long save_registry_every_entries;
35 char *registry_domain;
37 char *registry_to_announce;
38 time_t persons_expiration; // seconds to expire idle persons
39 int verify_cookies_redirects;
41 size_t max_url_length;
42 size_t max_name_length;
48 char *machine_guid_filename;
54 DICTIONARY *persons; // dictionary of REGISTRY_PERSON *, with key the REGISTRY_PERSON.guid
55 DICTIONARY *machines; // dictionary of REGISTRY_MACHINE *, with key the REGISTRY_MACHINE.guid
57 avl_tree registry_urls_root_index;
62 extern int registry_regenerate_guid(const char *guid, char *result);
64 #include "registry_url.h"
65 #include "registry_machine.h"
66 #include "registry_person.h"
69 extern struct registry registry;
71 // REGISTRY LOW-LEVEL REQUESTS (in registry-internals.c)
72 extern REGISTRY_PERSON *registry_request_access(char *person_guid, char *machine_guid, char *url, char *name, time_t when);
73 extern REGISTRY_PERSON *registry_request_delete(char *person_guid, char *machine_guid, char *url, char *delete_url, time_t when);
74 extern REGISTRY_MACHINE *registry_request_machine(char *person_guid, char *machine_guid, char *url, char *request_machine, time_t when);
76 // REGISTRY LOG (in registry_log.c)
77 extern void registry_log(const char action, REGISTRY_PERSON *p, REGISTRY_MACHINE *m, REGISTRY_URL *u, char *name);
78 extern int registry_log_open(void);
79 extern void registry_log_close(void);
80 extern void registry_log_recreate(void);
81 extern ssize_t registry_log_load(void);
83 // REGISTRY DB (in registry_db.c)
84 extern int registry_db_save(void);
85 extern size_t registry_db_load(void);
86 extern int registry_db_should_be_saved(void);
88 #endif //NETDATA_REGISTRY_INTERNALS_H_H