28 template <
typename R,
typename P = DefaultPipeline>
49 template <
typename T,
typename R,
typename P = DefaultPipeline>
61 : broadcastPool_(broadcastPool),
62 routingData_(routingData),
63 client_(broadcastPool_->clientBootstrapFactory_->newClient()) {
64 client_->pipelineFactory(broadcastPool_->broadcastPipelineFactory_);
68 if (client_->getPipeline()) {
69 client_->getPipeline()->setPipelineManager(
nullptr);
79 void handleConnectError(
const std::exception& ex)
noexcept;
84 std::unique_ptr<BaseClientBootstrap<P>>
client_;
86 bool connectStarted_{
false};
87 bool deletingBroadcast_{
false};
95 std::make_shared<ClientBootstrapFactory>())
96 : serverPool_(serverPool),
97 broadcastPipelineFactory_(pipelineFactory),
98 clientBootstrapFactory_(clientFactory) {}
126 const R& routingData);
132 return (broadcasts_.find(routingData) != broadcasts_.end());
136 broadcasts_.erase(routingData);
virtual folly::Future< P * > connect(BaseClientBootstrap< P > *client, const R &routingData) noexcept=0
std::shared_ptr< BroadcastPipelineFactory< T, R > > broadcastPipelineFactory_
BroadcastPool(std::shared_ptr< ServerPool< R, P >> serverPool, std::shared_ptr< BroadcastPipelineFactory< T, R >> pipelineFactory, std::shared_ptr< BaseClientBootstrapFactory<>> clientFactory=std::make_shared< ClientBootstrapFactory >())
std::shared_ptr< BaseClientBootstrapFactory<> > clientBootstrapFactory_
requires E e noexcept(noexcept(s.error(std::move(e))))
std::map< R, typename BroadcastManager::UniquePtr > broadcasts_
~BroadcastManager() override
BroadcastManager(BroadcastPool< T, R, P > *broadcastPool, const R &routingData)
std::unique_ptr< BaseClientBootstrap< P > > client_
std::unique_ptr< BroadcastManager, folly::DelayedDestruction::Destructor > UniquePtr
folly::SharedPromise< BroadcastHandler< T, R > * > sharedPromise_
bool isBroadcasting(const R &routingData)
virtual void deleteBroadcast(const R &routingData)
std::shared_ptr< ServerPool< R, P > > serverPool_