Fixed newline characters throughout the code
[com/gs-lite.git] / src / tools / qnode.h
index 42ac910..6e2c7cb 100644 (file)
-/* ------------------------------------------------\r
-Copyright 2014 AT&T Intellectual Property\r
-   Licensed under the Apache License, Version 2.0 (the "License");\r
-   you may not use this file except in compliance with the License.\r
-   You may obtain a copy of the License at\r
-\r
-     http://www.apache.org/licenses/LICENSE-2.0\r
-\r
-   Unless required by applicable law or agreed to in writing, software\r
-   distributed under the License is distributed on an "AS IS" BASIS,\r
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-   See the License for the specific language governing permissions and\r
-   limitations under the License.\r
- ------------------------------------------- */\r
-\r
-#ifndef __QNODE_H_DEFINED_\r
-#define __QNODE_H_DEFINED_\r
-\r
-#include<string>\r
-\r
-struct perf_struct{\r
-       int n_samples;\r
-       int init_discard;\r
-       int init_time;\r
-       int last_update;\r
-       unsigned long long int init_stime;\r
-       unsigned long long int init_utime;\r
-       unsigned long long int total_stime;\r
-       unsigned long long int total_utime;\r
-       double max_stime;\r
-       double max_utime;\r
-       double max_time;\r
-       unsigned long long int max_vm_size;\r
-       unsigned long long int max_rss;\r
-\r
-       void init(){\r
-               n_samples = 0;\r
-               init_time = 0;\r
-               init_stime = 0;\r
-               init_utime = 0;\r
-               total_stime = 0;\r
-               total_utime = 0;\r
-               max_stime = 0.0;\r
-               max_utime = 0.0;\r
-               max_time = 0.0;\r
-               max_vm_size = 0;\r
-               max_rss = 0;\r
-               last_update = -1;\r
-       }\r
-\r
-       perf_struct(){\r
-               init();\r
-       }\r
-       perf_struct(int d){\r
-               init();\r
-               init_discard = d;\r
-       }\r
-\r
-       bool update(int t, unsigned long long int u, unsigned long long int s,\r
-         unsigned long long int v, unsigned long long int r){\r
-               if(init_discard>0){\r
-                       init_discard--;\r
-                       return false;;\r
-               }\r
-\r
-\r
-               if(v>max_vm_size)\r
-                       max_vm_size = v;\r
-               if(r>max_rss)\r
-                       max_rss = r;\r
-               if(last_update<0){\r
-                       init_time = t;\r
-                       init_stime = s;\r
-                       init_utime = u;\r
-               }else{\r
-                       if(t<=last_update || u<total_utime || s<total_stime){\r
-                               return true;\r
-                       }\r
-\r
-                       double tmps,tmpu,tmpt;\r
-                       tmps = (double)((s-total_stime))/(t-last_update);\r
-                       tmpu = (double)((u-total_utime))/(t-last_update);\r
-                       tmpt = tmps+tmpu;\r
-                       if(tmps>max_stime)\r
-                               max_stime = tmps;\r
-                       if(tmpu>max_utime)\r
-                               max_utime = tmpu;\r
-                       if(tmpt>max_time)\r
-                               max_time = tmpt;\r
-               }\r
-               total_stime = s;\r
-               total_utime = u;\r
-               last_update = t;\r
-\r
-               return false;\r
-       }\r
-\r
-       std::string to_string(){\r
-               char ret[1000];\r
-               if(last_update - init_time>0){\r
-                       sprintf(ret,"stime=%lf, utime=%lf, time=%lf max_stime=%lf, max_utime=%lf, max_time=%lf, max_vmsize=%lld, max_rss = %lld",\r
-                         (double)(total_stime-init_stime)/(last_update - init_time),\r
-                         (double)(total_utime-init_utime)/(last_update - init_time),\r
-                         (double)(total_stime-init_stime)/(last_update - init_time) + (double)(total_utime-init_utime)/(last_update - init_time),\r
-                               max_stime,max_utime,max_time,\r
-                               max_vm_size,max_rss\r
-                       );\r
-                       return ret;\r
-               }\r
-               return("(no perf results)");\r
-       }\r
-\r
-       static std::string to_csv_hdr(){\r
-               return "avg_system_time,avg_user_time,avg_cpu_time,max_sys_time,max_user_time,max_total_time,max_vm_size,max_rss";\r
-       }\r
-\r
-       std::string to_csv(){\r
-               char ret[1000];\r
-               if(last_update - init_time>0){\r
-                       sprintf(ret,"%lf,%lf,%lf,%lf,%lf,%lf,%lld,%lld",\r
-                         (double)(total_stime-init_stime)/(last_update - init_time),\r
-                         (double)(total_utime-init_utime)/(last_update - init_time),\r
-                         (double)(total_stime-init_stime)/(last_update - init_time) + (double)(total_utime-init_utime)/(last_update - init_time),\r
-                               max_stime,max_utime,max_time,\r
-                               max_vm_size,max_rss\r
-                       );\r
-                       return ret;\r
-               }\r
-               return(",,,,,,");\r
-       }\r
-\r
-       double avg_cpu_time(){\r
-               return ((double)((total_stime-init_stime)+(total_utime-init_utime))/(last_update - init_time))/100.0;\r
-       }\r
-\r
-       bool is_valid(){\r
-               return last_update > 0;\r
-       }\r
-};\r
-\r
-\r
-\r
-\r
-struct field_str{\r
-       std::string name;\r
-       int pos;\r
-       std::string type;\r
-       std::string mods;\r
-\r
-       field_str(){};\r
-       field_str(std::string n, int p, std::string t, std::string m){\r
-               name=n;\r
-               pos=p;\r
-               type=t;\r
-               mods=m;\r
-       }\r
-};\r
-\r
-\r
-struct qnode{\r
-       std::string name;\r
-       std::string executable_name;\r
-       std::string qnode_type;\r
-       int aggr_tbl_size;\r
-       std::vector<field_str *> fields;\r
-       std::vector<std::string> reads_from;\r
-       std::vector<int> reads_from_idx;\r
-       std::vector<int> sources_to_idx;\r
-       std::string src_interface;\r
-       int par_index;\r
-       int start_tick, end_tick;\r
-\r
-       unsigned long long int in_tup,out_tup,out_sz;\r
-       unsigned long long int accepted_tup,cycles,collisions,evictions;\r
-       double inferred_in_sz;\r
-       perf_struct *perf;\r
-\r
-       qnode(int d){\r
-               aggr_tbl_size = 0;\r
-               in_tup = 0;\r
-               out_tup = 0;\r
-               accepted_tup = 0;\r
-               cycles = 0;\r
-               collisions = 0;\r
-               evictions = 0;\r
-               inferred_in_sz = 0.0;\r
-               par_index = 0;\r
-               start_tick = end_tick = -1;\r
-               perf = new perf_struct(d);\r
-       };\r
-\r
-       qnode(std::string type, std::string n,int d){\r
-               qnode_type=type;\r
-               name=n;\r
-               aggr_tbl_size = 0;\r
-\r
-               in_tup = 0;\r
-               out_tup = 0;\r
-               out_sz = 0;\r
-               accepted_tup = 0;\r
-               cycles = 0;\r
-               collisions = 0;\r
-               evictions = 0;\r
-               inferred_in_sz = 0.0;\r
-               par_index = 0;\r
-               start_tick = end_tick = -1;\r
-               perf = new perf_struct(d);\r
-       }\r
-\r
-       double output_rate(){\r
-               if(end_tick == start_tick){\r
-                       return 0.0;\r
-               }\r
-               return( ((double)out_sz)/(end_tick-start_tick) );\r
-       }\r
-\r
-       void add_field(field_str *fld){\r
-               fields.push_back(fld);\r
-       }\r
-\r
-       void add_source(std::string src){\r
-               reads_from.push_back(src);\r
-       }\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-#endif\r
+/* ------------------------------------------------
+Copyright 2014 AT&T Intellectual Property
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ ------------------------------------------- */
+
+#ifndef __QNODE_H_DEFINED_
+#define __QNODE_H_DEFINED_
+
+#include<string>
+
+struct perf_struct{
+       int n_samples;
+       int init_discard;
+       int init_time;
+       int last_update;
+       unsigned long long int init_stime;
+       unsigned long long int init_utime;
+       unsigned long long int total_stime;
+       unsigned long long int total_utime;
+       double max_stime;
+       double max_utime;
+       double max_time;
+       unsigned long long int max_vm_size;
+       unsigned long long int max_rss;
+
+       void init(){
+               n_samples = 0;
+               init_time = 0;
+               init_stime = 0;
+               init_utime = 0;
+               total_stime = 0;
+               total_utime = 0;
+               max_stime = 0.0;
+               max_utime = 0.0;
+               max_time = 0.0;
+               max_vm_size = 0;
+               max_rss = 0;
+               last_update = -1;
+       }
+
+       perf_struct(){
+               init();
+       }
+       perf_struct(int d){
+               init();
+               init_discard = d;
+       }
+
+       bool update(int t, unsigned long long int u, unsigned long long int s,
+         unsigned long long int v, unsigned long long int r){
+               if(init_discard>0){
+                       init_discard--;
+                       return false;;
+               }
+
+
+               if(v>max_vm_size)
+                       max_vm_size = v;
+               if(r>max_rss)
+                       max_rss = r;
+               if(last_update<0){
+                       init_time = t;
+                       init_stime = s;
+                       init_utime = u;
+               }else{
+                       if(t<=last_update || u<total_utime || s<total_stime){
+                               return true;
+                       }
+
+                       double tmps,tmpu,tmpt;
+                       tmps = (double)((s-total_stime))/(t-last_update);
+                       tmpu = (double)((u-total_utime))/(t-last_update);
+                       tmpt = tmps+tmpu;
+                       if(tmps>max_stime)
+                               max_stime = tmps;
+                       if(tmpu>max_utime)
+                               max_utime = tmpu;
+                       if(tmpt>max_time)
+                               max_time = tmpt;
+               }
+               total_stime = s;
+               total_utime = u;
+               last_update = t;
+
+               return false;
+       }
+
+       std::string to_string(){
+               char ret[1000];
+               if(last_update - init_time>0){
+                       sprintf(ret,"stime=%lf, utime=%lf, time=%lf max_stime=%lf, max_utime=%lf, max_time=%lf, max_vmsize=%lld, max_rss = %lld",
+                         (double)(total_stime-init_stime)/(last_update - init_time),
+                         (double)(total_utime-init_utime)/(last_update - init_time),
+                         (double)(total_stime-init_stime)/(last_update - init_time) + (double)(total_utime-init_utime)/(last_update - init_time),
+                               max_stime,max_utime,max_time,
+                               max_vm_size,max_rss
+                       );
+                       return ret;
+               }
+               return("(no perf results)");
+       }
+
+       static std::string to_csv_hdr(){
+               return "avg_system_time,avg_user_time,avg_cpu_time,max_sys_time,max_user_time,max_total_time,max_vm_size,max_rss";
+       }
+
+       std::string to_csv(){
+               char ret[1000];
+               if(last_update - init_time>0){
+                       sprintf(ret,"%lf,%lf,%lf,%lf,%lf,%lf,%lld,%lld",
+                         (double)(total_stime-init_stime)/(last_update - init_time),
+                         (double)(total_utime-init_utime)/(last_update - init_time),
+                         (double)(total_stime-init_stime)/(last_update - init_time) + (double)(total_utime-init_utime)/(last_update - init_time),
+                               max_stime,max_utime,max_time,
+                               max_vm_size,max_rss
+                       );
+                       return ret;
+               }
+               return(",,,,,,");
+       }
+
+       double avg_cpu_time(){
+               return ((double)((total_stime-init_stime)+(total_utime-init_utime))/(last_update - init_time))/100.0;
+       }
+
+       bool is_valid(){
+               return last_update > 0;
+       }
+};
+
+
+
+
+struct field_str{
+       std::string name;
+       int pos;
+       std::string type;
+       std::string mods;
+
+       field_str(){};
+       field_str(std::string n, int p, std::string t, std::string m){
+               name=n;
+               pos=p;
+               type=t;
+               mods=m;
+       }
+};
+
+
+struct qnode{
+       std::string name;
+       std::string executable_name;
+       std::string qnode_type;
+       int aggr_tbl_size;
+       std::vector<field_str *> fields;
+       std::vector<std::string> reads_from;
+       std::vector<int> reads_from_idx;
+       std::vector<int> sources_to_idx;
+       std::string src_interface;
+       int par_index;
+       int start_tick, end_tick;
+
+       unsigned long long int in_tup,out_tup,out_sz;
+       unsigned long long int accepted_tup,cycles,collisions,evictions;
+       double inferred_in_sz;
+       perf_struct *perf;
+
+       qnode(int d){
+               aggr_tbl_size = 0;
+               in_tup = 0;
+               out_tup = 0;
+               accepted_tup = 0;
+               cycles = 0;
+               collisions = 0;
+               evictions = 0;
+               inferred_in_sz = 0.0;
+               par_index = 0;
+               start_tick = end_tick = -1;
+               perf = new perf_struct(d);
+       };
+
+       qnode(std::string type, std::string n,int d){
+               qnode_type=type;
+               name=n;
+               aggr_tbl_size = 0;
+
+               in_tup = 0;
+               out_tup = 0;
+               out_sz = 0;
+               accepted_tup = 0;
+               cycles = 0;
+               collisions = 0;
+               evictions = 0;
+               inferred_in_sz = 0.0;
+               par_index = 0;
+               start_tick = end_tick = -1;
+               perf = new perf_struct(d);
+       }
+
+       double output_rate(){
+               if(end_tick == start_tick){
+                       return 0.0;
+               }
+               return( ((double)out_sz)/(end_tick-start_tick) );
+       }
+
+       void add_field(field_str *fld){
+               fields.push_back(fld);
+       }
+
+       void add_source(std::string src){
+               reads_from.push_back(src);
+       }
+
+};
+
+
+
+
+
+#endif