+ added some flags to Makefile args
[qpalma.git] / ParaParser / ParaParser.h
index 807ab57..d47ed2f 100644 (file)
@@ -2,8 +2,13 @@
 #define __PARAPARSER_H__
 
 #include <Python.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
 #include <map>
 #include <vector>
+#include <utility>
 using namespace std;
 
 struct KeyCmp {
@@ -20,6 +25,7 @@ typedef unsigned long map_key_t;
 typedef map<map_key_t,char**,KeyCmp> MAP;
 
 typedef vector<char**> VECTOR;
+typedef vector<pair<char*,char*> > PTR_VECTOR;
 
 
 class ParaParser{
@@ -30,19 +36,35 @@ class ParaParser{
       size_t num_columns;
       char** types_list;
 
+      void *reads_area;
+      off_t reads_filesize;
+
       storage_mode current_mode;
 
       MAP *entries;
       VECTOR *v_entries;
+      PTR_VECTOR *v_ptr_entries;
 
    public:
       ParaParser(const char* fmt, char** _fields, int num_entries, storage_mode mode);
       int parseFile(char* reads_filename);
-      void create_entry_from_line(const char* current_line, char* format_string);
+      //void create_entry_from_line(const char* current_line, char* format_string);
+      void create_entry_from_line(const char* current_line, char* format_string, char* lineBeginPtr, char* lineEndPtr);
       PyObject* fetchEntry(map_key_t id);
+      int getSize(storage_mode mode) {
+         if ( current_mode == IN_VECTOR )
+            return v_entries->size();
+
+         if ( current_mode == IN_MAP )
+            return v_entries->size();
+
+         return -1;
+      }
 
-      ~ParaParser(){}
+      ~ParaParser();
 };
 
+
+
 #endif // __PARAPARSER_H__