19 #ifndef SIMPLE_SEND_OBJECT_REQUEST_CC
20 #define SIMPLE_SEND_OBJECT_REQUEST_CC
29 #define HEADER_SIZE 20
34 template <
class RequestType,
38 class... RequestTypeParams>
43 size_t bytesForRequest,
46 RequestTypeParams&&... args) {
57 myLogger->error(errMsg);
58 myLogger->error(
"simpleSendDataRequest: not able to connect to server.\n");
59 std::cout <<
"ERROR: can't connect to remote server with port =" << port
60 <<
" and address =" << address << std::endl;
66 std::cout <<
"ERROR: block size is too small" << std::endl;
72 myLogger->error(errMsg);
73 myLogger->error(
"simpleSendDataRequest: not able to send request to server.\n");
83 myLogger->error(errMsg);
84 myLogger->error(
"simpleSendDataRequest: not able to send data to server.\n");
95 if (objectSize == 0) {
96 myLogger->error(
"simpleRequest: not able to get next object size");
97 std::cout <<
"simpleRequest: not able to get next object size" << std::endl;
105 void* memory = malloc(objectSize);
106 if (memory ==
nullptr) {
107 myLogger->error(std::string(
"FATAL ERROR: not able to allocate memory with size=") +
108 std::to_string(objectSize));
109 std::cout <<
"FATAL ERROR: not able to allocate memory" << std::endl;
112 ReturnType finalResult;
116 myLogger->error(errMsg);
117 myLogger->error(
"simpleRequest: not able to get next object over the wire.\n");
128 finalResult = processResponse(result);
size_t getSizeOfNextObject()
bool sendObject(Handle< ObjType > &sendMe, std::string &errMsg)
bool connectToInternetServer(PDBLoggerPtr logToMeIn, int portNumber, std::string serverAddress, std::string &errMsg)
Handle< ObjType > getNextObject(void *readToHere, bool &success, std::string &errMsg)
std::shared_ptr< PDBLogger > PDBLoggerPtr
ReturnType simpleSendObjectRequest(PDBLoggerPtr myLogger, int port, std::string address, ReturnType onErr, size_t bytesForRequest, function< ReturnType(Handle< ResponseType >)> processResponse, DataType dataToSend, RequestTypeParams &&...args)