@@ -283,6 +283,24 @@ namespace wsrep
283283 */
284284 enum wsrep::provider::status send_pending_rollback_events ();
285285
286+ /* *
287+ * Load WSRep provider.
288+ *
289+ * @param provider WSRep provider library to be loaded.
290+ * @param provider_options_cb Callback to get provider options.
291+ * The function to be called must be
292+ * idempotent.
293+ * @param services Application defined services passed to
294+ * the provider.
295+ *
296+ * @return Zero on success, non-zero on error.
297+ */
298+ int load_provider (const std::string& provider,
299+ const std::function<std::string()>& provider_options_cb,
300+ const wsrep::provider::services& services
301+ = wsrep::provider::services());
302+
303+
286304 /* *
287305 * Load WSRep provider.
288306 *
@@ -293,11 +311,18 @@ namespace wsrep
293311 * the provider.
294312 *
295313 * @return Zero on success, non-zero on error.
314+ *
315+ * @note Provided for backward compatibility.
296316 */
297317 int load_provider (const std::string& provider,
298318 const std::string& provider_options,
299319 const wsrep::provider::services& services
300- = wsrep::provider::services());
320+ = wsrep::provider::services())
321+ {
322+ return load_provider (provider,
323+ [provider_options]() { return provider_options; },
324+ services);
325+ }
301326
302327 using provider_factory_func =
303328 std::function<decltype (wsrep::provider::make_provider)>;
0 commit comments