+ bool abort;
+ string fastafile, outputDir, namefile;
+ int processors;
+ vector<string> outputNames;
+ map<string, int> nameMap;
+
+ struct linePair {
+ unsigned long long start;
+ unsigned long long end;
+ linePair(unsigned long long i, unsigned long long j) : start(i), end(j) {}
+ };
+
+ vector<linePair*> lines;
+ vector<int> processIDS;
+
+ int createProcessesCreateSummary(vector<int>&, vector<int>&, vector<int>&, vector<int>&, vector<int>&, string, string);
+ int driverCreateSummary(vector<int>&, vector<int>&, vector<int>&, vector<int>&, vector<int>&, string, string, linePair*);
+
+ #ifdef USE_MPI
+ int MPICreateSummary(int, int, vector<int>&, vector<int>&, vector<int>&, vector<int>&, vector<int>&, MPI_File&, MPI_File&, vector<unsigned long long>&);
+ #endif
+
+
+};
+
+/**************************************************************************************************/
+//custom data structure for threads to use.
+// This is passed by void pointer so it can be any data type
+// that can be passed using a single void pointer (LPVOID).
+struct seqSumData {
+ vector<int>* startPosition;
+ vector<int>* endPosition;
+ vector<int>* seqLength;
+ vector<int>* ambigBases;
+ vector<int>* longHomoPolymer;
+ string filename;
+ string sumFile;
+ unsigned long long start;
+ unsigned long long end;
+ int count;
+ MothurOut* m;
+ string namefile;
+ map<string, int> nameMap;
+
+
+ seqSumData(){}
+ seqSumData(vector<int>* s, vector<int>* e, vector<int>* l, vector<int>* a, vector<int>* h, string f, string sf, MothurOut* mout, unsigned long long st, unsigned long long en, string na, map<string, int> nam) {
+ startPosition = s;
+ endPosition = e;
+ seqLength = l;
+ ambigBases = a;
+ longHomoPolymer = h;
+ filename = f;
+ sumFile = sf;
+ m = mout;
+ start = st;
+ end = en;
+ namefile = na;
+ nameMap = nam;
+ count = 0;
+ }