diff --git a/openr/Main.cpp b/openr/Main.cpp index 4487b3484fe..303ec18e54a 100644 --- a/openr/Main.cpp +++ b/openr/Main.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -58,9 +59,6 @@ using apache::thrift::FRAGILE; using apache::thrift::concurrency::ThreadManager; using openr::thrift::OpenrModuleType; -extern void pluginStart(); -extern void pluginStop(); - namespace { // // Local constants @@ -829,7 +827,7 @@ main(int argc, char** argv) { // Call external module for platform specific implementations if (FLAGS_enable_plugin) { - pluginStart(); + pluginStart(PluginArgs{context, prefixManagerLocalCmdUrl}); } // Wait for main-event loop to return diff --git a/openr/plugin/Plugin.cpp b/openr/plugin/Plugin.cpp index d18c0d607b6..317087a481f 100644 --- a/openr/plugin/Plugin.cpp +++ b/openr/plugin/Plugin.cpp @@ -7,8 +7,9 @@ #include "Plugin.h" +namespace openr { void -pluginStart() { +pluginStart(const PluginArgs& pluginArgs) { return; } @@ -16,3 +17,4 @@ void pluginStop() { return; } +} // namespace openr diff --git a/openr/plugin/Plugin.h b/openr/plugin/Plugin.h index 21ed6b2fe60..a96afa959b5 100644 --- a/openr/plugin/Plugin.h +++ b/openr/plugin/Plugin.h @@ -7,5 +7,15 @@ #pragma once -void pluginStart(); +#include +#include "openr/common/Types.h" + +namespace openr { +struct PluginArgs { + fbzmq::Context& zmqContext; + PrefixManagerLocalCmdUrl prefixManagerUrl; +}; + +void pluginStart(const PluginArgs& pluginArgs); void pluginStop(); +} // namespace openr diff --git a/openr/prefix-manager/PrefixManagerClient.h b/openr/prefix-manager/PrefixManagerClient.h index 3bdc8b0bfda..aeb02f034f1 100644 --- a/openr/prefix-manager/PrefixManagerClient.h +++ b/openr/prefix-manager/PrefixManagerClient.h @@ -19,12 +19,13 @@ namespace openr { -class PrefixManagerClient final { +class PrefixManagerClient { public: PrefixManagerClient( const PrefixManagerLocalCmdUrl& localCmdUrl, fbzmq::Context& context, folly::Optional recvTimeout = folly::none); + virtual ~PrefixManagerClient() = default; folly::Expected addPrefixes( const std::vector& prefixes); @@ -45,9 +46,9 @@ class PrefixManagerClient final { folly::Expected getPrefixesByType(thrift::PrefixType type); - private: - folly::Expected sendRequest( - const thrift::PrefixManagerRequest& request); + protected: + virtual folly::Expected + sendRequest(const thrift::PrefixManagerRequest& request); // Dealer socket to talk with prefix manager fbzmq::Socket prefixManagerCmdSock_;