Added quantiling UDAFs
[com/gs-lite.git] / include / hfta / hfta_sfun.h
index 4c05838..c203217 100644 (file)
-/* ------------------------------------------------
- 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 _HFTA_SFUN_H_INCLUDED_
-#define _HFTA_SFUN_H_INCLUDED_
-
-#include "vstring.h"
-#include "host_tuple.h"
-
-////////////////////////////////////////////////////////////////
-///            Dummy state and functions, for testing
-////////////////////////////////////////////////////////////////////
-
-void _sfun_state_destroy_Foo(char(*)[20] );
-void _sfun_state_dirty_init_Foo(char(*)[20],char(*)[20], int);
-void _sfun_state_final_init_Foo(char(*)[20], int);
-void _sfun_state_clean_init_Foo(char(*)[20]);
-unsigned int Bar(char(*)[20], int, unsigned int);
-
-int packet_count(void *s, int curr_num_samples);
-double gamma(void *s, int curr_num_samples);
-int init_threshold(void *s, int curr_num_samples);
-int do_clean_count(void *s, int curr_num_samples);
-int delay(void *s, int curr_num_samples);
-int newly_closed(void *s, int curr_num_samples);
-
-////////////////////////////////////////////////////
-///            Adaptive smart sampling
-////////////////////////////////////////////////////////////////////
-void _sfun_state_clean_init_smart_sampling_state(void *s);
-void _sfun_state_dirty_init_smart_sampling_state(void *s_new, void *s_old, int curr_num_samples);
-void _sfun_state_final_init_smart_sampling_state(void *s, int curr_num_samples);
-void _sfun_state_destroy_smart_sampling_state(void *s){};
-
-int ssample(void *s,int curr_num_samples, unsigned long long int len, unsigned int sample_size);
-int ssample(void *s,int curr_num_samples, int len, unsigned int sample_size){
-       return ssample(s,curr_num_samples,(unsigned long long int)len,sample_size);
-}
-int ssample(void *s,int curr_num_samples, unsigned int len, unsigned int sample_size){
-       return ssample(s,curr_num_samples,(unsigned long long int)len,sample_size);
-}
-
-int ssfinal_clean(void *s, int curr_num_sample, unsigned long long int glens);
-int ssfinal_clean(void *s, int curr_num_samples, int glen){
-       return ssfinal_clean(s, curr_num_samples, (unsigned long long int)glen);
-}
-int ssfinal_clean(void *s, int curr_num_samples, unsigned int glen){
-       return ssfinal_clean(s, curr_num_samples, (unsigned long long int)glen);
-}
-
-int ssdo_clean(void *s, int curr_num_samples);
-
-int ssclean_with(void *s,int curr_num_sample, unsigned long long int glens);
-int ssclean_with(void *s,int curr_num_sample, unsigned int glens){
-       return ssclean_with(s, curr_num_sample, (unsigned long long int)glens);
-}
-int ssclean_with(void *s,int curr_num_sample, int glens){
-       return ssclean_with(s, curr_num_sample, (unsigned long long int)glens);
-}
-
-double ssthreshold(void *s, int curr_num_sample);
-int count_distinct(void *s, int curr_num_samples);
-int packet_count(void *s, int curr_num_samples);
-double gamma(void *s, int curr_num_samples);
-int init_threshold(void *s, int curr_num_samples);
-int do_clean_count(void *s, int curr_num_samples);
-int delay(void *s, int curr_num_samples);
-int newly_closed(void *s, int curr_num_samples);
-
-//flow sampling
-int flow_ssdo_clean(void *s, int curr_num_samples,unsigned int maxtime);
-
-int flow_ssample(void *s,int curr_num_samples, unsigned int sample_size);
-
-int flow_ssclean_with(void *s,int curr_num_sample, unsigned int ccondition,  unsigned int delay,  unsigned int maxtime, unsigned long long int glens);
-int flow_ssclean_with(void *s,int curr_num_sample, unsigned int ccondition, unsigned int delay, unsigned int maxtime, unsigned int glens){
-       return flow_ssclean_with(s, curr_num_sample, ccondition, delay, maxtime, (unsigned long long int)glens);
-}
-int flow_ssclean_with(void *s,int curr_num_sample, unsigned int ccondition, unsigned int delay, unsigned int maxtime, int glens){
-       return flow_ssclean_with(s, curr_num_sample, ccondition, delay, maxtime, (unsigned long long int)glens);
-}
-
-int flow_ssfinal_clean(void *s, int curr_num_sample, unsigned int ccondition, unsigned int delay, unsigned int maxtime, unsigned long long int glens);
-int flow_ssfinal_clean(void *s, int curr_num_samples,unsigned int ccondition, unsigned int delay, unsigned int maxtime, int glen){
-       return flow_ssfinal_clean(s, curr_num_samples, ccondition, delay, maxtime, (unsigned long long int)glen);
-}
-int flow_ssfinal_clean(void *s, int curr_num_samples,unsigned int ccondition, unsigned int delay, unsigned int maxtime, unsigned int glen){
-       return flow_ssfinal_clean(s, curr_num_samples, ccondition, delay, maxtime, (unsigned long long int)glen);
-}
-
-////////////////////////////////////////////////////////////////////
-///             Manku-Motwani Heavy Hitters
-////////////////////////////////////////////////////////////////////
-void _sfun_state_clean_init_manku_hh_state(void *s);
-void _sfun_state_dirty_init_manku_hh_state(void *s_new, void *s_old, int curr_num_samples);
-void _sfun_state_final_init_manku_hh_state(void *s, int curr_num_samples);
-void _sfun_state_destroy_manku_hh_state(void *s){};
-
-/////////////////////////////////////////////////////////////////////
-
-#endif
+/* ------------------------------------------------\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 _HFTA_SFUN_H_INCLUDED_\r
+#define _HFTA_SFUN_H_INCLUDED_\r
+\r
+#include "vstring.h"\r
+#include "host_tuple.h"\r
+\r
+////////////////////////////////////////////////////////////////\r
+///            Dummy state and functions, for testing\r
+////////////////////////////////////////////////////////////////////\r
+\r
+void _sfun_state_destroy_Foo(char(*)[20] );\r
+void _sfun_state_dirty_init_Foo(char(*)[20],char(*)[20], int);\r
+void _sfun_state_final_init_Foo(char(*)[20], int);\r
+void _sfun_state_clean_init_Foo(char(*)[20]);\r
+unsigned int Bar(char(*)[20], int, unsigned int);\r
+\r
+int packet_count(void *s, int curr_num_samples);\r
+double gamma(void *s, int curr_num_samples);\r
+int init_threshold(void *s, int curr_num_samples);\r
+int do_clean_count(void *s, int curr_num_samples);\r
+int delay(void *s, int curr_num_samples);\r
+int newly_closed(void *s, int curr_num_samples);\r
+\r
+////////////////////////////////////////////////////\r
+///            Adaptive smart sampling\r
+////////////////////////////////////////////////////////////////////\r
+void _sfun_state_clean_init_smart_sampling_state(void *s);\r
+void _sfun_state_dirty_init_smart_sampling_state(void *s_new, void *s_old, int curr_num_samples);\r
+void _sfun_state_final_init_smart_sampling_state(void *s, int curr_num_samples);\r
+void _sfun_state_destroy_smart_sampling_state(void *s){};\r
+\r
+int ssample(void *s,int curr_num_samples, unsigned long long int len, unsigned int sample_size);\r
+int ssample(void *s,int curr_num_samples, int len, unsigned int sample_size){\r
+       return ssample(s,curr_num_samples,(unsigned long long int)len,sample_size);\r
+}\r
+int ssample(void *s,int curr_num_samples, unsigned int len, unsigned int sample_size){\r
+       return ssample(s,curr_num_samples,(unsigned long long int)len,sample_size);\r
+}\r
+\r
+int ssfinal_clean(void *s, int curr_num_sample, unsigned long long int glens);\r
+int ssfinal_clean(void *s, int curr_num_samples, int glen){\r
+       return ssfinal_clean(s, curr_num_samples, (unsigned long long int)glen);\r
+}\r
+int ssfinal_clean(void *s, int curr_num_samples, unsigned int glen){\r
+       return ssfinal_clean(s, curr_num_samples, (unsigned long long int)glen);\r
+}\r
+\r
+int ssdo_clean(void *s, int curr_num_samples);\r
+\r
+int ssclean_with(void *s,int curr_num_sample, unsigned long long int glens);\r
+int ssclean_with(void *s,int curr_num_sample, unsigned int glens){\r
+       return ssclean_with(s, curr_num_sample, (unsigned long long int)glens);\r
+}\r
+int ssclean_with(void *s,int curr_num_sample, int glens){\r
+       return ssclean_with(s, curr_num_sample, (unsigned long long int)glens);\r
+}\r
+\r
+double ssthreshold(void *s, int curr_num_sample);\r
+int count_distinct(void *s, int curr_num_samples);\r
+int packet_count(void *s, int curr_num_samples);\r
+double gamma(void *s, int curr_num_samples);\r
+int init_threshold(void *s, int curr_num_samples);\r
+int do_clean_count(void *s, int curr_num_samples);\r
+int delay(void *s, int curr_num_samples);\r
+int newly_closed(void *s, int curr_num_samples);\r
+\r
+//flow sampling\r
+int flow_ssdo_clean(void *s, int curr_num_samples,unsigned int maxtime);\r
+\r
+int flow_ssample(void *s,int curr_num_samples, unsigned int sample_size);\r
+\r
+int flow_ssclean_with(void *s,int curr_num_sample, unsigned int ccondition,  unsigned int delay,  unsigned int maxtime, unsigned long long int glens);\r
+int flow_ssclean_with(void *s,int curr_num_sample, unsigned int ccondition, unsigned int delay, unsigned int maxtime, unsigned int glens){\r
+       return flow_ssclean_with(s, curr_num_sample, ccondition, delay, maxtime, (unsigned long long int)glens);\r
+}\r
+int flow_ssclean_with(void *s,int curr_num_sample, unsigned int ccondition, unsigned int delay, unsigned int maxtime, int glens){\r
+       return flow_ssclean_with(s, curr_num_sample, ccondition, delay, maxtime, (unsigned long long int)glens);\r
+}\r
+\r
+int flow_ssfinal_clean(void *s, int curr_num_sample, unsigned int ccondition, unsigned int delay, unsigned int maxtime, unsigned long long int glens);\r
+int flow_ssfinal_clean(void *s, int curr_num_samples,unsigned int ccondition, unsigned int delay, unsigned int maxtime, int glen){\r
+       return flow_ssfinal_clean(s, curr_num_samples, ccondition, delay, maxtime, (unsigned long long int)glen);\r
+}\r
+int flow_ssfinal_clean(void *s, int curr_num_samples,unsigned int ccondition, unsigned int delay, unsigned int maxtime, unsigned int glen){\r
+       return flow_ssfinal_clean(s, curr_num_samples, ccondition, delay, maxtime, (unsigned long long int)glen);\r
+}\r
+\r
+////////////////////////////////////////////////////////////////////\r
+///             Manku-Motwani Heavy Hitters\r
+////////////////////////////////////////////////////////////////////\r
+void _sfun_state_clean_init_manku_hh_state(void *s);\r
+void _sfun_state_dirty_init_manku_hh_state(void *s_new, void *s_old, int curr_num_samples);\r
+void _sfun_state_final_init_manku_hh_state(void *s, int curr_num_samples);\r
+void _sfun_state_destroy_manku_hh_state(void *s){};\r
+\r
+/////////////////////////////////////////////////////////////////////\r
+\r
+#endif\r