]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
Nice outout for netmem also
authorhadaq <hadaq>
Wed, 27 Feb 2002 17:59:33 +0000 (17:59 +0000)
committerhadaq <hadaq>
Wed, 27 Feb 2002 17:59:33 +0000 (17:59 +0000)
hadaq/netmem.c

index 37db1eb1f1598f09bce67ba24f89c0432ab7ee14..7bbd104343441f41e913e75e3b3a37df784ec652 100644 (file)
@@ -1,4 +1,4 @@
-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.18 2001-11-18 11:56:21 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.19 2002-02-27 17:59:33 hadaq Exp $";
 
 
 #define _GNU_C_SOURCE
@@ -120,6 +120,52 @@ static int argsFromParam(TheArgs *my, int argc, char *argv[]) {
        desParam(param);
 }
 
+static char *unit(unsigned long v) {
+       static char retVal[6];
+       static char u[] = " kM";
+       int i;
+
+       for (i = 0; v >= 10000 && i < sizeof(u) - 2; v /= 1000, i++) {
+       }
+       sprintf(retVal, "%4d%c", v, u[i]);
+
+       return retVal;
+}
+
+static void statsDump(TheArgs *theArgs, NetTrans **my, int interval) {
+       static unsigned long lastBR[32];
+       static time_t lastTime = 0;
+       time_t dT;
+       int i;
+
+       
+       if (theArgs->isStandalone
+               && strcmp(theArgs->verbosity, "info") == 0
+               && (dT = (time(NULL) - lastTime)) >= interval
+       ) {
+               puts("==============================================================================");
+               for (i = 0; i < theArgs->nrOfMsgs; i++) {
+                       printf("%17s%02d:%6s",
+                               "pktsReceived", i, unit(*my[i]->pktsReceived));
+                       printf("%17s%02d:%6s",
+                               "pktsDiscarded", i, unit(*my[i]->pktsDiscarded));
+                       printf("%15s%02d  :%6s",
+                               "bytesReceived", i, unit(*my[i]->bytesReceived));
+                       putchar('\n');
+                       printf("%17s%02d:%6s",
+                               "msgsReceived", i, unit(*my[i]->msgsReceived));
+                       printf("%17s%02d:%6s",
+                               "msgsDiscarded", i, unit(*my[i]->msgsDiscarded));
+                       printf("%15s%02d/s:%6s",
+                               "bytesReceived", i, unit(*my[i]->bytesReceived - lastBR[i]));
+                       lastBR[i] = *my[i]->bytesReceived;
+                       putchar('\n');
+                       puts("------------------------------------------------------------------------------");
+               }
+               lastTime += dT;
+       }
+}
+
 static void storeInfoStart(const char *n, time_t t, TheArgs *my) {
        Param pS, *p = &pS;
        int i;
@@ -229,7 +275,7 @@ int main(int argc, char *argv[])
     while (1) {
       long msgsCompleted;
 
-      Worker_dump(worker, 1);
+      statsDump(theArgs, netTrans, 1);
 
       for (i = 0; i < theArgs->nrOfMsgs; i++) {
         if (hadTu[i] == NULL) {
@@ -249,7 +295,7 @@ int main(int argc, char *argv[])
     }
   }
   storeInfoStop(argv[0], time(NULL), worker);
-  Worker_dump(worker, 0);
+  statsDump(theArgs, netTrans, 0);
 
   for (i = 0; i < theArgs->nrOfMsgs; i++) {
     ShmTrans_remove(shmTrans[i]);