SNode.C
Loading...
Searching...
No Matches
core::socket::stream::ServerFlowController Class Reference

#include <ServerFlowController.h>

Inheritance diagram for core::socket::stream::ServerFlowController:
Collaboration diagram for core::socket::stream::ServerFlowController:

Public Member Functions

 ServerFlowController (net::config::ConfigInstance *configInstance)
Public Member Functions inherited from core::socket::stream::FlowController< ServerFlowController >
 FlowController (net::config::ConfigInstance *configInstance)
FlowControlleroperator= (const FlowController &)=delete
virtual ~FlowController ()
std::string getInstanceName () const
uint64_t getId () const
bool terminateFlow ()
bool isTerminated () const
void stopRetry ()
bool isRetryEnabled () const
ServerFlowControllersetOnFlowRetry (const std::function< void(ServerFlowController *)> &callback)
ServerFlowControllersetOnFlowCompleted (const std::function< void(uint64_t, const std::string &)> &callback)
ServerFlowControllersetOnFlowTerminated (const std::function< void(ServerFlowController *)> &callback)
void startFlow (const std::function< void()> &callback)

Private Member Functions

void observeAcceptEventReceiver (core::eventreceiver::AcceptEventReceiver *acceptEventReceiver)
void terminateAsyncSubFlow () override

Private Attributes

std::set< core::eventreceiver::AcceptEventReceiver * > acceptEventReceivers

Friends

template<typename SocketAcceptorT, typename SocketContextFactoryT, typename... Args>
class SocketServer

Additional Inherited Members

Protected Member Functions inherited from core::socket::stream::FlowController< ServerFlowController >
void reportFlowRetry ()
void armRetryTimer (double timeoutSeconds, const std::function< void()> &dispatcher)

Detailed Description

Definition at line 72 of file ServerFlowController.h.

Constructor & Destructor Documentation

◆ ServerFlowController()

core::socket::stream::ServerFlowController::ServerFlowController ( net::config::ConfigInstance * configInstance)

Definition at line 53 of file ServerFlowController.cpp.

54 : FlowController(configInstance) {
55 }
FlowController(net::config::ConfigInstance *configInstance)

References core::socket::stream::FlowController< ConcreteFlowController >::FlowController().

Here is the call graph for this function:

Member Function Documentation

◆ observeAcceptEventReceiver()

void core::socket::stream::ServerFlowController::observeAcceptEventReceiver ( core::eventreceiver::AcceptEventReceiver * acceptEventReceiver)
private

Definition at line 57 of file ServerFlowController.cpp.

57 {
58 if (acceptEventReceiver != nullptr) {
59 if (acceptEventReceiver->isEnabled()) {
60 acceptEventReceivers.insert(acceptEventReceiver);
61 } else {
62 acceptEventReceivers.erase(acceptEventReceiver);
63 }
64 }
65 }
std::set< core::eventreceiver::AcceptEventReceiver * > acceptEventReceivers

References acceptEventReceivers, and core::DescriptorEventReceiver::isEnabled().

Here is the call graph for this function:

◆ terminateAsyncSubFlow()

void core::socket::stream::ServerFlowController::terminateAsyncSubFlow ( )
overrideprivatevirtual

Implements core::socket::stream::FlowController< ServerFlowController >.

Definition at line 67 of file ServerFlowController.cpp.

67 {
68 stopRetry();
69
70 for (core::eventreceiver::AcceptEventReceiver* acceptEventReceiver : acceptEventReceivers) {
71 if (acceptEventReceiver != nullptr) {
72 acceptEventReceiver->stopListen();
73 }
74 }
75
77 }

References acceptEventReceivers, core::eventreceiver::AcceptEventReceiver::stopListen(), and core::socket::stream::FlowController< ConcreteFlowController >::stopRetry().

Here is the call graph for this function:

◆ SocketServer

template<typename SocketAcceptorT, typename SocketContextFactoryT, typename... Args>
friend class SocketServer
friend

Definition at line 86 of file ServerFlowController.h.

Member Data Documentation

◆ acceptEventReceivers

std::set<core::eventreceiver::AcceptEventReceiver*> core::socket::stream::ServerFlowController::acceptEventReceivers
private

Definition at line 81 of file ServerFlowController.h.

Referenced by observeAcceptEventReceiver(), and terminateAsyncSubFlow().


The documentation for this class was generated from the following files: