@@ -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