19 #ifndef SIMPLE_REQUEST_HANDLER_H
20 #define SIMPLE_REQUEST_HANDLER_H
35 template <
class RequestType>
46 return std::make_shared<SimpleRequestHandler<RequestType>>(
processRequest);
56 size_t objectSize = myCommunicator->getSizeOfNextObject();
57 myLogger->debug(std::string(
"SimpleRequestHandle: to receive object with size=") +
58 std::to_string(objectSize));
59 if (objectSize == 0) {
60 std::cout <<
"SimpleRequestHandler: object size=0" << std::endl;
61 myLogger->error(
"SimpleRequestHandler: object size=0");
65 void* memory = malloc(myCommunicator->getSizeOfNextObject());
68 myCommunicator->getNextObject<RequestType>(memory, success, errMsg);
71 myLogger->error(
"SimpleRequestHandler: tried to get the next object and failed; " +
79 std::pair<bool, std::string> res =
processRequest(request, myCommunicator);
81 myLogger->error(
"SimpleRequestHandler: tried to process the request and failed; " +
89 myLogger->info(
"SimpleRequestHandler: finished processing requet.");
SimpleRequestHandler(std::function< std::pair< bool, std::string >(Handle< RequestType >, PDBCommunicatorPtr)> useMe)
void execute(PDBBuzzerPtr callerBuzzer)
function< pair< bool, std::string >Handle< RequestType >, PDBCommunicatorPtr)> processRequest
PDBCommunicatorPtr getCommunicator()
std::shared_ptr< PDBCommunicator > PDBCommunicatorPtr
shared_ptr< PDBBuzzer > PDBBuzzerPtr
std::shared_ptr< PDBCommWork > PDBCommWorkPtr
std::shared_ptr< PDBLogger > PDBLoggerPtr
PDBCommunicatorPtr myCommunicator