-/* ------------------------------------------------
-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 __INTERFACE_IMPL_INCLUDED__
-#define __INTERFACE_IMPL_INCLUDED__
-
-#include"schemaparser.h"
-
-
- #include"type_indicators.h"
- #include"type_objects.h"
- #include"parse_fta.h"
- #include "gstypes.h"
-
-
-
-
-// access_result (access_fcn)(char *tuple, int offset);
-class tuple_access_info{
-public:
- std::string field_name;
- int offset;
- data_type *pdt;
-
-
- tuple_access_info(){
- pdt = NULL;
- offset = 0;
- };
-
- int init(field_entry *fe){
- field_name = fe->get_name();
- pdt = new data_type(fe->get_type());
- return(pdt->type_indicator());
- };
-};
-
-class param_block_info{
-public:
- std::string param_name;
- access_result value;
- data_type *pdt;
- unsigned int offset;
- bool value_set;
-
- param_block_info(){
- pdt = NULL;
- offset = 0;
- value_set = false;
- };
-
- int init(var_pair_t *vp){
- value_set = false;
- param_name = vp->name;
- pdt = new data_type(vp->val);
- switch(pdt->get_type()){
- case int_t:
- value.r.i=0; break;
- case u_int_t:
- case u_short_t:
- case bool_t:
- value.r.ui=0; break;
- case floating_t:
- value.r.f = 0.0; break;
- case u_llong_t:
- value.r.ul = 0; break;
- case llong_t:
- value.r.l=0; break;
- case timeval_t:
- value.r.t.tv_sec=0; value.r.t.tv_usec=0; break;
- case v_str_t:
- value.r.vs.length = 0; value.r.vs.offset = 0; value.r.vs.reserved=0; break;
- case fstring_t:
- value.r.fs.data = NULL;
- value.r.fs.size = 0;
- break;
- default:
- break;
- }
- return(pdt->type_indicator());
- };
-};
-
-
-
-class query_rep{
-public:
- std::string name;
-
- std::vector<tuple_access_info> field_info;
- int min_tuple_size;
-
- std::vector<param_block_info> param_info;
- int min_param_size;
-
- query_rep(std::string nm, int ntuples, int nparams) :
- name(nm), field_info(ntuples), param_info(nparams) {
- min_tuple_size = 0;
- min_param_size = 0;
- };
-
- int set_field_info(int f, field_entry *fe){
- if(f<0 || f>=field_info.size()) return(-1);
- return(field_info[f].init(fe));
- };
-
- int finalize_field_info(){
- int f;
- int curr_pos = 0;
- int fld_undefined = 0;
- for(f=0;f<field_info.size();++f){
- field_info[f].offset = curr_pos;
- int sz = field_info[f].pdt->type_size();
- if(sz==0) fld_undefined = 1;
- curr_pos += sz;
- }
- min_tuple_size = curr_pos;
- if(fld_undefined) return(-1);
- else return(0);
- };
-
- int set_param_info(int p, var_pair_t *vp){
- if(p<0 || p>=param_info.size()) return(-1);
- return(param_info[p].init(vp));
- };
-
- int finalize_param_info(){
- int p;
- int curr_pos = 0;
- int fld_undefined = 0;
- for(p=0;p<param_info.size();++p){
- param_info[p].offset = curr_pos;
- int sz = param_info[p].pdt->type_size();
- if(sz==0) fld_undefined = 1;
- curr_pos += sz;
- }
- min_param_size = curr_pos;
- if(fld_undefined) return(-1);
- else return(0);
- };
-
-
-};
-
-// Diagnostic tool.
-void ftaschema_debugdump(int sch_handle);
-
-#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
+#ifndef __INTERFACE_IMPL_INCLUDED__\r
+#define __INTERFACE_IMPL_INCLUDED__\r
+\r
+#include"schemaparser.h"\r
+\r
+\r
+ #include"type_indicators.h"\r
+ #include"type_objects.h"\r
+ #include"parse_fta.h"\r
+ #include "gstypes.h"\r
+\r
+\r
+\r
+\r
+// access_result (access_fcn)(char *tuple, int offset);\r
+class tuple_access_info{\r
+public:\r
+ std::string field_name;\r
+ int offset;\r
+ data_type *pdt;\r
+\r
+\r
+ tuple_access_info(){\r
+ pdt = NULL;\r
+ offset = 0;\r
+ };\r
+\r
+ int init(field_entry *fe){\r
+ field_name = fe->get_name();\r
+ pdt = new data_type(fe->get_type());\r
+ return(pdt->type_indicator());\r
+ };\r
+};\r
+\r
+class param_block_info{\r
+public:\r
+ std::string param_name;\r
+ access_result value;\r
+ data_type *pdt;\r
+ unsigned int offset;\r
+ bool value_set;\r
+\r
+ param_block_info(){\r
+ pdt = NULL;\r
+ offset = 0;\r
+ value_set = false;\r
+ };\r
+\r
+ int init(var_pair_t *vp){\r
+ value_set = false;\r
+ param_name = vp->name;\r
+ pdt = new data_type(vp->val);\r
+ switch(pdt->get_type()){\r
+ case int_t:\r
+ value.r.i=0; break;\r
+ case u_int_t:\r
+ case u_short_t:\r
+ case bool_t:\r
+ value.r.ui=0; break;\r
+ case floating_t:\r
+ value.r.f = 0.0; break;\r
+ case u_llong_t:\r
+ value.r.ul = 0; break;\r
+ case llong_t:\r
+ value.r.l=0; break;\r
+ case timeval_t:\r
+ value.r.t.tv_sec=0; value.r.t.tv_usec=0; break;\r
+ case v_str_t:\r
+ value.r.vs.length = 0; value.r.vs.offset = 0; value.r.vs.reserved=0; break;\r
+ case fstring_t:\r
+ value.r.fs.data = NULL;\r
+ value.r.fs.size = 0;\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ return(pdt->type_indicator());\r
+ };\r
+};\r
+\r
+\r
+\r
+class query_rep{\r
+public:\r
+ std::string name;\r
+\r
+ std::vector<tuple_access_info> field_info;\r
+ int min_tuple_size;\r
+\r
+ std::vector<param_block_info> param_info;\r
+ int min_param_size;\r
+\r
+ query_rep(std::string nm, int ntuples, int nparams) :\r
+ name(nm), field_info(ntuples), param_info(nparams) {\r
+ min_tuple_size = 0;\r
+ min_param_size = 0;\r
+ };\r
+\r
+ int set_field_info(int f, field_entry *fe){\r
+ if(f<0 || f>=field_info.size()) return(-1);\r
+ return(field_info[f].init(fe));\r
+ };\r
+\r
+ int finalize_field_info(){\r
+ int f;\r
+ int curr_pos = 0;\r
+ int fld_undefined = 0;\r
+ for(f=0;f<field_info.size();++f){\r
+ field_info[f].offset = curr_pos;\r
+ int sz = field_info[f].pdt->type_size();\r
+ if(sz==0) fld_undefined = 1;\r
+ curr_pos += sz;\r
+ }\r
+ min_tuple_size = curr_pos;\r
+ if(fld_undefined) return(-1);\r
+ else return(0);\r
+ };\r
+\r
+ int set_param_info(int p, var_pair_t *vp){\r
+ if(p<0 || p>=param_info.size()) return(-1);\r
+ return(param_info[p].init(vp));\r
+ };\r
+\r
+ int finalize_param_info(){\r
+ int p;\r
+ int curr_pos = 0;\r
+ int fld_undefined = 0;\r
+ for(p=0;p<param_info.size();++p){\r
+ param_info[p].offset = curr_pos;\r
+ int sz = param_info[p].pdt->type_size();\r
+ if(sz==0) fld_undefined = 1;\r
+ curr_pos += sz;\r
+ }\r
+ min_param_size = curr_pos;\r
+ if(fld_undefined) return(-1);\r
+ else return(0);\r
+ };\r
+\r
+\r
+};\r
+\r
+// Diagnostic tool.\r
+void ftaschema_debugdump(int sch_handle);\r
+\r
+#endif\r
+\r