Skip to content

Commit

Permalink
introduce FollyPrefixManagerClient (run on folly Evb)
Browse files Browse the repository at this point in the history
Reviewed By: saifhhasan

Differential Revision: D15058089

fbshipit-source-id: 22dc0e4f3b16eb5f400977f499b69b6e48a31be4
  • Loading branch information
Jingyi Yang authored and facebook-github-bot committed Jun 10, 2019
1 parent e17d2ed commit 26c85b1
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 10 deletions.
6 changes: 2 additions & 4 deletions openr/Main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
#include <openr/platform/NetlinkFibHandler.h>
#include <openr/platform/NetlinkSystemHandler.h>
#include <openr/platform/PlatformPublisher.h>
#include <openr/plugin/Plugin.h>
#include <openr/prefix-manager/PrefixManager.h>
#include <openr/prefix-manager/PrefixManagerClient.h>
#include <openr/spark/Spark.h>
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
4 changes: 3 additions & 1 deletion openr/plugin/Plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@

#include "Plugin.h"

namespace openr {
void
pluginStart() {
pluginStart(const PluginArgs& pluginArgs) {
return;
}

void
pluginStop() {
return;
}
} // namespace openr
12 changes: 11 additions & 1 deletion openr/plugin/Plugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,15 @@

#pragma once

void pluginStart();
#include <fbzmq/zmq/Zmq.h>
#include "openr/common/Types.h"

namespace openr {
struct PluginArgs {
fbzmq::Context& zmqContext;
PrefixManagerLocalCmdUrl prefixManagerUrl;
};

void pluginStart(const PluginArgs& pluginArgs);
void pluginStop();
} // namespace openr
9 changes: 5 additions & 4 deletions openr/prefix-manager/PrefixManagerClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@

namespace openr {

class PrefixManagerClient final {
class PrefixManagerClient {
public:
PrefixManagerClient(
const PrefixManagerLocalCmdUrl& localCmdUrl,
fbzmq::Context& context,
folly::Optional<std::chrono::milliseconds> recvTimeout = folly::none);
virtual ~PrefixManagerClient() = default;

folly::Expected<thrift::PrefixManagerResponse, fbzmq::Error> addPrefixes(
const std::vector<thrift::PrefixEntry>& prefixes);
Expand All @@ -45,9 +46,9 @@ class PrefixManagerClient final {
folly::Expected<thrift::PrefixManagerResponse, fbzmq::Error>
getPrefixesByType(thrift::PrefixType type);

private:
folly::Expected<thrift::PrefixManagerResponse, fbzmq::Error> sendRequest(
const thrift::PrefixManagerRequest& request);
protected:
virtual folly::Expected<thrift::PrefixManagerResponse, fbzmq::Error>
sendRequest(const thrift::PrefixManagerRequest& request);

// Dealer socket to talk with prefix manager
fbzmq::Socket<ZMQ_DEALER, fbzmq::ZMQ_CLIENT> prefixManagerCmdSock_;
Expand Down

0 comments on commit 26c85b1

Please sign in to comment.