A platform for high-performance distributed tool and library development written in C++. It can be deployed in two different cluster modes: standalone or distributed. API for v0.5.0, released on June 13, 2018.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
pdb::PDBServer Class Reference

#include <PDBServer.h>

+ Collaboration diagram for pdb::PDBServer:

Public Member Functions

 PDBServer (int portNumberIn, int numConnections, PDBLoggerPtr myLogger)
 
 PDBServer (string fileName, int numConnections, PDBLoggerPtr myLogger)
 
template<class Functionality , class... Args>
void addFunctionality (Args &&...args)
 
template<class Functionality >
Functionality & getFunctionality ()
 
void registerHandler (int16_t typeID, PDBCommWorkPtr handledBy)
 
void startServer (PDBWorkPtr runMeAtStart)
 
void signal (PDBAlarm signalWithMe)
 
void listen ()
 
bool handleOneRequest (PDBBuzzerPtr buzzMeWhenDone, PDBCommunicatorPtr myCommunicator)
 
void stop ()
 
PDBWorkerQueuePtr getWorkerQueue ()
 
PDBLoggerPtr getLogger ()
 

Private Member Functions

void registerHandlersFromLastFunctionality ()
 
void handleRequest (PDBCommunicatorPtr myCommunicator)
 

Private Attributes

map< int16_t, PDBCommWorkPtrhandlers
 
PDBWorkerQueuePtr myWorkers
 
bool allDone
 
int portNumber
 
int numConnections
 
string unixFile
 
PDBLoggerPtr myLogger
 
bool isInternet
 
pthread_t listenerThread
 
int sockFD
 
std::map< std::string, int > allFunctionalityNames
 
std::vector< shared_ptr
< ServerFunctionality > > 
allFunctionalities
 

Detailed Description

Definition at line 56 of file PDBServer.h.

Constructor & Destructor Documentation

pdb::PDBServer::PDBServer ( int  portNumberIn,
int  numConnections,
PDBLoggerPtr  myLogger 
)

Definition at line 49 of file PDBServer.cc.

pdb::PDBServer::PDBServer ( string  fileName,
int  numConnections,
PDBLoggerPtr  myLogger 
)

Definition at line 65 of file PDBServer.cc.

Member Function Documentation

template<class Functionality , class... Args>
void pdb::PDBServer::addFunctionality ( Args &&...  args)

Definition at line 30 of file ServerTemplates.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class Functionality >
Functionality & pdb::PDBServer::getFunctionality ( )

Definition at line 49 of file ServerTemplates.cc.

+ Here is the caller graph for this function:

PDBLoggerPtr pdb::PDBServer::getLogger ( )

Definition at line 233 of file PDBServer.cc.

+ Here is the caller graph for this function:

PDBWorkerQueuePtr pdb::PDBServer::getWorkerQueue ( )

Definition at line 228 of file PDBServer.cc.

+ Here is the caller graph for this function:

bool pdb::PDBServer::handleOneRequest ( PDBBuzzerPtr  buzzMeWhenDone,
PDBCommunicatorPtr  myCommunicator 
)

Definition at line 246 of file PDBServer.cc.

+ Here is the caller graph for this function:

void pdb::PDBServer::handleRequest ( PDBCommunicatorPtr  myCommunicator)
private

Definition at line 237 of file PDBServer.cc.

+ Here is the caller graph for this function:

void pdb::PDBServer::listen ( )

Definition at line 93 of file PDBServer.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void pdb::PDBServer::registerHandler ( int16_t  typeID,
PDBCommWorkPtr  handledBy 
)

Definition at line 81 of file PDBServer.cc.

+ Here is the caller graph for this function:

void pdb::PDBServer::registerHandlersFromLastFunctionality ( )
private

Definition at line 374 of file PDBServer.cc.

+ Here is the caller graph for this function:

void pdb::PDBServer::signal ( PDBAlarm  signalWithMe)

Definition at line 344 of file PDBServer.cc.

+ Here is the caller graph for this function:

void pdb::PDBServer::startServer ( PDBWorkPtr  runMeAtStart)

Definition at line 348 of file PDBServer.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void pdb::PDBServer::stop ( )

Definition at line 379 of file PDBServer.cc.

Member Data Documentation

bool pdb::PDBServer::allDone
private

Definition at line 139 of file PDBServer.h.

std::vector<shared_ptr<ServerFunctionality> > pdb::PDBServer::allFunctionalities
private

Definition at line 166 of file PDBServer.h.

std::map<std::string, int> pdb::PDBServer::allFunctionalityNames
private

Definition at line 163 of file PDBServer.h.

map<int16_t, PDBCommWorkPtr> pdb::PDBServer::handlers
private

Definition at line 130 of file PDBServer.h.

bool pdb::PDBServer::isInternet
private

Definition at line 154 of file PDBServer.h.

pthread_t pdb::PDBServer::listenerThread
private

Definition at line 157 of file PDBServer.h.

PDBLoggerPtr pdb::PDBServer::myLogger
private

Definition at line 151 of file PDBServer.h.

PDBWorkerQueuePtr pdb::PDBServer::myWorkers
private

Definition at line 133 of file PDBServer.h.

int pdb::PDBServer::numConnections
private

Definition at line 145 of file PDBServer.h.

int pdb::PDBServer::portNumber
private

Definition at line 142 of file PDBServer.h.

int pdb::PDBServer::sockFD
private

Definition at line 160 of file PDBServer.h.

string pdb::PDBServer::unixFile
private

Definition at line 148 of file PDBServer.h.


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