Initial commit
[com/gs-lite.git] / include / packet.h
diff --git a/include/packet.h b/include/packet.h
new file mode 100644 (file)
index 0000000..8f91891
--- /dev/null
@@ -0,0 +1,65 @@
+/* ------------------------------------------------
+ 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 PACKET_H
+#define PACKET_H
+
+#include "gsconfig.h"
+#include "gstypes.h"
+
+#ifndef IPV6_STR
+#define IPV6_STR
+struct ipv6_str{
+    gs_uint32_t v[4];
+};
+#endif
+
+#define PTYPE_CSV 1
+#define PTYPE_GDAT 2
+
+#define CSVELEMENTS 1000
+#define GDATELEMENTS 1000
+
+struct csv {
+    gs_uint32_t numberfields;
+    gs_sp_t fields[CSVELEMENTS];
+};
+
+struct csv2 {       // SSE accelerated CSV processor
+    gs_uint32_t numberfields;
+    gs_sp_t fields[CSVELEMENTS];
+    gs_uint32_t field_lens[CSVELEMENTS];
+    gs_uint8_t parsed[CSVELEMENTS];
+};
+
+struct gdat {
+    gs_schemahandle_t schema;
+    gs_uint32_t numfields;
+    gs_uint32_t datasz;
+    gs_uint8_t data[MAXTUPLESZ];
+};
+
+struct packet {
+    gs_uint32_t systemTime;
+    gs_uint32_t ptype; /* type of record e.g. PTYPE_CSV */
+    union {
+        struct csv csv; /* content of CSV record being processed */
+        struct csv2 csv2;     
+        struct gdat gdat;
+       } record;
+    
+};
+
+
+#endif