int DockerAPI::stats(const std::string &container, uint64_t &memUsage, uint64_t &netIn, uint64_t &netOut) { newstats(container, memUsage, netIn, netOut); ArgList args; if ( ! add_docker_arg(args)) return -1; args.AppendArg( "stats" ); args.AppendArg( "--no-stream" ); args.AppendArg( container.c_str() ); MyString displayString; TemporaryPrivSentry sentry(PRIV_ROOT); args.GetArgsStringForLogging( & displayString ); dprintf( D_FULLDEBUG, "Attempting to run: %s\n", displayString.c_str() ); // Read from Docker's combined output and error streams. FILE * dockerResults = my_popen( args, "r", 1 , 0, false); if( dockerResults == NULL ) { dprintf( D_ALWAYS | D_FAILURE, "Failed to run '%s'.\n", displayString.c_str() ); return -2; } const int statLineSize = 256; char header[statLineSize]; char data[statLineSize]; if( NULL == fgets( header, statLineSize, dockerResults ) ) { my_pclose(dockerResults); return -2; } if( NULL == fgets( data, statLineSize, dockerResults ) ) { my_pclose(dockerResults); return -2; } my_pclose(dockerResults); dprintf(D_FULLDEBUG, "Docker stats data is:\n%s\n", data); // condor stats output looks like: // Name cpu% mem usage/limit mem% net i/o block i/o // container 0.00% 0 B / 0 B 0.00% 0 B / 0 B 0 B / 0 B // char memUsageUnit[2]; char netInUnit[2]; char netOutUnit[2]; double memRaw, netInRaw, netOutRaw; int matches = sscanf(data, "%*s %*g%% %lg %s / %*g %*s %*g%% %lg %s / %lg %s", &memRaw, &memUsageUnit[0], &netInRaw, &netInUnit[0], &netOutRaw, &netOutUnit[0]); if (matches < 6) { return -2; } memUsage = convertUnits(memRaw, memUsageUnit); netIn = convertUnits(netInRaw, netInUnit); netOut = convertUnits(netOutRaw, netOutUnit); dprintf(D_FULLDEBUG, "memUsage is %g (%s), net In is %g (%s), net Out is %g (%s)\n", memRaw, memUsageUnit, netInRaw, netInUnit, netOutRaw, netOutUnit); return 0; }
bool LxQtNetworkMonitor::event(QEvent *event) { if (event->type() == QEvent::ToolTip) { #ifdef STATGRAB_NEWER_THAN_0_90 size_t num_network_stats; #else int num_network_stats; #endif sg_network_io_stats *network_stats = sg_get_network_io_stats(&num_network_stats); for (int x = 0; x < num_network_stats; x++) { if (m_interface == QString::fromLocal8Bit(network_stats->interface_name)) { setToolTip(tr("Network interface <b>%1</b>").arg(m_interface) + "<br>" + tr("Transmitted %1").arg(convertUnits(network_stats->tx)) + "<br>" + tr("Received %1").arg(convertUnits(network_stats->rx)) ); } network_stats++; } } return QFrame::event(event); }
int overwrite(string file, __int64 fsize, __time64_t fmod = NULL){ char buffer[512]; char buffer2[256]; dOverwrite _dOverwrite; _dOverwrite.Create(IDD_OVERWRITE); HICON ico; //_dOverwrite.ShowWindow(SW_SHOW); //_dOverwrite.BeginModalState(); sprintf(buffer, loadString(IDS_FILE_ALREADY_EXISTS), file.c_str()); _dOverwrite.sOverwrite.SetWindowText(buffer); struct _finddatai64_t c_file; long hFile; if((hFile = _findfirsti64(file.c_str(), &c_file)) == -1L){ //file doesn't exist? }else{ strcpy(buffer2, convertUnits(c_file.size)); sprintf(buffer, loadString(IDS_OVERWRITE_SIZE), buffer2); _dOverwrite.sOriginalSize.SetWindowText(buffer); _ctime64_s(buffer2, sizeof(buffer2), &c_file.time_write); sprintf(buffer, loadString(IDS_OVERWRITE_MOD), buffer2); _dOverwrite.sOriginalMod.SetWindowText(buffer); ico = getIcon(file); _dOverwrite.iOld.SetIcon(ico); } //new file strcpy(buffer2, convertUnits(fsize)); sprintf(buffer, loadString(IDS_OVERWRITE_SIZE), buffer2); _dOverwrite.sNewSize.SetWindowText(buffer); if(fmod != NULL){ _ctime64_s(buffer2, sizeof(buffer2), &fmod); sprintf(buffer, loadString(IDS_OVERWRITE_MOD), buffer2); }else{ sprintf(buffer, loadString(IDS_OVERWRITE_MOD), ""); } _dOverwrite.sNewMod.SetWindowText(buffer); _dOverwrite.iNew.SetIcon(ico); _dOverwrite.ShowWindow(SW_SHOW); _dOverwrite.bYes.SetButtonStyle(BS_DEFPUSHBUTTON); _dOverwrite.bYesAll.SetButtonStyle(_dOverwrite.bYesAll.GetButtonStyle() & ~BS_DEFPUSHBUTTON); return _dOverwrite.RunModalLoop();//_dOverwrite.DoModal(); }
inline bool addFile(CListCtrl *lFiles, string filename, __int64 size){ char buffer[16]; HICON ico = NULL; int ico_id; CImageList *imgLst = NULL; if(size >= (__int64)4*1024*1024*1024){ MessageBox(0, loadString(IDS_TOO_BIG_FILE), "KGB Archiver", 0); return false; } ico = getIcon(filename); if(ico != NULL){ imgLst = lFiles->GetImageList(LVSIL_SMALL); if(imgLst == NULL){ imgLst = new CImageList(); imgLst->Create(16, 16, ILC_COLORDDB, 0, INT_MAX); imgLst->SetBkColor(0x00FFFFFF); } ico_id = imgLst->Add(ico); lFiles->SetImageList(imgLst, LVSIL_SMALL); lFiles->InsertItem(lFiles->GetItemCount(), "", ico_id); }else lFiles->InsertItem(lFiles->GetItemCount(), ""); lFiles->SetItemText(lFiles->GetItemCount()-1, 0, filename.c_str()); sprintf(buffer, "%s", convertUnits(size)); lFiles->SetItemText(lFiles->GetItemCount()-1, 1, buffer); return true; }
int main(int argc, char **argv) { static char helppath[MAXPATHLEN]; char *endnum; pmdaInterface desc; long minmem; int c, err = 0, sep = __pmPathSeparator(); __pmSetProgname(argv[0]); __pmGetUsername(&username); minmem = getpagesize(); maxmem = (minmem > DEFAULT_MAXMEM) ? minmem : DEFAULT_MAXMEM; snprintf(helppath, sizeof(helppath), "%s%c" "logger" "%c" "help", pmGetConfig("PCP_PMDAS_DIR"), sep, sep); pmdaDaemon(&desc, PMDA_INTERFACE_5, pmProgname, LOGGER, "logger.log", helppath); while ((c = pmdaGetOpt(argc, argv, "D:d:l:m:s:U:?", &desc, &err)) != EOF) { switch (c) { case 'm': maxmem = strtol(optarg, &endnum, 10); if (*endnum != '\0') convertUnits(&endnum, &maxmem); if (*endnum != '\0' || maxmem < minmem) { fprintf(stderr, "%s: invalid max memory '%s' (min=%ld)\n", pmProgname, optarg, minmem); err++; } break; case 's': if (pmParseInterval(optarg, &interval, &endnum) < 0) { fprintf(stderr, "%s: -s requires a time interval: %s\n", pmProgname, endnum); free(endnum); err++; } break; case 'U': username = optarg; break; default: err++; break; } } if (err || optind != argc -1) usage(); pmdaOpenLog(&desc); logger_init(&desc, argv[optind]); pmdaConnect(&desc); loggerMain(&desc); event_shutdown(); exit(0); }
void DoubleProgressDialog::ProgressBarControl::setValue(float value) { val = qBound(min, value, max); bar->setValue(convertUnits(val)); }
void DoubleProgressDialog::ProgressBarControl::setMax(float maximum) { max = maximum; if(min > max) setMin(max); bar->setMaximum(convertUnits(max)); }
void DoubleProgressDialog::ProgressBarControl::setMin(float minimum) { min = minimum; if(max < min) setMax(min); bar->setMinimum(convertUnits(min)); }
int main(int argc, char **argv) { static char helppath[MAXPATHLEN]; char *endnum; pmdaInterface desc; long minmem; int c, err = 0, sep = __pmPathSeparator(); minmem = getpagesize(); maxmem = (minmem > DEFAULT_MAXMEM) ? minmem : DEFAULT_MAXMEM; __pmSetProgname(argv[0]); snprintf(helppath, sizeof(helppath), "%s%c" "systemd" "%c" "help", pmGetConfig("PCP_PMDAS_DIR"), sep, sep); pmdaDaemon(&desc, PMDA_INTERFACE_6, pmProgname, SYSTEMD, "systemd.log", helppath); while ((c = pmdaGetOpt(argc, argv, "D:d:l:m:s:U:f?", &desc, &err)) != EOF) { switch (c) { case 'm': maxmem = strtol(optarg, &endnum, 10); if (*endnum != '\0') convertUnits(&endnum, &maxmem); if (*endnum != '\0' || maxmem < minmem) { fprintf(stderr, "%s: invalid max memory '%s' (min=%ld)\n", pmProgname, optarg, minmem); err++; } break; case 's': if (pmParseInterval(optarg, &interval, &endnum) < 0) { fprintf(stderr, "%s: -s requires a time interval: %s\n", pmProgname, endnum); free(endnum); err++; } break; case 'U': username = optarg; break; case 'f': uid_gid_filter_p = 0; break; default: err++; break; } } if (err) usage(); FD_ZERO (&fds); pmdaOpenLog(&desc); /* The systemwide journal may be accessed by the adm user (group); root access is not necessary. */ __pmSetProcessIdentity(username); desc.comm.flags |= PDU_FLAG_AUTH; pmdaConnect(&desc); // After this point, systemd_init is allowed to take some extra time. systemd_init(&desc); // sets some fds systemdMain(&desc); // sets some more fds systemd_shutdown(); exit(0); }