/** prints warning message with the current message handler, or buffers the message if no newline exists */ static void messagePrintWarning( SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */ const char* msg, /**< message to print; NULL to flush the output buffer */ int msglength /**< message length if bigger than SCIP_MAXSTRLEN, or SCIP_MAXSTRLEN */ ) { if( messagehdlr != NULL && messagehdlr->messagewarning != NULL && (!messagehdlr->quiet || messagehdlr->logfile != NULL) ) { char* outmsg; int outmsgsize; outmsgsize = msglength + 1; if( BMSallocMemorySize(&outmsg, outmsgsize) == NULL ) return; if( !bufferMessage(messagehdlr->warningbuffer, &messagehdlr->warningbufferlen, msg, outmsg, &outmsgsize) ) { assert(outmsgsize > msglength + 1); if( BMSreallocMemorySize(&outmsg, outmsgsize) != NULL ) { #ifndef NDEBUG SCIP_Bool ret; ret = bufferMessage(messagehdlr->warningbuffer, &messagehdlr->warningbufferlen, msg, outmsg, &outmsgsize); assert(ret); #else bufferMessage(messagehdlr->warningbuffer, &messagehdlr->warningbufferlen, msg, outmsg, &outmsgsize); #endif } else { BMSfreeMemory(&outmsg); return; } } if( *outmsg != '\0' ) { if( !messagehdlr->quiet ) messagehdlr->messagewarning(messagehdlr, stderr, outmsg); if( messagehdlr->logfile != NULL ) messagehdlr->messagewarning(messagehdlr, messagehdlr->logfile, outmsg); } BMSfreeMemory(&outmsg); } }
result_type Peer::whenReceivedRelayedMessage(const descriptor_pair & sourceDesc, peer_id sourceId) { result_type res = SUCCESS; peer_id senderId; char * bytes = NULL; size_type size = 0; res = recv_(sourceDesc.desc, 0, senderId); res = recv_new_(sourceDesc.desc, 0, bytes, size); QUIT_IF_UNSUCCESSFUL(res); descriptor_pair senderDesc = knownPeers.idToDescriptor(senderId); //descriptor_pair senderDesc(senderId, DESCRIPTOR_NONE); if (!existsInQueues(senderDesc)) { std::cout << "NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO" << std::endl; preparePeerQueues(senderDesc); } bufferMessage(senderDesc, senderId, bytes, size); return res; }
/** prints info message with the current message handler, or buffers the message if no newline exists */ static void messagePrintInfo( SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */ FILE* file, /**< file stream to print into, or NULL for stdout */ const char* msg, /**< message to print; NULL to flush the output buffer */ int msglength /**< message length if bigger than SCIP_MAXSTRLEN, or SCIP_MAXSTRLEN */ ) { if( messagehdlr != NULL && messagehdlr->messageinfo != NULL ) { if( (file == NULL || file == stdout) && !messagehdlr->quiet && (msg == NULL || strlen(msg) < SCIP_MAXSTRLEN) ) { char* outmsg; int outmsgsize; outmsgsize = msglength + 1; if( BMSallocMemorySize(&outmsg, outmsgsize) == NULL ) return; if( !bufferMessage(messagehdlr->infobuffer, &messagehdlr->infobufferlen, msg, outmsg, &outmsgsize) ) { assert(outmsgsize > msglength + 1); if( BMSreallocMemorySize(&outmsg, outmsgsize) != NULL ) { #ifndef NDEBUG SCIP_Bool ret; ret = bufferMessage(messagehdlr->infobuffer, &messagehdlr->infobufferlen, msg, outmsg, &outmsgsize); assert(ret); #else bufferMessage(messagehdlr->infobuffer, &messagehdlr->infobufferlen, msg, outmsg, &outmsgsize); #endif } else { BMSfreeMemory(&outmsg); return; } } if( *outmsg != '\0' ) { messagehdlr->messageinfo(messagehdlr, stdout, outmsg); if( messagehdlr->logfile != NULL ) messagehdlr->messageinfo(messagehdlr, messagehdlr->logfile, outmsg); } BMSfreeMemory(&outmsg); } else if( msg != NULL ) { /* file output cannot be buffered because the output file may change or the message is to long */ if( *msg != '\0' ) { if( !messagehdlr->quiet || (file != NULL && file != stdout) ) messagehdlr->messageinfo(messagehdlr, file == NULL ? stdout : file, msg); if( messagehdlr->logfile != NULL && (file == NULL || file == stdout) ) messagehdlr->messageinfo(messagehdlr, messagehdlr->logfile, msg); } } } }