void liveViz0Deposit(const liveVizRequest &req,byte * imageData) { int len=req.wid*req.ht*config.getNetworkBytesPerPixel(); if (config.getVerbose(2)) CmiPrintf("CCS getImage> Reply for (%d x %d) pixel or %d byte image.\n", req.wid,req.ht,len); switch (req.compressionType) { case liveVizRequest::compressionNone: /* send uncompressed pixels */ CcsSendDelayedReply(req.replyToken, len, imageData); break; #if CMK_USE_LIBJPEG && !defined(__CYGWIN__) case liveVizRequest::compressionJPEG: { /* JPEG-compress the data */ std::string data=JPEGcompressImage(req.wid,req.ht, config.getNetworkBytesPerPixel(),imageData, req.compressionQuality); CcsSendDelayedReply(req.replyToken, data.size(), &data[0]); break; } #endif case liveVizRequest::compressionRunLength: { std::string data; for(int i=0; i<req.ht*req.wid;) { int j=i; while(imageData[j]==imageData[i]&&i-j<255&&i<req.ht*req.wid) i++; data.push_back((char)((i-j)&0xff)); data.push_back(imageData[j]); } CcsSendDelayedReply(req.replyToken, data.size(), &data[0]); } break; default: CkError("liveViz0.C WARNING: Ignoring liveViz client's unrecognized compressionType %d\n",req.compressionType); CcsSendDelayedReply(req.replyToken, 0, 0); }; }
static void CpdDebugReturnAllocationTree(void *tree) { pup_er sizer = pup_new_sizer(); char *buf; pup_er packer; int i; CpdDebug_pupAllocationPoint(sizer, tree); buf = (char *)malloc(pup_size(sizer)); packer = pup_new_toMem(buf); CpdDebug_pupAllocationPoint(packer, tree); /*CmiPrintf("size=%d tree:",pup_size(sizer)); for (i=0;i<100;++i) CmiPrintf(" %02x",((unsigned char*)buf)[i]); CmiPrintf("\n");*/ CcsSendDelayedReply(CpvAccess(allocationTreeDelayedReply), pup_size(sizer),buf); pup_destroy(sizer); pup_destroy(packer); free(buf); }
static void CpdDebugReturnMemStat(void *stat) { #if CMK_CCS_AVAILABLE pup_er sizerNet = pup_new_network_sizer(); pup_er sizer = pup_new_fmt(sizerNet); char *buf; pup_er packerNet; pup_er packer; int i; CpdDebug_pupMemStat(sizer, stat); buf = (char *)malloc(pup_size(sizer)); packerNet = pup_new_network_pack(buf); packer = pup_new_fmt(packerNet); CpdDebug_pupMemStat(packer, stat); /*CmiPrintf("size=%d tree:",pup_size(sizer)); for (i=0;i<100;++i) CmiPrintf(" %02x",((unsigned char*)buf)[i]); CmiPrintf("\n");*/ CcsSendDelayedReply(CpvAccess(memStatDelayedReply), pup_size(sizer),buf); pup_destroy(sizerNet); pup_destroy(sizer); pup_destroy(packerNet); pup_destroy(packer); free(buf); #endif }
void CpdSearchLeaksDone(void *msg) { CmiInt4 ok = 1; CcsSendDelayedReply(CpvAccess(leakSearchDelayedReply), 4, &ok); CmiFree(msg); }