Commit 541ef599da480739587cebd6b33ec19545a5cbf3
1 parent
57b89866
Update auth plugin doc
Especially remove the flashmq_auth_plugin_allocate_global_memory(), which was an old idea.
Showing
1 changed file
with
12 additions
and
14 deletions
flashmq_plugin.h
| @@ -4,8 +4,8 @@ | @@ -4,8 +4,8 @@ | ||
| 4 | * | 4 | * |
| 5 | * This interface definition is public domain and you are encouraged | 5 | * This interface definition is public domain and you are encouraged |
| 6 | * to copy it to your authentication plugin project, for portability. Including | 6 | * to copy it to your authentication plugin project, for portability. Including |
| 7 | - * this file in your project does not require your code to have a compatibile | ||
| 8 | - * license nor requires you to open source it. | 7 | + * this file in your project does not make it a 'derived work', does not require |
| 8 | + * your code to have a compatibile license nor requires you to open source it. | ||
| 9 | * | 9 | * |
| 10 | * Compile like: gcc -fPIC -shared authplugin.cpp -o authplugin.so | 10 | * Compile like: gcc -fPIC -shared authplugin.cpp -o authplugin.so |
| 11 | */ | 11 | */ |
| @@ -79,7 +79,8 @@ struct FlashMQMessage | @@ -79,7 +79,8 @@ struct FlashMQMessage | ||
| 79 | }; | 79 | }; |
| 80 | 80 | ||
| 81 | /** | 81 | /** |
| 82 | - * @brief flashmq_logf calls the internal logger of FlashMQ. The logger mutexes all access, so is thread-safe. | 82 | + * @brief flashmq_logf calls the internal logger of FlashMQ. The logger mutexes all access, so is thread-safe, and writes to disk |
| 83 | + * asynchronously, so it won't hold you up. | ||
| 83 | * @param level is any of the levels defined above, starting with LOG_. | 84 | * @param level is any of the levels defined above, starting with LOG_. |
| 84 | * @param str | 85 | * @param str |
| 85 | * | 86 | * |
| @@ -96,17 +97,14 @@ int flashmq_auth_plugin_version(); | @@ -96,17 +97,14 @@ int flashmq_auth_plugin_version(); | ||
| 96 | /** | 97 | /** |
| 97 | * @brief flashmq_auth_plugin_allocate_thread_memory is called once by each thread. Never again. | 98 | * @brief flashmq_auth_plugin_allocate_thread_memory is called once by each thread. Never again. |
| 98 | * @param thread_data. Create a memory structure and assign it to *thread_data. | 99 | * @param thread_data. Create a memory structure and assign it to *thread_data. |
| 99 | - * @param global_data. The global data created in flashmq_auth_plugin_allocate_global_memory, if you use it. | ||
| 100 | * @param auth_opts. Map of flashmq_auth_opt_* from the config file. | 100 | * @param auth_opts. Map of flashmq_auth_opt_* from the config file. |
| 101 | * | 101 | * |
| 102 | - * Only allocate the plugin's memory here. Don't open connections, etc. | 102 | + * Only allocate the plugin's memory here. Don't open connections, etc. That's because the reload mechanism doesn't call this function. |
| 103 | * | 103 | * |
| 104 | - * The global data is created by flashmq_auth_plugin_allocate_global_memory() and if you need it, you can assign it to your | ||
| 105 | - * own thread_data storage. It is not passed as argument to other functions. | 104 | + * Because of the multi-core design of FlashMQ, you should treat each thread as its own domain with its own data. You can use static |
| 105 | + * variables for global scope if you must, or even create threads, but do provide proper locking where necessary. | ||
| 106 | * | 106 | * |
| 107 | - * You can use static variables for global scope if you must, but do provide proper locking where necessary. | ||
| 108 | - * | ||
| 109 | - * throw an exception on errors. | 107 | + * You can throw exceptions on errors. |
| 110 | */ | 108 | */ |
| 111 | void flashmq_auth_plugin_allocate_thread_memory(void **thread_data, std::unordered_map<std::string, std::string> &auth_opts); | 109 | void flashmq_auth_plugin_allocate_thread_memory(void **thread_data, std::unordered_map<std::string, std::string> &auth_opts); |
| 112 | 110 | ||
| @@ -115,7 +113,7 @@ void flashmq_auth_plugin_allocate_thread_memory(void **thread_data, std::unorder | @@ -115,7 +113,7 @@ void flashmq_auth_plugin_allocate_thread_memory(void **thread_data, std::unorder | ||
| 115 | * @param thread_data. Delete this memory. | 113 | * @param thread_data. Delete this memory. |
| 116 | * @param auth_opts. Map of flashmq_auth_opt_* from the config file. | 114 | * @param auth_opts. Map of flashmq_auth_opt_* from the config file. |
| 117 | * | 115 | * |
| 118 | - * throw an exception on errors. | 116 | + * You can throw exceptions on errors. |
| 119 | */ | 117 | */ |
| 120 | void flashmq_auth_plugin_deallocate_thread_memory(void *thread_data, std::unordered_map<std::string, std::string> &auth_opts); | 118 | void flashmq_auth_plugin_deallocate_thread_memory(void *thread_data, std::unordered_map<std::string, std::string> &auth_opts); |
| 121 | 119 | ||
| @@ -134,7 +132,7 @@ void flashmq_auth_plugin_deallocate_thread_memory(void *thread_data, std::unorde | @@ -134,7 +132,7 @@ void flashmq_auth_plugin_deallocate_thread_memory(void *thread_data, std::unorde | ||
| 134 | * There is the option to set 'auth_plugin_serialize_init true' in the config file, which allows some mitigation in | 132 | * There is the option to set 'auth_plugin_serialize_init true' in the config file, which allows some mitigation in |
| 135 | * case you run into problems. | 133 | * case you run into problems. |
| 136 | * | 134 | * |
| 137 | - * throw an exception on errors. | 135 | + * You can throw exceptions on errors. |
| 138 | */ | 136 | */ |
| 139 | void flashmq_auth_plugin_init(void *thread_data, std::unordered_map<std::string, std::string> &auth_opts, bool reloading); | 137 | void flashmq_auth_plugin_init(void *thread_data, std::unordered_map<std::string, std::string> &auth_opts, bool reloading); |
| 140 | 138 | ||
| @@ -144,7 +142,7 @@ void flashmq_auth_plugin_init(void *thread_data, std::unordered_map<std::string, | @@ -144,7 +142,7 @@ void flashmq_auth_plugin_init(void *thread_data, std::unordered_map<std::string, | ||
| 144 | * @param auth_opts. Map of flashmq_auth_opt_* from the config file. | 142 | * @param auth_opts. Map of flashmq_auth_opt_* from the config file. |
| 145 | * @param reloading | 143 | * @param reloading |
| 146 | * | 144 | * |
| 147 | - * throw an exception on errors. | 145 | + * You can throw exceptions on errors. |
| 148 | */ | 146 | */ |
| 149 | void flashmq_auth_plugin_deinit(void *thread_data, std::unordered_map<std::string, std::string> &auth_opts, bool reloading); | 147 | void flashmq_auth_plugin_deinit(void *thread_data, std::unordered_map<std::string, std::string> &auth_opts, bool reloading); |
| 150 | 148 | ||
| @@ -162,7 +160,7 @@ void flashmq_auth_plugin_deinit(void *thread_data, std::unordered_map<std::strin | @@ -162,7 +160,7 @@ void flashmq_auth_plugin_deinit(void *thread_data, std::unordered_map<std::strin | ||
| 162 | * | 160 | * |
| 163 | * Implementing this is optional. | 161 | * Implementing this is optional. |
| 164 | * | 162 | * |
| 165 | - * throw an exception on errors. | 163 | + * You can throw exceptions on errors. |
| 166 | */ | 164 | */ |
| 167 | void flashmq_auth_plugin_periodic_event(void *thread_data); | 165 | void flashmq_auth_plugin_periodic_event(void *thread_data); |
| 168 | 166 |