Commit 541ef599da480739587cebd6b33ec19545a5cbf3

Authored by Wiebe Cazemier
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&lt;std::string, @@ -144,7 +142,7 @@ void flashmq_auth_plugin_init(void *thread_data, std::unordered_map&lt;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&lt;std::strin @@ -162,7 +160,7 @@ void flashmq_auth_plugin_deinit(void *thread_data, std::unordered_map&lt;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